@boostxyz/sdk 5.2.0 → 5.3.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 (105) hide show
  1. package/README.md +10 -0
  2. package/dist/Actions/Action.cjs +1 -1
  3. package/dist/Actions/Action.js +1 -1
  4. package/dist/Actions/EventAction.cjs +1 -1
  5. package/dist/Actions/EventAction.cjs.map +1 -1
  6. package/dist/Actions/EventAction.d.ts +82 -38
  7. package/dist/Actions/EventAction.d.ts.map +1 -1
  8. package/dist/Actions/EventAction.js +437 -297
  9. package/dist/Actions/EventAction.js.map +1 -1
  10. package/dist/AllowLists/AllowList.cjs +1 -1
  11. package/dist/AllowLists/AllowList.js +2 -2
  12. package/dist/AllowLists/SimpleAllowList.cjs +1 -1
  13. package/dist/AllowLists/SimpleAllowList.js +2 -2
  14. package/dist/AllowLists/SimpleDenyList.cjs +1 -1
  15. package/dist/AllowLists/SimpleDenyList.js +3 -3
  16. package/dist/Auth/PassthroughAuth.cjs +1 -1
  17. package/dist/Auth/PassthroughAuth.js +1 -1
  18. package/dist/BoostCore.cjs +2 -2
  19. package/dist/BoostCore.cjs.map +1 -1
  20. package/dist/BoostCore.d.ts +42 -1
  21. package/dist/BoostCore.d.ts.map +1 -1
  22. package/dist/BoostCore.js +360 -318
  23. package/dist/BoostCore.js.map +1 -1
  24. package/dist/BoostRegistry.cjs +1 -1
  25. package/dist/BoostRegistry.js +2 -2
  26. package/dist/{Budget-N0YEfSt2.cjs → Budget-AoNx7uFd.cjs} +2 -2
  27. package/dist/{Budget-N0YEfSt2.cjs.map → Budget-AoNx7uFd.cjs.map} +1 -1
  28. package/dist/{Budget-C0SMvfEl.js → Budget-DYIV9iNK.js} +3 -3
  29. package/dist/{Budget-C0SMvfEl.js.map → Budget-DYIV9iNK.js.map} +1 -1
  30. package/dist/Budgets/Budget.cjs +1 -1
  31. package/dist/Budgets/Budget.js +2 -2
  32. package/dist/Budgets/ManagedBudget.cjs +1 -1
  33. package/dist/Budgets/ManagedBudget.js +2 -2
  34. package/dist/Deployable/DeployableTarget.cjs +1 -1
  35. package/dist/Deployable/DeployableTarget.js +1 -1
  36. package/dist/Deployable/DeployableTargetWithRBAC.cjs +1 -1
  37. package/dist/Deployable/DeployableTargetWithRBAC.js +2 -2
  38. package/dist/Incentive-BbkfwGOb.cjs +2 -0
  39. package/dist/Incentive-BbkfwGOb.cjs.map +1 -0
  40. package/dist/{Incentive-BwRH0A6j.js → Incentive-qlnv5kQB.js} +203 -124
  41. package/dist/Incentive-qlnv5kQB.js.map +1 -0
  42. package/dist/Incentives/AllowListIncentive.cjs +1 -1
  43. package/dist/Incentives/AllowListIncentive.js +3 -3
  44. package/dist/Incentives/CGDAIncentive.cjs +1 -1
  45. package/dist/Incentives/CGDAIncentive.js +2 -2
  46. package/dist/Incentives/ERC20Incentive.cjs +1 -1
  47. package/dist/Incentives/ERC20Incentive.js +6 -6
  48. package/dist/Incentives/ERC20PeggedIncentive.d.ts +10 -1
  49. package/dist/Incentives/ERC20PeggedIncentive.d.ts.map +1 -1
  50. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentive.d.ts +16 -4
  51. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentive.d.ts.map +1 -1
  52. package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs +1 -1
  53. package/dist/Incentives/ERC20VariableCriteriaIncentive.js +2 -2
  54. package/dist/Incentives/ERC20VariableIncentive.cjs +1 -1
  55. package/dist/Incentives/ERC20VariableIncentive.js +2 -2
  56. package/dist/Incentives/Incentive.cjs +1 -1
  57. package/dist/Incentives/Incentive.js +2 -2
  58. package/dist/Incentives/PointsIncentive.cjs +1 -1
  59. package/dist/Incentives/PointsIncentive.js +2 -2
  60. package/dist/{SimpleDenyList-B8QeJthf.js → SimpleDenyList-ByAr4X1r.js} +3 -3
  61. package/dist/{SimpleDenyList-B8QeJthf.js.map → SimpleDenyList-ByAr4X1r.js.map} +1 -1
  62. package/dist/{SimpleDenyList-DIb4xX3j.cjs → SimpleDenyList-CsRXJPwm.cjs} +2 -2
  63. package/dist/{SimpleDenyList-DIb4xX3j.cjs.map → SimpleDenyList-CsRXJPwm.cjs.map} +1 -1
  64. package/dist/Validators/LimitedSignerValidator.cjs +1 -1
  65. package/dist/Validators/LimitedSignerValidator.js +2 -2
  66. package/dist/Validators/SignerValidator.cjs +1 -1
  67. package/dist/Validators/SignerValidator.js +2 -2
  68. package/dist/Validators/Validator.cjs +1 -1
  69. package/dist/Validators/Validator.js +1 -1
  70. package/dist/{deployments-COxshLqt.js → deployments-D0fs26TV.js} +16 -16
  71. package/dist/{deployments-COxshLqt.js.map → deployments-D0fs26TV.js.map} +1 -1
  72. package/dist/{deployments-BGpr4ppG.cjs → deployments-DoIOqxco.cjs} +2 -2
  73. package/dist/deployments-DoIOqxco.cjs.map +1 -0
  74. package/dist/deployments.json +3 -3
  75. package/dist/errors.cjs +1 -1
  76. package/dist/errors.cjs.map +1 -1
  77. package/dist/errors.d.ts +40 -0
  78. package/dist/errors.d.ts.map +1 -1
  79. package/dist/errors.js +42 -16
  80. package/dist/errors.js.map +1 -1
  81. package/dist/{generated-ClbO_ULI.js → generated-Cyvr_Tjx.js} +446 -438
  82. package/dist/generated-Cyvr_Tjx.js.map +1 -0
  83. package/dist/{generated-CRD9XfOT.cjs → generated-DtYPHhtX.cjs} +2 -2
  84. package/dist/generated-DtYPHhtX.cjs.map +1 -0
  85. package/dist/index.cjs +1 -1
  86. package/dist/index.js +160 -155
  87. package/dist/utils.cjs +1 -1
  88. package/dist/utils.cjs.map +1 -1
  89. package/dist/utils.js +367 -19
  90. package/dist/utils.js.map +1 -1
  91. package/package.json +1 -1
  92. package/src/Actions/EventAction.test.ts +285 -3
  93. package/src/Actions/EventAction.ts +402 -124
  94. package/src/BoostCore.test.ts +51 -3
  95. package/src/BoostCore.ts +73 -0
  96. package/src/Incentives/ERC20PeggedIncentive.ts +33 -4
  97. package/src/Incentives/ERC20PeggedVariableCriteriaIncentive.test.ts +67 -25
  98. package/src/Incentives/ERC20PeggedVariableCriteriaIncentive.ts +89 -7
  99. package/src/errors.ts +50 -0
  100. package/dist/Incentive-BwRH0A6j.js.map +0 -1
  101. package/dist/Incentive-CZw_hu64.cjs +0 -2
  102. package/dist/Incentive-CZw_hu64.cjs.map +0 -1
  103. package/dist/deployments-BGpr4ppG.cjs.map +0 -1
  104. package/dist/generated-CRD9XfOT.cjs.map +0 -1
  105. package/dist/generated-ClbO_ULI.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Budget-C0SMvfEl.js","sources":["../src/Budgets/ManagedBudgetWithFees.ts","../src/Budgets/Budget.ts"],"sourcesContent":["import {\n managedBudgetWithFeesAbi,\n readManagedBudgetAvailable,\n readManagedBudgetDistributed,\n readManagedBudgetOwner,\n readManagedBudgetTotal,\n readManagedBudgetWithFeesManagementFee,\n simulateManagedBudgetAllocate,\n simulateManagedBudgetClawback,\n simulateManagedBudgetClawbackFromTarget,\n simulateManagedBudgetDisburse,\n simulateManagedBudgetDisburseBatch,\n simulateManagedBudgetWithFeesPayManagementFee,\n simulateManagedBudgetWithFeesSetManagementFee,\n writeManagedBudgetAllocate,\n writeManagedBudgetClawback,\n writeManagedBudgetClawbackFromTarget,\n writeManagedBudgetDisburse,\n writeManagedBudgetDisburseBatch,\n writeManagedBudgetWithFeesPayManagementFee,\n writeManagedBudgetWithFeesSetManagementFee,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/budgets/ManagedBudgetWithFees.sol/ManagedBudgetWithFees.json';\nimport { getAccount } from '@wagmi/core';\nimport {\n type Address,\n type ContractEventName,\n type Hex,\n encodeAbiParameters,\n parseAbiParameters,\n zeroAddress,\n} from 'viem';\nimport { ManagedBudgetWithFees as ManagedBudgetWithFeesBases } from '../../dist/deployments.json';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport {\n DeployableTargetWithRBAC,\n type Roles,\n} from '../Deployable/DeployableTargetWithRBAC';\nimport { DeployableUnknownOwnerProvidedError } from '../errors';\nimport type {\n ERC1155TransferPayload,\n FungibleTransferPayload,\n} from '../transfers';\nimport {\n type GenericLog,\n type ReadParams,\n RegistryType,\n type WriteParams,\n} from '../utils';\nimport { prepareTransfer } from './ManagedBudget';\nexport { managedBudgetWithFeesAbi };\nexport type { ERC1155TransferPayload, FungibleTransferPayload };\n\n/**\n * The object representation of a `ManagedBudgetWithFeesPayload.InitPayload`\n *\n * @export\n * @interface ManagedBudgetWithFeesPayload\n * @typedef {ManagedBudgetWithFeesPayload}\n */\nexport interface ManagedBudgetWithFeesPayload {\n /**\n * The budget's owner\n *\n * @type {Address}\n */\n owner: Address;\n /**\n * List of accounts authorized to use the budget. This list should include a Boost core address to interact with the protocol.\n *\n * @type {Address[]}\n */\n authorized: Address[];\n /**\n * List of roles to assign to the corresponding account by index.\n *\n * @type {Roles[]}\n */\n roles: Roles[];\n /**\n * Management Fee rate for incentive payouts\n *\n * @type {bigint}\n */\n managementFee: bigint;\n}\n\n/**\n * A generic `viem.Log` event with support for `ManagedBudgetWithFees` event types.\n *\n * @export\n * @typedef {ManagedBudgetWithFeesLog}\n * @template {ContractEventName<typeof managedBudgetWithFeesAbi>} [event=ContractEventName<\n * typeof managedBudgetWithFeesAbi\n * >]\n */\nexport type ManagedBudgetWithFeesLog<\n event extends ContractEventName<\n typeof managedBudgetWithFeesAbi\n > = ContractEventName<typeof managedBudgetWithFeesAbi>,\n> = GenericLog<typeof managedBudgetWithFeesAbi, event>;\n\n/**\n * A minimal budget implementation that simply holds and distributes tokens (ERC20-like and native)\n * This type of budget supports ETH, ERC20, and ERC1155 assets only\n *\n * @export\n * @class ManagedBudgetWithFees\n * @typedef {ManagedBudgetWithFees}\n * @extends {DeployableTargetWithRBAC<ManagedBudgetWithFeesPayload>}\n */\nexport class ManagedBudgetWithFees extends DeployableTargetWithRBAC<\n ManagedBudgetWithFeesPayload,\n typeof managedBudgetWithFeesAbi\n> {\n /**\n * @inheritdoc\n *\n * @public\n * @readonly\n * @type {*}\n */\n public override readonly abi = managedBudgetWithFeesAbi;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {Record<number, Address>}\n */\n public static override bases: Record<number, Address> = {\n 31337: import.meta.env.VITE_MANAGED_BUDGET_WITH_FEES_BASE,\n ...(ManagedBudgetWithFeesBases as Record<number, Address>),\n };\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {RegistryType}\n */\n public static override registryType: RegistryType = RegistryType.BUDGET;\n\n /**\n * Allocates assets to the budget.\n * The caller must have already approved the contract to transfer the asset\n * If the asset transfer fails, the allocation will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if the allocation was successful\n */\n public async allocate(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams,\n ) {\n return await this.awaitResult(this.allocateRaw(transfer, params));\n }\n\n /**\n * Allocates assets to the budget.\n * The caller must have already approved the contract to transfer the asset\n * If the asset transfer fails, the allocation will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the allocation was successful\n */\n public async allocateRaw(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateManagedBudgetAllocate(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [prepareTransfer(transfer)],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeManagedBudgetAllocate(this._config, request);\n return { hash, result };\n }\n\n /**\n * Clawbacks assets from the budget.\n * Only the owner can directly clawback assets from the budget\n * If the amount is zero, the entire balance of the asset will be transferred to the receiver\n * If the asset transfer fails, the reclamation will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if the request was successful\n */\n public async clawback(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams,\n ) {\n return await this.awaitResult(this.clawbackRaw(transfer, params));\n }\n\n /**\n * Clawbacks assets from the budget.\n * Only the owner or admin can directly clawback assets from the budget\n * If the amount is zero, the entire balance of the asset will be transferred to the receiver\n * If the asset transfer fails, the reclamation will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the request was successful\n */\n public async clawbackRaw(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateManagedBudgetClawback(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [prepareTransfer(transfer)],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeManagedBudgetClawback(this._config, request);\n return { hash, result };\n }\n\n /**\n * Clawbacks assets from an incentive associated with the budget via Boost Core.\n * Only the authorized users can clawback assets from an incentive.\n * If the asset transfer fails, the reclamation will revert.\n *\n * @example\n * ```ts\n * const [amount, address] = await budgets.budget.clawbackFromTarget(\n * core.assertValidAddress(),\n * erc20Incentive.buildClawbackData(1n),\n * boost.id,\n * incentiveId,\n * );\n * ```\n * @public\n * @async\n * @param {Address} target - The address of a contract implementing clawback, typically `BoostCore`\n * @param {Hex} data - The encoded data payload for the clawback, can be acquired with `incentive.buildClawbackData`\n * @param {bigint | number} boostId - The ID of the boost\n * @param {bigint | number} incentiveId - The ID of the incentive\n * @param {?WriteParams} [params] - Optional write parameters\n * @returns {Promise<[bigint, Address]>} - Returns a tuple of amount reclaimed and the address reclaimed from\n */\n public async clawbackFromTarget(\n target: Address,\n data: Hex,\n boostId: bigint | number,\n incentiveId: bigint | number,\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.clawbackFromTargetRaw(target, data, boostId, incentiveId, params),\n );\n }\n\n /**\n * Clawbacks assets from an incentive associated with the budget via Boost Core.\n * Only the authorized users can clawback assets from an incentive.\n * If the asset transfer fails, the reclamation will revert.\n *\n * @example\n * ```ts\n * const { hash, result: [ amount, address ] } = await budgets.budget.clawbackFromTargetRaw(\n * core.assertValidAddress(),\n * erc20Incentive.buildClawbackData(1n),\n * boost.id,\n * incentiveId,\n * );\n * ```\n * @public\n * @async\n * @param {Address} target - The address of a contract implementing clawback, typically `BoostCore`\n * @param {Hex} data - The encoded data payload for the clawback, can be acquired with `incentive.buildClawbackData`\n * @param {bigint | number} boostId - The ID of the boost\n * @param {bigint | number} incentiveId - The ID of the incentive\n * @param {?WriteParams} [params] - Optional write parameters\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - Returns transaction hash and simulated result\n */\n public async clawbackFromTargetRaw(\n target: Address,\n data: Hex,\n boostId: bigint | number,\n incentiveId: bigint | number,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateManagedBudgetClawbackFromTarget(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [target, data, BigInt(boostId), BigInt(incentiveId)],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeManagedBudgetClawbackFromTarget(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Disburses assets from the budget to a single recipient\n * If the asset transfer fails, the disbursement will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if the disbursement was successful\n */\n public async disburse(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams,\n ) {\n return await this.awaitResult(this.disburseRaw(transfer, params));\n }\n\n /**\n * Disburses assets from the budget to a single recipient\n * If the asset transfer fails, the disbursement will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the disbursement was successful\n */\n public async disburseRaw(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateManagedBudgetDisburse(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [prepareTransfer(transfer)],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeManagedBudgetDisburse(this._config, request);\n return { hash, result };\n }\n\n /**\n * Disburses assets from the budget to multiple recipients\n *\n * @public\n * @async\n * @param {Array<FungibleTransferPayload | ERC1155TransferPayload>} transfers\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if all disbursements were successful\n */\n public async disburseBatch(\n transfers: Array<FungibleTransferPayload | ERC1155TransferPayload>,\n params?: WriteParams,\n ) {\n return await this.awaitResult(this.disburseBatchRaw(transfers, params));\n }\n\n /**\n * Disburses assets from the budget to multiple recipients\n *\n * @public\n * @async\n * @param {Array<FungibleTransferPayload | ERC1155TransferPayload>} transfers\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if all disbursements were successful\n */\n public async disburseBatchRaw(\n transfers: Array<FungibleTransferPayload | ERC1155TransferPayload>,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateManagedBudgetDisburseBatch(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [transfers.map(prepareTransfer)],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeManagedBudgetDisburseBatch(this._config, request);\n return { hash, result };\n }\n\n /**\n * Pays out reserved management fees to the boost owner\n * for a given incentive\n *\n * @public\n * @async\n * @param {bigint | string} boostId\n * @param {bigint | string} incentiveId\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if the payout was successful\n */\n public async payManagementFee(\n boostId: bigint | string,\n incentiveId: bigint | string,\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.payManagementFeeRaw(boostId, incentiveId, params),\n );\n }\n\n /**\n * Pays out reserved management fees to the boost owner\n *\n * @public\n * @async\n * @param bigint boostId\n * @param bigint incentiveId\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the payout was successful\n */\n public async payManagementFeeRaw(\n boostId: bigint | string,\n incentiveId: bigint | string,\n params?: WriteParams,\n ) {\n const { request, result } =\n await simulateManagedBudgetWithFeesPayManagementFee(this._config, {\n address: this.assertValidAddress(),\n args: [boostId, incentiveId],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n const hash = await writeManagedBudgetWithFeesPayManagementFee(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Sets the management fee for the budget\n * @public\n * @async\n * @param {bigint} managementFee\n * @param {?WriteParams} [params]\n * @returns {Promise<void>} - will throw if the transaction fails\n */\n public async setManagementFee(managementFee: bigint, params?: WriteParams) {\n return await this.awaitResult(\n this.setManagementFeeRaw(managementFee, params),\n );\n }\n\n /**\n * Sets the management fee for the budget\n * @public\n * @async\n * @param {bigint} managementFee\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async setManagementFeeRaw(\n managementFee: bigint,\n params?: WriteParams,\n ) {\n const { request, result } =\n await simulateManagedBudgetWithFeesSetManagementFee(this._config, {\n address: this.assertValidAddress(),\n args: [managementFee],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n const hash = await writeManagedBudgetWithFeesSetManagementFee(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Get the configured management fee for the budget\n * @public\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - The management fee\n */\n public async managementFee(params?: ReadParams) {\n return await readManagedBudgetWithFeesManagementFee(this._config, {\n address: this.assertValidAddress(),\n args: [],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Get the owner of the budget\n *\n * @public\n * @param {?ReadParams} [params]\n * @returns {Promise<Address>}\n */\n public owner(params?: ReadParams) {\n return readManagedBudgetOwner(this._config, {\n address: this.assertValidAddress(),\n args: [],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Get the total amount of assets allocated to the budget, including any that have been distributed\n * If a tokenId is provided, get the total amount of ERC1155 assets allocated to the budget, including any that have been distributed\n *\n * @public\n * @param {Address} [asset=\"0x0000000000000000000000000000000000000000\"] - The address of the asset\n * @param {?(bigint | undefined)} [tokenId] - The ID of the token\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - The total amount of assets\n */\n public total(\n asset: Address = zeroAddress,\n tokenId?: bigint | undefined,\n params?: ReadParams,\n ) {\n return readManagedBudgetTotal(this._config, {\n address: this.assertValidAddress(),\n args: tokenId ? [asset, tokenId] : [asset],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Get the amount of assets available for distribution from the budget.\n * If a tokenId is provided, get the amount of ERC1155 assets available for distribution from the budget\n *\n * @public\n * @param {Address} [asset=\"0x0000000000000000000000000000000000000000\"]\n * @param {?(bigint | undefined)} [tokenId]\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - The amount of assets available\n */\n public available(\n asset: Address = zeroAddress,\n tokenId?: bigint | undefined,\n params?: ReadParams,\n ) {\n return readManagedBudgetAvailable(this._config, {\n address: this.assertValidAddress(),\n args: tokenId ? [asset, tokenId] : [asset],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Get the amount of assets that have been distributed from the budget.\n * If a tokenId is provided, get the amount of ERC1155 assets that have been distributed from the budget\n *\n * @public\n * @param {Address} [asset=\"0x0000000000000000000000000000000000000000\"]\n * @param {?(bigint | undefined)} [tokenId]\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - The amount of assets distributed\n */\n public distributed(\n asset: Address = zeroAddress,\n tokenId?: bigint | undefined,\n params?: ReadParams,\n ) {\n return readManagedBudgetDistributed(this._config, {\n address: this.assertValidAddress(),\n args: tokenId ? [asset, tokenId] : [asset],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * @inheritdoc\n *\n * @public\n * @param {?ManagedBudgetWithFeesPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: ManagedBudgetWithFeesPayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [payload, options] = this.validateDeploymentConfig(\n _payload,\n _options,\n );\n if (!payload.owner || payload.owner === zeroAddress) {\n const owner = options.account\n ? options.account.address\n : options.config\n ? getAccount(options.config).address\n : this._account?.address;\n if (owner) {\n payload.owner = owner;\n } else {\n throw new DeployableUnknownOwnerProvidedError();\n }\n }\n return {\n abi: managedBudgetWithFeesAbi,\n bytecode: bytecode as Hex,\n args: [prepareManagedBudgetWithFeesPayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n\n/**\n * Given a {@link ManagedBudgetWithFeesPayload}, properly encode a `ManagedBudgetWithFees.InitPayload` for use with {@link ManagedBudgetWithFees} initialization.\n *\n * @param {ManagedBudgetWithFeesPayload} param0\n * @param {Address} param0.owner - The budget's owner\n * @param {{}} param0.authorized - List of accounts authorized to use the budget. This list should include a Boost core address to interact with the protocol.\n * @param {{}} param0.roles - List of roles to assign to the corresponding account by index.\n * @returns {Hex}\n */\nexport const prepareManagedBudgetWithFeesPayload = ({\n owner,\n authorized,\n roles,\n managementFee,\n}: ManagedBudgetWithFeesPayload) => {\n return encodeAbiParameters(\n parseAbiParameters([\n 'ManagedBudgetWithFeesPayload payload',\n 'struct ManagedBudgetWithFeesPayload { address owner; address[] authorized; uint256[] roles; uint256 managementFee; }',\n ]),\n [\n {\n owner,\n authorized,\n roles: roles as unknown as Array<bigint>,\n managementFee,\n },\n ],\n );\n};\n","import { aBudgetAbi } from '@boostxyz/evm';\nimport {\n AManagedBudget,\n AManagedBudgetWithFees,\n} from '@boostxyz/evm/deploys/componentInterfaces.json';\nimport { readContract } from '@wagmi/core';\nimport type { Address, Hex } from 'viem';\nimport type { DeployableOptions } from '../Deployable/Deployable';\nimport { InvalidComponentInterfaceError } from '../errors';\nimport type { ReadParams } from '../utils';\nimport { ManagedBudget } from './ManagedBudget';\nimport { ManagedBudgetWithFees } from './ManagedBudgetWithFees';\n\nexport {\n // VestingBudget,\n ManagedBudget,\n};\n\n/**\n * A union type representing all valid protocol Budget implementations\n *\n * @export\n * @typedef {Budget}\n */\nexport type Budget = ManagedBudget | ManagedBudgetWithFees; // | VestingBudget\n\n/**\n * A map of Budget component interfaces to their constructors.\n *\n * @type {{ \"0xa0109882\": typeof ManagedBudget; }}\n */\nexport const BudgetByComponentInterface = {\n // ['0x64683da1']: VestingBudget,\n // ['0x2929d19c']: SimpleBudget,\n [AManagedBudget as Hex]: ManagedBudget,\n [AManagedBudgetWithFees as Hex]: ManagedBudgetWithFees,\n};\n\n/**\n * A function that will read a contract's component interface using `getComponentInterface` and return the correct instantiated instance.\n *\n * @export\n * @async\n * @param {DeployableOptions} options\n * @param {Address} address\n * @returns {Promise<ManagedBudget | ManagedBudgetWithFees>}\n * @throws {@link InvalidComponentInterfaceError}\n */\nexport async function budgetFromAddress(\n options: DeployableOptions,\n address: Address,\n params?: ReadParams,\n) {\n const interfaceId = (await readContract(options.config, {\n abi: aBudgetAbi,\n functionName: 'getComponentInterface',\n address,\n ...params,\n })) as keyof typeof BudgetByComponentInterface;\n const Ctor = BudgetByComponentInterface[interfaceId];\n if (!Ctor) {\n throw new InvalidComponentInterfaceError(\n Object.keys(BudgetByComponentInterface) as Hex[],\n interfaceId as Hex,\n );\n }\n return new Ctor(options, address);\n}\n"],"names":["_ManagedBudgetWithFees","DeployableTargetWithRBAC","managedBudgetWithFeesAbi","transfer","params","request","result","simulateManagedBudgetAllocate","prepareTransfer","writeManagedBudgetAllocate","simulateManagedBudgetClawback","writeManagedBudgetClawback","target","data","boostId","incentiveId","simulateManagedBudgetClawbackFromTarget","writeManagedBudgetClawbackFromTarget","simulateManagedBudgetDisburse","writeManagedBudgetDisburse","transfers","simulateManagedBudgetDisburseBatch","writeManagedBudgetDisburseBatch","simulateManagedBudgetWithFeesPayManagementFee","writeManagedBudgetWithFeesPayManagementFee","managementFee","simulateManagedBudgetWithFeesSetManagementFee","writeManagedBudgetWithFeesSetManagementFee","readManagedBudgetWithFeesManagementFee","readManagedBudgetOwner","asset","zeroAddress","tokenId","readManagedBudgetTotal","readManagedBudgetAvailable","readManagedBudgetDistributed","_payload","_options","payload","options","owner","getAccount","_a","DeployableUnknownOwnerProvidedError","bytecode","prepareManagedBudgetWithFeesPayload","ManagedBudgetWithFeesBases","RegistryType","ManagedBudgetWithFees","authorized","roles","encodeAbiParameters","parseAbiParameters","BudgetByComponentInterface","AManagedBudget","ManagedBudget","AManagedBudgetWithFees","budgetFromAddress","address","interfaceId","readContract","aBudgetAbi","Ctor","InvalidComponentInterfaceError"],"mappings":"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"}
1
+ {"version":3,"file":"Budget-DYIV9iNK.js","sources":["../src/Budgets/ManagedBudgetWithFees.ts","../src/Budgets/Budget.ts"],"sourcesContent":["import {\n managedBudgetWithFeesAbi,\n readManagedBudgetAvailable,\n readManagedBudgetDistributed,\n readManagedBudgetOwner,\n readManagedBudgetTotal,\n readManagedBudgetWithFeesManagementFee,\n simulateManagedBudgetAllocate,\n simulateManagedBudgetClawback,\n simulateManagedBudgetClawbackFromTarget,\n simulateManagedBudgetDisburse,\n simulateManagedBudgetDisburseBatch,\n simulateManagedBudgetWithFeesPayManagementFee,\n simulateManagedBudgetWithFeesSetManagementFee,\n writeManagedBudgetAllocate,\n writeManagedBudgetClawback,\n writeManagedBudgetClawbackFromTarget,\n writeManagedBudgetDisburse,\n writeManagedBudgetDisburseBatch,\n writeManagedBudgetWithFeesPayManagementFee,\n writeManagedBudgetWithFeesSetManagementFee,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/budgets/ManagedBudgetWithFees.sol/ManagedBudgetWithFees.json';\nimport { getAccount } from '@wagmi/core';\nimport {\n type Address,\n type ContractEventName,\n type Hex,\n encodeAbiParameters,\n parseAbiParameters,\n zeroAddress,\n} from 'viem';\nimport { ManagedBudgetWithFees as ManagedBudgetWithFeesBases } from '../../dist/deployments.json';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport {\n DeployableTargetWithRBAC,\n type Roles,\n} from '../Deployable/DeployableTargetWithRBAC';\nimport { DeployableUnknownOwnerProvidedError } from '../errors';\nimport type {\n ERC1155TransferPayload,\n FungibleTransferPayload,\n} from '../transfers';\nimport {\n type GenericLog,\n type ReadParams,\n RegistryType,\n type WriteParams,\n} from '../utils';\nimport { prepareTransfer } from './ManagedBudget';\nexport { managedBudgetWithFeesAbi };\nexport type { ERC1155TransferPayload, FungibleTransferPayload };\n\n/**\n * The object representation of a `ManagedBudgetWithFeesPayload.InitPayload`\n *\n * @export\n * @interface ManagedBudgetWithFeesPayload\n * @typedef {ManagedBudgetWithFeesPayload}\n */\nexport interface ManagedBudgetWithFeesPayload {\n /**\n * The budget's owner\n *\n * @type {Address}\n */\n owner: Address;\n /**\n * List of accounts authorized to use the budget. This list should include a Boost core address to interact with the protocol.\n *\n * @type {Address[]}\n */\n authorized: Address[];\n /**\n * List of roles to assign to the corresponding account by index.\n *\n * @type {Roles[]}\n */\n roles: Roles[];\n /**\n * Management Fee rate for incentive payouts\n *\n * @type {bigint}\n */\n managementFee: bigint;\n}\n\n/**\n * A generic `viem.Log` event with support for `ManagedBudgetWithFees` event types.\n *\n * @export\n * @typedef {ManagedBudgetWithFeesLog}\n * @template {ContractEventName<typeof managedBudgetWithFeesAbi>} [event=ContractEventName<\n * typeof managedBudgetWithFeesAbi\n * >]\n */\nexport type ManagedBudgetWithFeesLog<\n event extends ContractEventName<\n typeof managedBudgetWithFeesAbi\n > = ContractEventName<typeof managedBudgetWithFeesAbi>,\n> = GenericLog<typeof managedBudgetWithFeesAbi, event>;\n\n/**\n * A minimal budget implementation that simply holds and distributes tokens (ERC20-like and native)\n * This type of budget supports ETH, ERC20, and ERC1155 assets only\n *\n * @export\n * @class ManagedBudgetWithFees\n * @typedef {ManagedBudgetWithFees}\n * @extends {DeployableTargetWithRBAC<ManagedBudgetWithFeesPayload>}\n */\nexport class ManagedBudgetWithFees extends DeployableTargetWithRBAC<\n ManagedBudgetWithFeesPayload,\n typeof managedBudgetWithFeesAbi\n> {\n /**\n * @inheritdoc\n *\n * @public\n * @readonly\n * @type {*}\n */\n public override readonly abi = managedBudgetWithFeesAbi;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {Record<number, Address>}\n */\n public static override bases: Record<number, Address> = {\n 31337: import.meta.env.VITE_MANAGED_BUDGET_WITH_FEES_BASE,\n ...(ManagedBudgetWithFeesBases as Record<number, Address>),\n };\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {RegistryType}\n */\n public static override registryType: RegistryType = RegistryType.BUDGET;\n\n /**\n * Allocates assets to the budget.\n * The caller must have already approved the contract to transfer the asset\n * If the asset transfer fails, the allocation will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if the allocation was successful\n */\n public async allocate(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams,\n ) {\n return await this.awaitResult(this.allocateRaw(transfer, params));\n }\n\n /**\n * Allocates assets to the budget.\n * The caller must have already approved the contract to transfer the asset\n * If the asset transfer fails, the allocation will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the allocation was successful\n */\n public async allocateRaw(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateManagedBudgetAllocate(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [prepareTransfer(transfer)],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeManagedBudgetAllocate(this._config, request);\n return { hash, result };\n }\n\n /**\n * Clawbacks assets from the budget.\n * Only the owner can directly clawback assets from the budget\n * If the amount is zero, the entire balance of the asset will be transferred to the receiver\n * If the asset transfer fails, the reclamation will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if the request was successful\n */\n public async clawback(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams,\n ) {\n return await this.awaitResult(this.clawbackRaw(transfer, params));\n }\n\n /**\n * Clawbacks assets from the budget.\n * Only the owner or admin can directly clawback assets from the budget\n * If the amount is zero, the entire balance of the asset will be transferred to the receiver\n * If the asset transfer fails, the reclamation will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the request was successful\n */\n public async clawbackRaw(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateManagedBudgetClawback(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [prepareTransfer(transfer)],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeManagedBudgetClawback(this._config, request);\n return { hash, result };\n }\n\n /**\n * Clawbacks assets from an incentive associated with the budget via Boost Core.\n * Only the authorized users can clawback assets from an incentive.\n * If the asset transfer fails, the reclamation will revert.\n *\n * @example\n * ```ts\n * const [amount, address] = await budgets.budget.clawbackFromTarget(\n * core.assertValidAddress(),\n * erc20Incentive.buildClawbackData(1n),\n * boost.id,\n * incentiveId,\n * );\n * ```\n * @public\n * @async\n * @param {Address} target - The address of a contract implementing clawback, typically `BoostCore`\n * @param {Hex} data - The encoded data payload for the clawback, can be acquired with `incentive.buildClawbackData`\n * @param {bigint | number} boostId - The ID of the boost\n * @param {bigint | number} incentiveId - The ID of the incentive\n * @param {?WriteParams} [params] - Optional write parameters\n * @returns {Promise<[bigint, Address]>} - Returns a tuple of amount reclaimed and the address reclaimed from\n */\n public async clawbackFromTarget(\n target: Address,\n data: Hex,\n boostId: bigint | number,\n incentiveId: bigint | number,\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.clawbackFromTargetRaw(target, data, boostId, incentiveId, params),\n );\n }\n\n /**\n * Clawbacks assets from an incentive associated with the budget via Boost Core.\n * Only the authorized users can clawback assets from an incentive.\n * If the asset transfer fails, the reclamation will revert.\n *\n * @example\n * ```ts\n * const { hash, result: [ amount, address ] } = await budgets.budget.clawbackFromTargetRaw(\n * core.assertValidAddress(),\n * erc20Incentive.buildClawbackData(1n),\n * boost.id,\n * incentiveId,\n * );\n * ```\n * @public\n * @async\n * @param {Address} target - The address of a contract implementing clawback, typically `BoostCore`\n * @param {Hex} data - The encoded data payload for the clawback, can be acquired with `incentive.buildClawbackData`\n * @param {bigint | number} boostId - The ID of the boost\n * @param {bigint | number} incentiveId - The ID of the incentive\n * @param {?WriteParams} [params] - Optional write parameters\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - Returns transaction hash and simulated result\n */\n public async clawbackFromTargetRaw(\n target: Address,\n data: Hex,\n boostId: bigint | number,\n incentiveId: bigint | number,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateManagedBudgetClawbackFromTarget(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [target, data, BigInt(boostId), BigInt(incentiveId)],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeManagedBudgetClawbackFromTarget(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Disburses assets from the budget to a single recipient\n * If the asset transfer fails, the disbursement will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if the disbursement was successful\n */\n public async disburse(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams,\n ) {\n return await this.awaitResult(this.disburseRaw(transfer, params));\n }\n\n /**\n * Disburses assets from the budget to a single recipient\n * If the asset transfer fails, the disbursement will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the disbursement was successful\n */\n public async disburseRaw(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateManagedBudgetDisburse(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [prepareTransfer(transfer)],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeManagedBudgetDisburse(this._config, request);\n return { hash, result };\n }\n\n /**\n * Disburses assets from the budget to multiple recipients\n *\n * @public\n * @async\n * @param {Array<FungibleTransferPayload | ERC1155TransferPayload>} transfers\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if all disbursements were successful\n */\n public async disburseBatch(\n transfers: Array<FungibleTransferPayload | ERC1155TransferPayload>,\n params?: WriteParams,\n ) {\n return await this.awaitResult(this.disburseBatchRaw(transfers, params));\n }\n\n /**\n * Disburses assets from the budget to multiple recipients\n *\n * @public\n * @async\n * @param {Array<FungibleTransferPayload | ERC1155TransferPayload>} transfers\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if all disbursements were successful\n */\n public async disburseBatchRaw(\n transfers: Array<FungibleTransferPayload | ERC1155TransferPayload>,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateManagedBudgetDisburseBatch(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [transfers.map(prepareTransfer)],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeManagedBudgetDisburseBatch(this._config, request);\n return { hash, result };\n }\n\n /**\n * Pays out reserved management fees to the boost owner\n * for a given incentive\n *\n * @public\n * @async\n * @param {bigint | string} boostId\n * @param {bigint | string} incentiveId\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if the payout was successful\n */\n public async payManagementFee(\n boostId: bigint | string,\n incentiveId: bigint | string,\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.payManagementFeeRaw(boostId, incentiveId, params),\n );\n }\n\n /**\n * Pays out reserved management fees to the boost owner\n *\n * @public\n * @async\n * @param bigint boostId\n * @param bigint incentiveId\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the payout was successful\n */\n public async payManagementFeeRaw(\n boostId: bigint | string,\n incentiveId: bigint | string,\n params?: WriteParams,\n ) {\n const { request, result } =\n await simulateManagedBudgetWithFeesPayManagementFee(this._config, {\n address: this.assertValidAddress(),\n args: [boostId, incentiveId],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n const hash = await writeManagedBudgetWithFeesPayManagementFee(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Sets the management fee for the budget\n * @public\n * @async\n * @param {bigint} managementFee\n * @param {?WriteParams} [params]\n * @returns {Promise<void>} - will throw if the transaction fails\n */\n public async setManagementFee(managementFee: bigint, params?: WriteParams) {\n return await this.awaitResult(\n this.setManagementFeeRaw(managementFee, params),\n );\n }\n\n /**\n * Sets the management fee for the budget\n * @public\n * @async\n * @param {bigint} managementFee\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async setManagementFeeRaw(\n managementFee: bigint,\n params?: WriteParams,\n ) {\n const { request, result } =\n await simulateManagedBudgetWithFeesSetManagementFee(this._config, {\n address: this.assertValidAddress(),\n args: [managementFee],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n const hash = await writeManagedBudgetWithFeesSetManagementFee(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Get the configured management fee for the budget\n * @public\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - The management fee\n */\n public async managementFee(params?: ReadParams) {\n return await readManagedBudgetWithFeesManagementFee(this._config, {\n address: this.assertValidAddress(),\n args: [],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Get the owner of the budget\n *\n * @public\n * @param {?ReadParams} [params]\n * @returns {Promise<Address>}\n */\n public owner(params?: ReadParams) {\n return readManagedBudgetOwner(this._config, {\n address: this.assertValidAddress(),\n args: [],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Get the total amount of assets allocated to the budget, including any that have been distributed\n * If a tokenId is provided, get the total amount of ERC1155 assets allocated to the budget, including any that have been distributed\n *\n * @public\n * @param {Address} [asset=\"0x0000000000000000000000000000000000000000\"] - The address of the asset\n * @param {?(bigint | undefined)} [tokenId] - The ID of the token\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - The total amount of assets\n */\n public total(\n asset: Address = zeroAddress,\n tokenId?: bigint | undefined,\n params?: ReadParams,\n ) {\n return readManagedBudgetTotal(this._config, {\n address: this.assertValidAddress(),\n args: tokenId ? [asset, tokenId] : [asset],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Get the amount of assets available for distribution from the budget.\n * If a tokenId is provided, get the amount of ERC1155 assets available for distribution from the budget\n *\n * @public\n * @param {Address} [asset=\"0x0000000000000000000000000000000000000000\"]\n * @param {?(bigint | undefined)} [tokenId]\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - The amount of assets available\n */\n public available(\n asset: Address = zeroAddress,\n tokenId?: bigint | undefined,\n params?: ReadParams,\n ) {\n return readManagedBudgetAvailable(this._config, {\n address: this.assertValidAddress(),\n args: tokenId ? [asset, tokenId] : [asset],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Get the amount of assets that have been distributed from the budget.\n * If a tokenId is provided, get the amount of ERC1155 assets that have been distributed from the budget\n *\n * @public\n * @param {Address} [asset=\"0x0000000000000000000000000000000000000000\"]\n * @param {?(bigint | undefined)} [tokenId]\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - The amount of assets distributed\n */\n public distributed(\n asset: Address = zeroAddress,\n tokenId?: bigint | undefined,\n params?: ReadParams,\n ) {\n return readManagedBudgetDistributed(this._config, {\n address: this.assertValidAddress(),\n args: tokenId ? [asset, tokenId] : [asset],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * @inheritdoc\n *\n * @public\n * @param {?ManagedBudgetWithFeesPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: ManagedBudgetWithFeesPayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [payload, options] = this.validateDeploymentConfig(\n _payload,\n _options,\n );\n if (!payload.owner || payload.owner === zeroAddress) {\n const owner = options.account\n ? options.account.address\n : options.config\n ? getAccount(options.config).address\n : this._account?.address;\n if (owner) {\n payload.owner = owner;\n } else {\n throw new DeployableUnknownOwnerProvidedError();\n }\n }\n return {\n abi: managedBudgetWithFeesAbi,\n bytecode: bytecode as Hex,\n args: [prepareManagedBudgetWithFeesPayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n\n/**\n * Given a {@link ManagedBudgetWithFeesPayload}, properly encode a `ManagedBudgetWithFees.InitPayload` for use with {@link ManagedBudgetWithFees} initialization.\n *\n * @param {ManagedBudgetWithFeesPayload} param0\n * @param {Address} param0.owner - The budget's owner\n * @param {{}} param0.authorized - List of accounts authorized to use the budget. This list should include a Boost core address to interact with the protocol.\n * @param {{}} param0.roles - List of roles to assign to the corresponding account by index.\n * @returns {Hex}\n */\nexport const prepareManagedBudgetWithFeesPayload = ({\n owner,\n authorized,\n roles,\n managementFee,\n}: ManagedBudgetWithFeesPayload) => {\n return encodeAbiParameters(\n parseAbiParameters([\n 'ManagedBudgetWithFeesPayload payload',\n 'struct ManagedBudgetWithFeesPayload { address owner; address[] authorized; uint256[] roles; uint256 managementFee; }',\n ]),\n [\n {\n owner,\n authorized,\n roles: roles as unknown as Array<bigint>,\n managementFee,\n },\n ],\n );\n};\n","import { aBudgetAbi } from '@boostxyz/evm';\nimport {\n AManagedBudget,\n AManagedBudgetWithFees,\n} from '@boostxyz/evm/deploys/componentInterfaces.json';\nimport { readContract } from '@wagmi/core';\nimport type { Address, Hex } from 'viem';\nimport type { DeployableOptions } from '../Deployable/Deployable';\nimport { InvalidComponentInterfaceError } from '../errors';\nimport type { ReadParams } from '../utils';\nimport { ManagedBudget } from './ManagedBudget';\nimport { ManagedBudgetWithFees } from './ManagedBudgetWithFees';\n\nexport {\n // VestingBudget,\n ManagedBudget,\n};\n\n/**\n * A union type representing all valid protocol Budget implementations\n *\n * @export\n * @typedef {Budget}\n */\nexport type Budget = ManagedBudget | ManagedBudgetWithFees; // | VestingBudget\n\n/**\n * A map of Budget component interfaces to their constructors.\n *\n * @type {{ \"0xa0109882\": typeof ManagedBudget; }}\n */\nexport const BudgetByComponentInterface = {\n // ['0x64683da1']: VestingBudget,\n // ['0x2929d19c']: SimpleBudget,\n [AManagedBudget as Hex]: ManagedBudget,\n [AManagedBudgetWithFees as Hex]: ManagedBudgetWithFees,\n};\n\n/**\n * A function that will read a contract's component interface using `getComponentInterface` and return the correct instantiated instance.\n *\n * @export\n * @async\n * @param {DeployableOptions} options\n * @param {Address} address\n * @returns {Promise<ManagedBudget | ManagedBudgetWithFees>}\n * @throws {@link InvalidComponentInterfaceError}\n */\nexport async function budgetFromAddress(\n options: DeployableOptions,\n address: Address,\n params?: ReadParams,\n) {\n const interfaceId = (await readContract(options.config, {\n abi: aBudgetAbi,\n functionName: 'getComponentInterface',\n address,\n ...params,\n })) as keyof typeof BudgetByComponentInterface;\n const Ctor = BudgetByComponentInterface[interfaceId];\n if (!Ctor) {\n throw new InvalidComponentInterfaceError(\n Object.keys(BudgetByComponentInterface) as Hex[],\n interfaceId as Hex,\n );\n }\n return new Ctor(options, address);\n}\n"],"names":["_ManagedBudgetWithFees","DeployableTargetWithRBAC","managedBudgetWithFeesAbi","transfer","params","request","result","simulateManagedBudgetAllocate","prepareTransfer","writeManagedBudgetAllocate","simulateManagedBudgetClawback","writeManagedBudgetClawback","target","data","boostId","incentiveId","simulateManagedBudgetClawbackFromTarget","writeManagedBudgetClawbackFromTarget","simulateManagedBudgetDisburse","writeManagedBudgetDisburse","transfers","simulateManagedBudgetDisburseBatch","writeManagedBudgetDisburseBatch","simulateManagedBudgetWithFeesPayManagementFee","writeManagedBudgetWithFeesPayManagementFee","managementFee","simulateManagedBudgetWithFeesSetManagementFee","writeManagedBudgetWithFeesSetManagementFee","readManagedBudgetWithFeesManagementFee","readManagedBudgetOwner","asset","zeroAddress","tokenId","readManagedBudgetTotal","readManagedBudgetAvailable","readManagedBudgetDistributed","_payload","_options","payload","options","owner","getAccount","_a","DeployableUnknownOwnerProvidedError","bytecode","prepareManagedBudgetWithFeesPayload","ManagedBudgetWithFeesBases","RegistryType","ManagedBudgetWithFees","authorized","roles","encodeAbiParameters","parseAbiParameters","BudgetByComponentInterface","AManagedBudget","ManagedBudget","AManagedBudgetWithFees","budgetFromAddress","address","interfaceId","readContract","aBudgetAbi","Ctor","InvalidComponentInterfaceError"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../generated-CRD9XfOT.cjs");require("../componentInterfaces-D7r9xJmt.cjs");require("@wagmi/core");require("../errors.cjs");const r=require("./ManagedBudget.cjs"),e=require("../Budget-N0YEfSt2.cjs");exports.ManagedBudget=r.ManagedBudget;exports.BudgetByComponentInterface=e.BudgetByComponentInterface;exports.budgetFromAddress=e.budgetFromAddress;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../generated-DtYPHhtX.cjs");require("../componentInterfaces-D7r9xJmt.cjs");require("@wagmi/core");require("../errors.cjs");const r=require("./ManagedBudget.cjs"),e=require("../Budget-AoNx7uFd.cjs");exports.ManagedBudget=r.ManagedBudget;exports.BudgetByComponentInterface=e.BudgetByComponentInterface;exports.budgetFromAddress=e.budgetFromAddress;
2
2
  //# sourceMappingURL=Budget.cjs.map
@@ -1,9 +1,9 @@
1
- import "../generated-ClbO_ULI.js";
1
+ import "../generated-Cyvr_Tjx.js";
2
2
  import "../componentInterfaces-PR3ijhgZ.js";
3
3
  import "@wagmi/core";
4
4
  import "../errors.js";
5
5
  import { ManagedBudget as d } from "./ManagedBudget.js";
6
- import { B as g, b as i } from "../Budget-C0SMvfEl.js";
6
+ import { B as g, b as i } from "../Budget-DYIV9iNK.js";
7
7
  export {
8
8
  g as BudgetByComponentInterface,
9
9
  d as ManagedBudget,
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../generated-CRD9XfOT.cjs"),p=require("@wagmi/core"),t=require("viem"),R=require("../deployments-BGpr4ppG.cjs"),T=require("../Deployable/DeployableTargetWithRBAC.cjs"),h=require("../errors.cjs"),u=require("../transfers.cjs"),m=require("../utils.cjs"),E="0x6080604052348015600e575f80fd5b50601b601f60201b60201c565b60b0565b5f602c608760201b60201c565b90508054600181161560455763f92ee8a95f526004601cfd5b8160c01c808260011c146082578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b613931806100bd5f395ff3fe608060405260043610610212575f3560e01c8063715018a611610117578063ec87621c1161009f578063f8724aba1161006e578063f8724aba146107b6578063f9a802c3146107f2578063fa4ca9b11461082e578063fe9fbb801461086a578063fee81cf4146108a657610219565b8063ec87621c14610718578063f04e283e14610742578063f23a6e611461075e578063f2fde38b1461079a57610219565b8063b3005793116100e6578063b300579314610613578063bc197c8114610650578063be4994f81461068c578063d2514e84146106b4578063dcc21361146106f057610219565b8063715018a61461057957806375b238fc14610583578063774c33ab146105ad5780638da5cb5b146105e957610219565b8063439fab911161019a578063514e62fc11610169578063514e62fc1461048b57806354d1f13d146104c7578063578bcf35146104d15780635aef467a1461050d57806361400c991461053d57610219565b8063439fab91146103cf578063451cc191146103f7578063474f5a44146104335780634a4ee7b11461046f57610219565b80631cd64df4116101e15780631cd64df4146102fb578063256929621461033757806328d6183b146103415780632de948071461036b5780634359d28a146103a757610219565b806301ffc9a71461024b57806310098ad514610287578063183a4f6e146102c35780631c10893f146102df57610219565b3661021957005b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b348015610256575f80fd5b50610271600480360381019061026c91906126fd565b6108e2565b60405161027e9190612742565b60405180910390f35b348015610292575f80fd5b506102ad60048036038101906102a891906127b5565b610a2b565b6040516102ba91906127f8565b60405180910390f35b6102dd60048036038101906102d8919061283b565b610a96565b005b6102f960048036038101906102f49190612866565b610aa3565b005b348015610306575f80fd5b50610321600480360381019061031c9190612866565b610ab9565b60405161032e9190612742565b60405180910390f35b61033f610acf565b005b34801561034c575f80fd5b50610355610b20565b60405161036291906128b3565b60405180910390f35b348015610376575f80fd5b50610391600480360381019061038c91906127b5565b610b47565b60405161039e91906127f8565b60405180910390f35b3480156103b2575f80fd5b506103cd60048036038101906103c89190612982565b610b60565b005b3480156103da575f80fd5b506103f560048036038101906103f09190612a55565b610c6e565b005b348015610402575f80fd5b5061041d60048036038101906104189190612a55565b610d66565b60405161042a91906127f8565b60405180910390f35b34801561043e575f80fd5b5061045960048036038101906104549190612a55565b610d6d565b60405161046691906127f8565b60405180910390f35b61048960048036038101906104849190612866565b610f66565b005b348015610496575f80fd5b506104b160048036038101906104ac9190612866565b610f7c565b6040516104be9190612742565b60405180910390f35b6104cf610f93565b005b3480156104dc575f80fd5b506104f760048036038101906104f291906127b5565b610fcc565b60405161050491906127f8565b60405180910390f35b61052760048036038101906105229190612a55565b611011565b6040516105349190612742565b60405180910390f35b348015610548575f80fd5b50610563600480360381019061055e9190612af5565b611381565b6040516105709190612742565b60405180910390f35b6105816113e5565b005b34801561058e575f80fd5b506105976113f8565b6040516105a491906127f8565b60405180910390f35b3480156105b8575f80fd5b506105d360048036038101906105ce9190612866565b6113fd565b6040516105e091906127f8565b60405180910390f35b3480156105f4575f80fd5b506105fd611453565b60405161060a9190612b4f565b60405180910390f35b34801561061e575f80fd5b5061063960048036038101906106349190612b68565b61147b565b604051610647929190612bec565b60405180910390f35b34801561065b575f80fd5b5061067660048036038101906106719190612c68565b611638565b60405161068391906128b3565b60405180910390f35b348015610697575f80fd5b506106b260048036038101906106ad9190612d3f565b61164f565b005b3480156106bf575f80fd5b506106da60048036038101906106d591906127b5565b611705565b6040516106e791906127f8565b60405180910390f35b3480156106fb575f80fd5b5061071660048036038101906107119190612d3f565b61175d565b005b348015610723575f80fd5b5061072c611813565b60405161073991906127f8565b60405180910390f35b61075c600480360381019061075791906127b5565b611818565b005b348015610769575f80fd5b50610784600480360381019061077f9190612dbd565b611856565b60405161079191906128b3565b60405180910390f35b6107b460048036038101906107af91906127b5565b61186b565b005b3480156107c1575f80fd5b506107dc60048036038101906107d79190612866565b611894565b6040516107e991906127f8565b60405180910390f35b3480156107fd575f80fd5b5061081860048036038101906108139190612866565b611916565b60405161082591906127f8565b60405180910390f35b348015610839575f80fd5b50610854600480360381019061084f9190612a55565b6119ef565b6040516108619190612742565b60405180910390f35b348015610875575f80fd5b50610890600480360381019061088b91906127b5565b611cf4565b60405161089d9190612742565b60405180910390f35b3480156108b1575f80fd5b506108cc60048036038101906108c791906127b5565b611d47565b6040516108d991906127f8565b60405180910390f35b5f7f5fbfaa4e000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109ac57507f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a1457507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a245750610a2382611d60565b5b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610a8d57610a88308373ffffffffffffffffffffffffffffffffffffffff16611dd990919063ffffffff16565b610a8f565b475b9050919050565b610aa03382611e0c565b50565b610aab611e1b565b610ab58282611e52565b5050565b5f8182610ac585610b47565b1614905092915050565b5f610ad8611e62565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f5fbfaa4e00000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b6002610b6b81611e6c565b828290508585905014610baa576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015610c66575f848483818110610bcb57610bca612e53565b5b9050602002016020810190610be09190612eaa565b90506001151581151503610c2557610c20878784818110610c0457610c03612e53565b5b9050602002016020810190610c1991906127b5565b6001611e52565b610c58565b610c57878784818110610c3b57610c3a612e53565b5b9050602002016020810190610c5091906127b5565b6001611e0c565b5b508080600101915050610bac565b505050505050565b5f610c77611ea1565b90508054600382558015610ca95760018160011c14303b10610ca05763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8383810190610cba919061317e565b9050610cc8815f0151611eca565b5f5b816020015151811015610d2a57610d1d82602001518281518110610cf157610cf0612e53565b5b602002602001015183604001518381518110610d1057610d0f612e53565b5b6020026020010151611fa0565b8080600101915050610cca565b50508015610d61576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f92915050565b5f6002610d7981611e6c565b5f8484810190610d899190613329565b90505f806002811115610d9f57610d9e613370565b5b825f01516002811115610db557610db4613370565b5b1480610de8575060016002811115610dd057610dcf613370565b5b825f01516002811115610de657610de5613370565b5b145b15610e47575f8260600151806020019051810190610e0691906133ea565b9050610e3b836020015184604001515f845f015114610e2857835f0151610e36565b610e358660200151610a2b565b5b611fe1565b805f0151915050610f59565b600280811115610e5a57610e59613370565b5b825f01516002811115610e7057610e6f613370565b5b03610f4e575f8260600151806020019051810190610e8e919061350e565b9050610f4183602001518460400151835f01515f856020015114610eb6578460200151610f37565b866020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30875f01516040518363ffffffff1660e01b8152600401610ef7929190613555565b602060405180830381865afa158015610f12573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f36919061357c565b5b85604001516121a7565b8060200151915050610f58565b8093505050610f5f565b5b80935050505b5092915050565b610f6e611e1b565b610f788282611e0c565b5050565b5f8082610f8885610b47565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8083838101906110229190613329565b90505f600281111561103757611036613370565b5b815f0151600281111561104d5761104c613370565b5b036110c3575f816060015180602001905181019061106b91906133ea565b9050805f015134146110bd578160200151815f01516040517fcece04c50000000000000000000000000000000000000000000000000000000081526004016110b4929190613555565b60405180910390fd5b50611375565b600160028111156110d7576110d6613370565b5b815f015160028111156110ed576110ec613370565b5b036111c8575f816060015180602001905181019061110b91906133ea565b9050611145826040015130835f0151856020015173ffffffffffffffffffffffffffffffffffffffff166123d3909392919063ffffffff16565b805f015161117630846020015173ffffffffffffffffffffffffffffffffffffffff16611dd990919063ffffffff16565b10156111c2578160200151815f01516040517fcece04c50000000000000000000000000000000000000000000000000000000081526004016111b9929190613555565b60405180910390fd5b50611374565b6002808111156111db576111da613370565b5b815f015160028111156111f1576111f0613370565b5b0361136a575f816060015180602001905181019061120f919061350e565b9050816020015173ffffffffffffffffffffffffffffffffffffffff1663f242432a836040015130845f0151856020015186604001516040518663ffffffff1660e01b81526004016112659594939291906135f9565b5f604051808303815f87803b15801561127c575f80fd5b505af115801561128e573d5f803e3d5ffd5b505050508060200151826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b81526004016112d8929190613555565b602060405180830381865afa1580156112f3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611317919061357c565b101561136457816020015181602001516040517fcece04c500000000000000000000000000000000000000000000000000000000815260040161135b929190613555565b60405180910390fd5b50611373565b5f91505061137b565b5b5b60019150505b92915050565b5f805f90505b838390508110156113d9576113bf8484838181106113a8576113a7612e53565b5b90506020028101906113ba919061365d565b6119ef565b6113cc575f9150506113df565b8080600101915050611387565b50600190505b92915050565b6113ed611e1b565b6113f65f61242d565b565b600281565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f8061148633611cf4565b6114bc576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60405180604001604052803073ffffffffffffffffffffffffffffffffffffffff16815260200188888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081525090505f8890505f808273ffffffffffffffffffffffffffffffffffffffff1663dd98558c856040516020016115609190613750565b6040516020818303038152906040528a8a6040518463ffffffff1660e01b815260040161158f93929190613770565b60408051808303815f875af11580156115aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ce91906137c0565b91509150815f808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461161d919061382b565b92505081905550818195509550505050509550959350505050565b5f63bc197c8160e01b905098975050505050505050565b600261165a81611e6c565b828290508585905014611699576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b858590508110156116fd576116f08686838181106116bc576116bb612e53565b5b90506020020160208101906116d191906127b5565b8585848181106116e4576116e3612e53565b5b90506020020135611e52565b808060010191505061169b565b505050505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461174c83610a2b565b611756919061385e565b9050919050565b600261176881611e6c565b8282905085859050146117a7576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8585905081101561180b576117fe8686838181106117ca576117c9612e53565b5b90506020020160208101906117df91906127b5565b8585848181106117f2576117f1612e53565b5b90506020020135611e0c565b80806001019150506117a9565b505050505050565b600181565b611820611e1b565b63389a75e1600c52805f526020600c20805442111561184657636f5e88185f526004601cfd5b5f8155506118538161242d565b50565b5f63f23a6e6160e01b90509695505050505050565b611873611e1b565b8060601b61188857637448fbae5f526004601cfd5b6118918161242d565b50565b5f8273ffffffffffffffffffffffffffffffffffffffff1662fdd58e30846040518363ffffffff1660e01b81526004016118cf929190613555565b602060405180830381865afa1580156118ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061190e919061357c565b905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20548373ffffffffffffffffffffffffffffffffffffffff1662fdd58e30856040518363ffffffff1660e01b815260040161199e929190613555565b602060405180830381865afa1580156119b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119dd919061357c565b6119e7919061385e565b905092915050565b5f6119f933611cf4565b611a2f576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8383810190611a3f9190613329565b905060016002811115611a5557611a54613370565b5b815f01516002811115611a6b57611a6a613370565b5b1480611a9d57505f6002811115611a8557611a84613370565b5b815f01516002811115611a9b57611a9a613370565b5b145b15611b96575f8160600151806020019051810190611abb91906133ea565b90505f611acb8360200151610a2b565b905080825f01511115611b2057826020015181835f01516040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401611b1793929190613891565b60405180910390fd5b815f01515f80856020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611b72919061385e565b92505081905550611b8f83602001518460400151845f0151611fe1565b5050611ce8565b600280811115611ba957611ba8613370565b5b815f01516002811115611bbf57611bbe613370565b5b03611cde575f8160600151806020019051810190611bdd919061350e565b90505f826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b8152600401611c21929190613555565b602060405180830381865afa158015611c3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c60919061357c565b90508082602001511115611cb75782602001518183602001516040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401611cae93929190613891565b60405180910390fd5b611cd783602001518460400151845f0151856020015186604001516121a7565b5050611ce7565b5f915050611cee565b5b60019150505b92915050565b5f8173ffffffffffffffffffffffffffffffffffffffff16611d14611453565b73ffffffffffffffffffffffffffffffffffffffff161480611d405750611d3f826002600117610f7c565b5b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fe49cedd7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611dd25750611dd1826124f3565b5b9050919050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b611e1782825f61256c565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611e50576382b429005f526004601cfd5b565b611e5e8282600161256c565b5050565b5f6202a300905090565b638b78c6d819543314611e9e57638b78c6d8600c52335f52806020600c205416611e9d576382b429005f526004601cfd5b5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b611ed26125c4565b15611f4a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415611f0c57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611f9d565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b3068929eee149b4bd212685403611fff5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361207f578282826040517fbf182be8000000000000000000000000000000000000000000000000000000008152600401612076939291906138c6565b60405180910390fd5b61208883610a2b565b8111156120d8578261209984610a2b565b826040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016120cf93929190613891565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361211a5761211582826125c8565b612146565b61214582828573ffffffffffffffffffffffffffffffffffffffff166125e59092919063ffffffff16565b5b8273ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542838360405161218e929190613555565b60405180910390a23868929eee149b4bd2126855505050565b3068929eee149b4bd2126854036121c55763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612245578484836040517fbf182be800000000000000000000000000000000000000000000000000000000815260040161223c939291906138c6565b60405180910390fd5b61224f8584611894565b8211156122a057846122618685611894565b836040517f5c54305e00000000000000000000000000000000000000000000000000000000815260040161229793929190613891565b60405180910390fd5b8160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f205f8282546122fb919061385e565b925050819055508473ffffffffffffffffffffffffffffffffffffffff1663f242432a30868686866040518663ffffffff1660e01b81526004016123439594939291906135f9565b5f604051808303815f87803b15801561235a575f80fd5b505af115801561236c573d5f803e3d5ffd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd4354285846040516123b8929190613555565b60405180910390a23868929eee149b4bd21268555050505050565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f5114171661241e57637939f4245f526004601cfd5b5f606052806040525050505050565b6124356125c4565b1561249a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506124f0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061256557506125648261262e565b5b9050919050565b638b78c6d8600c52825f526020600c2080548381178361258e57848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f385f3884865af16125e15763b12d13eb5f526004601cfd5b5050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716612625576390b8ec185f526004601cfd5b5f603452505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6126dc816126a8565b81146126e6575f80fd5b50565b5f813590506126f7816126d3565b92915050565b5f60208284031215612712576127116126a0565b5b5f61271f848285016126e9565b91505092915050565b5f8115159050919050565b61273c81612728565b82525050565b5f6020820190506127555f830184612733565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6127848261275b565b9050919050565b6127948161277a565b811461279e575f80fd5b50565b5f813590506127af8161278b565b92915050565b5f602082840312156127ca576127c96126a0565b5b5f6127d7848285016127a1565b91505092915050565b5f819050919050565b6127f2816127e0565b82525050565b5f60208201905061280b5f8301846127e9565b92915050565b61281a816127e0565b8114612824575f80fd5b50565b5f8135905061283581612811565b92915050565b5f602082840312156128505761284f6126a0565b5b5f61285d84828501612827565b91505092915050565b5f806040838503121561287c5761287b6126a0565b5b5f612889858286016127a1565b925050602061289a85828601612827565b9150509250929050565b6128ad816126a8565b82525050565b5f6020820190506128c65f8301846128a4565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126128ed576128ec6128cc565b5b8235905067ffffffffffffffff81111561290a576129096128d0565b5b602083019150836020820283011115612926576129256128d4565b5b9250929050565b5f8083601f840112612942576129416128cc565b5b8235905067ffffffffffffffff81111561295f5761295e6128d0565b5b60208301915083602082028301111561297b5761297a6128d4565b5b9250929050565b5f805f806040858703121561299a576129996126a0565b5b5f85013567ffffffffffffffff8111156129b7576129b66126a4565b5b6129c3878288016128d8565b9450945050602085013567ffffffffffffffff8111156129e6576129e56126a4565b5b6129f28782880161292d565b925092505092959194509250565b5f8083601f840112612a1557612a146128cc565b5b8235905067ffffffffffffffff811115612a3257612a316128d0565b5b602083019150836001820283011115612a4e57612a4d6128d4565b5b9250929050565b5f8060208385031215612a6b57612a6a6126a0565b5b5f83013567ffffffffffffffff811115612a8857612a876126a4565b5b612a9485828601612a00565b92509250509250929050565b5f8083601f840112612ab557612ab46128cc565b5b8235905067ffffffffffffffff811115612ad257612ad16128d0565b5b602083019150836020820283011115612aee57612aed6128d4565b5b9250929050565b5f8060208385031215612b0b57612b0a6126a0565b5b5f83013567ffffffffffffffff811115612b2857612b276126a4565b5b612b3485828601612aa0565b92509250509250929050565b612b498161277a565b82525050565b5f602082019050612b625f830184612b40565b92915050565b5f805f805f60808688031215612b8157612b806126a0565b5b5f612b8e888289016127a1565b955050602086013567ffffffffffffffff811115612baf57612bae6126a4565b5b612bbb88828901612a00565b94509450506040612bce88828901612827565b9250506060612bdf88828901612827565b9150509295509295909350565b5f604082019050612bff5f8301856127e9565b612c0c6020830184612b40565b9392505050565b5f8083601f840112612c2857612c276128cc565b5b8235905067ffffffffffffffff811115612c4557612c446128d0565b5b602083019150836020820283011115612c6157612c606128d4565b5b9250929050565b5f805f805f805f8060a0898b031215612c8457612c836126a0565b5b5f612c918b828c016127a1565b9850506020612ca28b828c016127a1565b975050604089013567ffffffffffffffff811115612cc357612cc26126a4565b5b612ccf8b828c01612c13565b9650965050606089013567ffffffffffffffff811115612cf257612cf16126a4565b5b612cfe8b828c01612c13565b9450945050608089013567ffffffffffffffff811115612d2157612d206126a4565b5b612d2d8b828c01612a00565b92509250509295985092959890939650565b5f805f8060408587031215612d5757612d566126a0565b5b5f85013567ffffffffffffffff811115612d7457612d736126a4565b5b612d80878288016128d8565b9450945050602085013567ffffffffffffffff811115612da357612da26126a4565b5b612daf87828801612c13565b925092505092959194509250565b5f805f805f8060a08789031215612dd757612dd66126a0565b5b5f612de489828a016127a1565b9650506020612df589828a016127a1565b9550506040612e0689828a01612827565b9450506060612e1789828a01612827565b935050608087013567ffffffffffffffff811115612e3857612e376126a4565b5b612e4489828a01612a00565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b612e8981612728565b8114612e93575f80fd5b50565b5f81359050612ea481612e80565b92915050565b5f60208284031215612ebf57612ebe6126a0565b5b5f612ecc84828501612e96565b91505092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612f1f82612ed9565b810181811067ffffffffffffffff82111715612f3e57612f3d612ee9565b5b80604052505050565b5f612f50612697565b9050612f5c8282612f16565b919050565b5f80fd5b5f67ffffffffffffffff821115612f7f57612f7e612ee9565b5b602082029050602081019050919050565b5f612fa2612f9d84612f65565b612f47565b90508083825260208201905060208402830185811115612fc557612fc46128d4565b5b835b81811015612fee5780612fda88826127a1565b845260208401935050602081019050612fc7565b5050509392505050565b5f82601f83011261300c5761300b6128cc565b5b813561301c848260208601612f90565b91505092915050565b5f67ffffffffffffffff82111561303f5761303e612ee9565b5b602082029050602081019050919050565b5f61306261305d84613025565b612f47565b90508083825260208201905060208402830185811115613085576130846128d4565b5b835b818110156130ae578061309a8882612827565b845260208401935050602081019050613087565b5050509392505050565b5f82601f8301126130cc576130cb6128cc565b5b81356130dc848260208601613050565b91505092915050565b5f606082840312156130fa576130f9612ed5565b5b6131046060612f47565b90505f613113848285016127a1565b5f83015250602082013567ffffffffffffffff81111561313657613135612f61565b5b61314284828501612ff8565b602083015250604082013567ffffffffffffffff81111561316657613165612f61565b5b613172848285016130b8565b60408301525092915050565b5f60208284031215613193576131926126a0565b5b5f82013567ffffffffffffffff8111156131b0576131af6126a4565b5b6131bc848285016130e5565b91505092915050565b600381106131d1575f80fd5b50565b5f813590506131e2816131c5565b92915050565b5f80fd5b5f67ffffffffffffffff82111561320657613205612ee9565b5b61320f82612ed9565b9050602081019050919050565b828183375f83830152505050565b5f61323c613237846131ec565b612f47565b905082815260208101848484011115613258576132576131e8565b5b61326384828561321c565b509392505050565b5f82601f83011261327f5761327e6128cc565b5b813561328f84826020860161322a565b91505092915050565b5f608082840312156132ad576132ac612ed5565b5b6132b76080612f47565b90505f6132c6848285016131d4565b5f8301525060206132d9848285016127a1565b60208301525060406132ed848285016127a1565b604083015250606082013567ffffffffffffffff81111561331157613310612f61565b5b61331d8482850161326b565b60608301525092915050565b5f6020828403121561333e5761333d6126a0565b5b5f82013567ffffffffffffffff81111561335b5761335a6126a4565b5b61336784828501613298565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f815190506133ab81612811565b92915050565b5f602082840312156133c6576133c5612ed5565b5b6133d06020612f47565b90505f6133df8482850161339d565b5f8301525092915050565b5f602082840312156133ff576133fe6126a0565b5b5f61340c848285016133b1565b91505092915050565b8281835e5f83830152505050565b5f613435613430846131ec565b612f47565b905082815260208101848484011115613451576134506131e8565b5b61345c848285613415565b509392505050565b5f82601f830112613478576134776128cc565b5b8151613488848260208601613423565b91505092915050565b5f606082840312156134a6576134a5612ed5565b5b6134b06060612f47565b90505f6134bf8482850161339d565b5f8301525060206134d28482850161339d565b602083015250604082015167ffffffffffffffff8111156134f6576134f5612f61565b5b61350284828501613464565b60408301525092915050565b5f60208284031215613523576135226126a0565b5b5f82015167ffffffffffffffff8111156135405761353f6126a4565b5b61354c84828501613491565b91505092915050565b5f6040820190506135685f830185612b40565b61357560208301846127e9565b9392505050565b5f60208284031215613591576135906126a0565b5b5f61359e8482850161339d565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6135cb826135a7565b6135d581856135b1565b93506135e5818560208601613415565b6135ee81612ed9565b840191505092915050565b5f60a08201905061360c5f830188612b40565b6136196020830187612b40565b61362660408301866127e9565b61363360608301856127e9565b818103608083015261364581846135c1565b90509695505050505050565b5f80fd5b5f80fd5b5f80fd5b5f808335600160200384360303811261367957613678613651565b5b80840192508235915067ffffffffffffffff82111561369b5761369a613655565b5b6020830192506001820236038313156136b7576136b6613659565b5b509250929050565b6136c88161277a565b82525050565b5f82825260208201905092915050565b5f6136e8826135a7565b6136f281856136ce565b9350613702818560208601613415565b61370b81612ed9565b840191505092915050565b5f604083015f83015161372b5f8601826136bf565b506020830151848203602086015261374382826136de565b9150508091505092915050565b5f6020820190508181035f8301526137688184613716565b905092915050565b5f6060820190508181035f83015261378881866135c1565b905061379760208301856127e9565b6137a460408301846127e9565b949350505050565b5f815190506137ba8161278b565b92915050565b5f80604083850312156137d6576137d56126a0565b5b5f6137e38582860161339d565b92505060206137f4858286016137ac565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613835826127e0565b9150613840836127e0565b9250828203905081811115613858576138576137fe565b5b92915050565b5f613868826127e0565b9150613873836127e0565b925082820190508082111561388b5761388a6137fe565b5b92915050565b5f6060820190506138a45f830186612b40565b6138b160208301856127e9565b6138be60408301846127e9565b949350505050565b5f6060820190506138d95f830186612b40565b6138e66020830185612b40565b6138f360408301846127e9565b94935050505056fea264697066735822122043386a0ed4af64176291e3c82bd6ee953f22a90e82505ad77b38b8fa2956d75864736f6c634300081a0033";var l=(e=>(e[e.MANAGER=1n]="MANAGER",e[e.ADMIN=2n]="ADMIN",e))(l||{});function w(e){return e.tokenId===void 0}function g(e){return e.tokenId!==void 0}function r(e){if(w(e))return u.prepareFungibleTransfer(e);if(g(e))return u.prepareERC1155Transfer(e);throw new h.UnknownTransferPayloadSupplied(e)}const n=class n extends T.DeployableTargetWithRBAC{constructor(){super(...arguments),this.abi=c.w}async allocate(f,b){return await this.awaitResult(this.allocateRaw(f,b))}async allocateRaw(f,b){const{request:a,result:d}=await c.mE(this._config,{address:this.assertValidAddress(),args:[r(f)],...this.optionallyAttachAccount(),...b});return{hash:await c.QC(this._config,a),result:d}}async clawback(f,b){return await this.awaitResult(this.clawbackRaw(f,b))}async clawbackRaw(f,b){const{request:a,result:d}=await c.fE(this._config,{address:this.assertValidAddress(),args:[r(f)],...this.optionallyAttachAccount(),...b});return{hash:await c.KC(this._config,a),result:d}}async clawbackFromTarget(f,b,a,d,s){return await this.awaitResult(this.clawbackFromTargetRaw(f,b,a,d,s))}async clawbackFromTargetRaw(f,b,a,d,s){const{request:i,result:y}=await c.vE(this._config,{address:this.assertValidAddress(),args:[f,b,BigInt(a),BigInt(d)],...this.optionallyAttachAccount(),...s});return{hash:await c.XC(this._config,i),result:y}}async disburse(f,b){return await this.awaitResult(this.disburseRaw(f,b))}async disburseRaw(f,b){const{request:a,result:d}=await c.TE(this._config,{address:this.assertValidAddress(),args:[r(f)],...this.optionallyAttachAccount(),...b});return{hash:await c.eE(this._config,a),result:d}}async disburseBatch(f,b){return await this.awaitResult(this.disburseBatchRaw(f,b))}async disburseBatchRaw(f,b){const{request:a,result:d}=await c.AE(this._config,{address:this.assertValidAddress(),args:[f.map(r)],...this.optionallyAttachAccount(),...b});return{hash:await c.tE(this._config,a),result:d}}owner(f){return c.GC(this._config,{address:this.assertValidAddress(),args:[],...f})}total(f=t.zeroAddress,b,a){return c.jC(this._config,{address:this.assertValidAddress(),args:b?[f,b]:[f],...a})}available(f=t.zeroAddress,b,a){return c.SC(this._config,{address:this.assertValidAddress(),args:b?[f,b]:[f],...a})}distributed(f=t.zeroAddress,b,a){return c.FC(this._config,{address:this.assertValidAddress(),args:b?[f,b]:[f],...a})}buildParameters(f,b){var s;const[a,d]=this.validateDeploymentConfig(f,b);if(!a.owner||a.owner===t.zeroAddress){const i=d.account?d.account.address:d.config?p.getAccount(d.config).address:(s=this._account)==null?void 0:s.address;if(i)a.owner=i;else throw new h.DeployableUnknownOwnerProvidedError}return{abi:c.w,bytecode:E,args:[A(a)],...this.optionallyAttachAccount(d.account)}}};n.bases={31337:void 0,...R.ManagedBudget},n.registryType=m.RegistryType.BUDGET;let o=n;const A=({owner:e,authorized:f,roles:b})=>t.encodeAbiParameters(t.parseAbiParameters(["ManagedBudgetPayload payload","struct ManagedBudgetPayload { address owner; address[] authorized; uint256[] roles; }"]),[{owner:e,authorized:f,roles:b}]);exports.managedBudgetAbi=c.w;exports.ManagedBudget=o;exports.ManagedBudgetRoles=l;exports.isERC1155TransferPayload=g;exports.isFungibleTransfer=w;exports.prepareManagedBudgetPayload=A;exports.prepareTransfer=r;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../generated-DtYPHhtX.cjs"),p=require("@wagmi/core"),t=require("viem"),R=require("../deployments-DoIOqxco.cjs"),T=require("../Deployable/DeployableTargetWithRBAC.cjs"),h=require("../errors.cjs"),u=require("../transfers.cjs"),m=require("../utils.cjs"),E="0x6080604052348015600e575f80fd5b50601b601f60201b60201c565b60b0565b5f602c608760201b60201c565b90508054600181161560455763f92ee8a95f526004601cfd5b8160c01c808260011c146082578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b613931806100bd5f395ff3fe608060405260043610610212575f3560e01c8063715018a611610117578063ec87621c1161009f578063f8724aba1161006e578063f8724aba146107b6578063f9a802c3146107f2578063fa4ca9b11461082e578063fe9fbb801461086a578063fee81cf4146108a657610219565b8063ec87621c14610718578063f04e283e14610742578063f23a6e611461075e578063f2fde38b1461079a57610219565b8063b3005793116100e6578063b300579314610613578063bc197c8114610650578063be4994f81461068c578063d2514e84146106b4578063dcc21361146106f057610219565b8063715018a61461057957806375b238fc14610583578063774c33ab146105ad5780638da5cb5b146105e957610219565b8063439fab911161019a578063514e62fc11610169578063514e62fc1461048b57806354d1f13d146104c7578063578bcf35146104d15780635aef467a1461050d57806361400c991461053d57610219565b8063439fab91146103cf578063451cc191146103f7578063474f5a44146104335780634a4ee7b11461046f57610219565b80631cd64df4116101e15780631cd64df4146102fb578063256929621461033757806328d6183b146103415780632de948071461036b5780634359d28a146103a757610219565b806301ffc9a71461024b57806310098ad514610287578063183a4f6e146102c35780631c10893f146102df57610219565b3661021957005b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b348015610256575f80fd5b50610271600480360381019061026c91906126fd565b6108e2565b60405161027e9190612742565b60405180910390f35b348015610292575f80fd5b506102ad60048036038101906102a891906127b5565b610a2b565b6040516102ba91906127f8565b60405180910390f35b6102dd60048036038101906102d8919061283b565b610a96565b005b6102f960048036038101906102f49190612866565b610aa3565b005b348015610306575f80fd5b50610321600480360381019061031c9190612866565b610ab9565b60405161032e9190612742565b60405180910390f35b61033f610acf565b005b34801561034c575f80fd5b50610355610b20565b60405161036291906128b3565b60405180910390f35b348015610376575f80fd5b50610391600480360381019061038c91906127b5565b610b47565b60405161039e91906127f8565b60405180910390f35b3480156103b2575f80fd5b506103cd60048036038101906103c89190612982565b610b60565b005b3480156103da575f80fd5b506103f560048036038101906103f09190612a55565b610c6e565b005b348015610402575f80fd5b5061041d60048036038101906104189190612a55565b610d66565b60405161042a91906127f8565b60405180910390f35b34801561043e575f80fd5b5061045960048036038101906104549190612a55565b610d6d565b60405161046691906127f8565b60405180910390f35b61048960048036038101906104849190612866565b610f66565b005b348015610496575f80fd5b506104b160048036038101906104ac9190612866565b610f7c565b6040516104be9190612742565b60405180910390f35b6104cf610f93565b005b3480156104dc575f80fd5b506104f760048036038101906104f291906127b5565b610fcc565b60405161050491906127f8565b60405180910390f35b61052760048036038101906105229190612a55565b611011565b6040516105349190612742565b60405180910390f35b348015610548575f80fd5b50610563600480360381019061055e9190612af5565b611381565b6040516105709190612742565b60405180910390f35b6105816113e5565b005b34801561058e575f80fd5b506105976113f8565b6040516105a491906127f8565b60405180910390f35b3480156105b8575f80fd5b506105d360048036038101906105ce9190612866565b6113fd565b6040516105e091906127f8565b60405180910390f35b3480156105f4575f80fd5b506105fd611453565b60405161060a9190612b4f565b60405180910390f35b34801561061e575f80fd5b5061063960048036038101906106349190612b68565b61147b565b604051610647929190612bec565b60405180910390f35b34801561065b575f80fd5b5061067660048036038101906106719190612c68565b611638565b60405161068391906128b3565b60405180910390f35b348015610697575f80fd5b506106b260048036038101906106ad9190612d3f565b61164f565b005b3480156106bf575f80fd5b506106da60048036038101906106d591906127b5565b611705565b6040516106e791906127f8565b60405180910390f35b3480156106fb575f80fd5b5061071660048036038101906107119190612d3f565b61175d565b005b348015610723575f80fd5b5061072c611813565b60405161073991906127f8565b60405180910390f35b61075c600480360381019061075791906127b5565b611818565b005b348015610769575f80fd5b50610784600480360381019061077f9190612dbd565b611856565b60405161079191906128b3565b60405180910390f35b6107b460048036038101906107af91906127b5565b61186b565b005b3480156107c1575f80fd5b506107dc60048036038101906107d79190612866565b611894565b6040516107e991906127f8565b60405180910390f35b3480156107fd575f80fd5b5061081860048036038101906108139190612866565b611916565b60405161082591906127f8565b60405180910390f35b348015610839575f80fd5b50610854600480360381019061084f9190612a55565b6119ef565b6040516108619190612742565b60405180910390f35b348015610875575f80fd5b50610890600480360381019061088b91906127b5565b611cf4565b60405161089d9190612742565b60405180910390f35b3480156108b1575f80fd5b506108cc60048036038101906108c791906127b5565b611d47565b6040516108d991906127f8565b60405180910390f35b5f7f5fbfaa4e000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109ac57507f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a1457507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a245750610a2382611d60565b5b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610a8d57610a88308373ffffffffffffffffffffffffffffffffffffffff16611dd990919063ffffffff16565b610a8f565b475b9050919050565b610aa03382611e0c565b50565b610aab611e1b565b610ab58282611e52565b5050565b5f8182610ac585610b47565b1614905092915050565b5f610ad8611e62565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f5fbfaa4e00000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b6002610b6b81611e6c565b828290508585905014610baa576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015610c66575f848483818110610bcb57610bca612e53565b5b9050602002016020810190610be09190612eaa565b90506001151581151503610c2557610c20878784818110610c0457610c03612e53565b5b9050602002016020810190610c1991906127b5565b6001611e52565b610c58565b610c57878784818110610c3b57610c3a612e53565b5b9050602002016020810190610c5091906127b5565b6001611e0c565b5b508080600101915050610bac565b505050505050565b5f610c77611ea1565b90508054600382558015610ca95760018160011c14303b10610ca05763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8383810190610cba919061317e565b9050610cc8815f0151611eca565b5f5b816020015151811015610d2a57610d1d82602001518281518110610cf157610cf0612e53565b5b602002602001015183604001518381518110610d1057610d0f612e53565b5b6020026020010151611fa0565b8080600101915050610cca565b50508015610d61576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f92915050565b5f6002610d7981611e6c565b5f8484810190610d899190613329565b90505f806002811115610d9f57610d9e613370565b5b825f01516002811115610db557610db4613370565b5b1480610de8575060016002811115610dd057610dcf613370565b5b825f01516002811115610de657610de5613370565b5b145b15610e47575f8260600151806020019051810190610e0691906133ea565b9050610e3b836020015184604001515f845f015114610e2857835f0151610e36565b610e358660200151610a2b565b5b611fe1565b805f0151915050610f59565b600280811115610e5a57610e59613370565b5b825f01516002811115610e7057610e6f613370565b5b03610f4e575f8260600151806020019051810190610e8e919061350e565b9050610f4183602001518460400151835f01515f856020015114610eb6578460200151610f37565b866020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30875f01516040518363ffffffff1660e01b8152600401610ef7929190613555565b602060405180830381865afa158015610f12573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f36919061357c565b5b85604001516121a7565b8060200151915050610f58565b8093505050610f5f565b5b80935050505b5092915050565b610f6e611e1b565b610f788282611e0c565b5050565b5f8082610f8885610b47565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8083838101906110229190613329565b90505f600281111561103757611036613370565b5b815f0151600281111561104d5761104c613370565b5b036110c3575f816060015180602001905181019061106b91906133ea565b9050805f015134146110bd578160200151815f01516040517fcece04c50000000000000000000000000000000000000000000000000000000081526004016110b4929190613555565b60405180910390fd5b50611375565b600160028111156110d7576110d6613370565b5b815f015160028111156110ed576110ec613370565b5b036111c8575f816060015180602001905181019061110b91906133ea565b9050611145826040015130835f0151856020015173ffffffffffffffffffffffffffffffffffffffff166123d3909392919063ffffffff16565b805f015161117630846020015173ffffffffffffffffffffffffffffffffffffffff16611dd990919063ffffffff16565b10156111c2578160200151815f01516040517fcece04c50000000000000000000000000000000000000000000000000000000081526004016111b9929190613555565b60405180910390fd5b50611374565b6002808111156111db576111da613370565b5b815f015160028111156111f1576111f0613370565b5b0361136a575f816060015180602001905181019061120f919061350e565b9050816020015173ffffffffffffffffffffffffffffffffffffffff1663f242432a836040015130845f0151856020015186604001516040518663ffffffff1660e01b81526004016112659594939291906135f9565b5f604051808303815f87803b15801561127c575f80fd5b505af115801561128e573d5f803e3d5ffd5b505050508060200151826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b81526004016112d8929190613555565b602060405180830381865afa1580156112f3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611317919061357c565b101561136457816020015181602001516040517fcece04c500000000000000000000000000000000000000000000000000000000815260040161135b929190613555565b60405180910390fd5b50611373565b5f91505061137b565b5b5b60019150505b92915050565b5f805f90505b838390508110156113d9576113bf8484838181106113a8576113a7612e53565b5b90506020028101906113ba919061365d565b6119ef565b6113cc575f9150506113df565b8080600101915050611387565b50600190505b92915050565b6113ed611e1b565b6113f65f61242d565b565b600281565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f8061148633611cf4565b6114bc576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60405180604001604052803073ffffffffffffffffffffffffffffffffffffffff16815260200188888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081525090505f8890505f808273ffffffffffffffffffffffffffffffffffffffff1663dd98558c856040516020016115609190613750565b6040516020818303038152906040528a8a6040518463ffffffff1660e01b815260040161158f93929190613770565b60408051808303815f875af11580156115aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ce91906137c0565b91509150815f808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461161d919061382b565b92505081905550818195509550505050509550959350505050565b5f63bc197c8160e01b905098975050505050505050565b600261165a81611e6c565b828290508585905014611699576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b858590508110156116fd576116f08686838181106116bc576116bb612e53565b5b90506020020160208101906116d191906127b5565b8585848181106116e4576116e3612e53565b5b90506020020135611e52565b808060010191505061169b565b505050505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461174c83610a2b565b611756919061385e565b9050919050565b600261176881611e6c565b8282905085859050146117a7576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8585905081101561180b576117fe8686838181106117ca576117c9612e53565b5b90506020020160208101906117df91906127b5565b8585848181106117f2576117f1612e53565b5b90506020020135611e0c565b80806001019150506117a9565b505050505050565b600181565b611820611e1b565b63389a75e1600c52805f526020600c20805442111561184657636f5e88185f526004601cfd5b5f8155506118538161242d565b50565b5f63f23a6e6160e01b90509695505050505050565b611873611e1b565b8060601b61188857637448fbae5f526004601cfd5b6118918161242d565b50565b5f8273ffffffffffffffffffffffffffffffffffffffff1662fdd58e30846040518363ffffffff1660e01b81526004016118cf929190613555565b602060405180830381865afa1580156118ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061190e919061357c565b905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20548373ffffffffffffffffffffffffffffffffffffffff1662fdd58e30856040518363ffffffff1660e01b815260040161199e929190613555565b602060405180830381865afa1580156119b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119dd919061357c565b6119e7919061385e565b905092915050565b5f6119f933611cf4565b611a2f576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8383810190611a3f9190613329565b905060016002811115611a5557611a54613370565b5b815f01516002811115611a6b57611a6a613370565b5b1480611a9d57505f6002811115611a8557611a84613370565b5b815f01516002811115611a9b57611a9a613370565b5b145b15611b96575f8160600151806020019051810190611abb91906133ea565b90505f611acb8360200151610a2b565b905080825f01511115611b2057826020015181835f01516040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401611b1793929190613891565b60405180910390fd5b815f01515f80856020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611b72919061385e565b92505081905550611b8f83602001518460400151845f0151611fe1565b5050611ce8565b600280811115611ba957611ba8613370565b5b815f01516002811115611bbf57611bbe613370565b5b03611cde575f8160600151806020019051810190611bdd919061350e565b90505f826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b8152600401611c21929190613555565b602060405180830381865afa158015611c3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c60919061357c565b90508082602001511115611cb75782602001518183602001516040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401611cae93929190613891565b60405180910390fd5b611cd783602001518460400151845f0151856020015186604001516121a7565b5050611ce7565b5f915050611cee565b5b60019150505b92915050565b5f8173ffffffffffffffffffffffffffffffffffffffff16611d14611453565b73ffffffffffffffffffffffffffffffffffffffff161480611d405750611d3f826002600117610f7c565b5b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fe49cedd7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611dd25750611dd1826124f3565b5b9050919050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b611e1782825f61256c565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611e50576382b429005f526004601cfd5b565b611e5e8282600161256c565b5050565b5f6202a300905090565b638b78c6d819543314611e9e57638b78c6d8600c52335f52806020600c205416611e9d576382b429005f526004601cfd5b5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b611ed26125c4565b15611f4a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415611f0c57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611f9d565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b3068929eee149b4bd212685403611fff5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361207f578282826040517fbf182be8000000000000000000000000000000000000000000000000000000008152600401612076939291906138c6565b60405180910390fd5b61208883610a2b565b8111156120d8578261209984610a2b565b826040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016120cf93929190613891565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361211a5761211582826125c8565b612146565b61214582828573ffffffffffffffffffffffffffffffffffffffff166125e59092919063ffffffff16565b5b8273ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542838360405161218e929190613555565b60405180910390a23868929eee149b4bd2126855505050565b3068929eee149b4bd2126854036121c55763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612245578484836040517fbf182be800000000000000000000000000000000000000000000000000000000815260040161223c939291906138c6565b60405180910390fd5b61224f8584611894565b8211156122a057846122618685611894565b836040517f5c54305e00000000000000000000000000000000000000000000000000000000815260040161229793929190613891565b60405180910390fd5b8160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f205f8282546122fb919061385e565b925050819055508473ffffffffffffffffffffffffffffffffffffffff1663f242432a30868686866040518663ffffffff1660e01b81526004016123439594939291906135f9565b5f604051808303815f87803b15801561235a575f80fd5b505af115801561236c573d5f803e3d5ffd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd4354285846040516123b8929190613555565b60405180910390a23868929eee149b4bd21268555050505050565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f5114171661241e57637939f4245f526004601cfd5b5f606052806040525050505050565b6124356125c4565b1561249a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506124f0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061256557506125648261262e565b5b9050919050565b638b78c6d8600c52825f526020600c2080548381178361258e57848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f385f3884865af16125e15763b12d13eb5f526004601cfd5b5050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716612625576390b8ec185f526004601cfd5b5f603452505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6126dc816126a8565b81146126e6575f80fd5b50565b5f813590506126f7816126d3565b92915050565b5f60208284031215612712576127116126a0565b5b5f61271f848285016126e9565b91505092915050565b5f8115159050919050565b61273c81612728565b82525050565b5f6020820190506127555f830184612733565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6127848261275b565b9050919050565b6127948161277a565b811461279e575f80fd5b50565b5f813590506127af8161278b565b92915050565b5f602082840312156127ca576127c96126a0565b5b5f6127d7848285016127a1565b91505092915050565b5f819050919050565b6127f2816127e0565b82525050565b5f60208201905061280b5f8301846127e9565b92915050565b61281a816127e0565b8114612824575f80fd5b50565b5f8135905061283581612811565b92915050565b5f602082840312156128505761284f6126a0565b5b5f61285d84828501612827565b91505092915050565b5f806040838503121561287c5761287b6126a0565b5b5f612889858286016127a1565b925050602061289a85828601612827565b9150509250929050565b6128ad816126a8565b82525050565b5f6020820190506128c65f8301846128a4565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126128ed576128ec6128cc565b5b8235905067ffffffffffffffff81111561290a576129096128d0565b5b602083019150836020820283011115612926576129256128d4565b5b9250929050565b5f8083601f840112612942576129416128cc565b5b8235905067ffffffffffffffff81111561295f5761295e6128d0565b5b60208301915083602082028301111561297b5761297a6128d4565b5b9250929050565b5f805f806040858703121561299a576129996126a0565b5b5f85013567ffffffffffffffff8111156129b7576129b66126a4565b5b6129c3878288016128d8565b9450945050602085013567ffffffffffffffff8111156129e6576129e56126a4565b5b6129f28782880161292d565b925092505092959194509250565b5f8083601f840112612a1557612a146128cc565b5b8235905067ffffffffffffffff811115612a3257612a316128d0565b5b602083019150836001820283011115612a4e57612a4d6128d4565b5b9250929050565b5f8060208385031215612a6b57612a6a6126a0565b5b5f83013567ffffffffffffffff811115612a8857612a876126a4565b5b612a9485828601612a00565b92509250509250929050565b5f8083601f840112612ab557612ab46128cc565b5b8235905067ffffffffffffffff811115612ad257612ad16128d0565b5b602083019150836020820283011115612aee57612aed6128d4565b5b9250929050565b5f8060208385031215612b0b57612b0a6126a0565b5b5f83013567ffffffffffffffff811115612b2857612b276126a4565b5b612b3485828601612aa0565b92509250509250929050565b612b498161277a565b82525050565b5f602082019050612b625f830184612b40565b92915050565b5f805f805f60808688031215612b8157612b806126a0565b5b5f612b8e888289016127a1565b955050602086013567ffffffffffffffff811115612baf57612bae6126a4565b5b612bbb88828901612a00565b94509450506040612bce88828901612827565b9250506060612bdf88828901612827565b9150509295509295909350565b5f604082019050612bff5f8301856127e9565b612c0c6020830184612b40565b9392505050565b5f8083601f840112612c2857612c276128cc565b5b8235905067ffffffffffffffff811115612c4557612c446128d0565b5b602083019150836020820283011115612c6157612c606128d4565b5b9250929050565b5f805f805f805f8060a0898b031215612c8457612c836126a0565b5b5f612c918b828c016127a1565b9850506020612ca28b828c016127a1565b975050604089013567ffffffffffffffff811115612cc357612cc26126a4565b5b612ccf8b828c01612c13565b9650965050606089013567ffffffffffffffff811115612cf257612cf16126a4565b5b612cfe8b828c01612c13565b9450945050608089013567ffffffffffffffff811115612d2157612d206126a4565b5b612d2d8b828c01612a00565b92509250509295985092959890939650565b5f805f8060408587031215612d5757612d566126a0565b5b5f85013567ffffffffffffffff811115612d7457612d736126a4565b5b612d80878288016128d8565b9450945050602085013567ffffffffffffffff811115612da357612da26126a4565b5b612daf87828801612c13565b925092505092959194509250565b5f805f805f8060a08789031215612dd757612dd66126a0565b5b5f612de489828a016127a1565b9650506020612df589828a016127a1565b9550506040612e0689828a01612827565b9450506060612e1789828a01612827565b935050608087013567ffffffffffffffff811115612e3857612e376126a4565b5b612e4489828a01612a00565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b612e8981612728565b8114612e93575f80fd5b50565b5f81359050612ea481612e80565b92915050565b5f60208284031215612ebf57612ebe6126a0565b5b5f612ecc84828501612e96565b91505092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612f1f82612ed9565b810181811067ffffffffffffffff82111715612f3e57612f3d612ee9565b5b80604052505050565b5f612f50612697565b9050612f5c8282612f16565b919050565b5f80fd5b5f67ffffffffffffffff821115612f7f57612f7e612ee9565b5b602082029050602081019050919050565b5f612fa2612f9d84612f65565b612f47565b90508083825260208201905060208402830185811115612fc557612fc46128d4565b5b835b81811015612fee5780612fda88826127a1565b845260208401935050602081019050612fc7565b5050509392505050565b5f82601f83011261300c5761300b6128cc565b5b813561301c848260208601612f90565b91505092915050565b5f67ffffffffffffffff82111561303f5761303e612ee9565b5b602082029050602081019050919050565b5f61306261305d84613025565b612f47565b90508083825260208201905060208402830185811115613085576130846128d4565b5b835b818110156130ae578061309a8882612827565b845260208401935050602081019050613087565b5050509392505050565b5f82601f8301126130cc576130cb6128cc565b5b81356130dc848260208601613050565b91505092915050565b5f606082840312156130fa576130f9612ed5565b5b6131046060612f47565b90505f613113848285016127a1565b5f83015250602082013567ffffffffffffffff81111561313657613135612f61565b5b61314284828501612ff8565b602083015250604082013567ffffffffffffffff81111561316657613165612f61565b5b613172848285016130b8565b60408301525092915050565b5f60208284031215613193576131926126a0565b5b5f82013567ffffffffffffffff8111156131b0576131af6126a4565b5b6131bc848285016130e5565b91505092915050565b600381106131d1575f80fd5b50565b5f813590506131e2816131c5565b92915050565b5f80fd5b5f67ffffffffffffffff82111561320657613205612ee9565b5b61320f82612ed9565b9050602081019050919050565b828183375f83830152505050565b5f61323c613237846131ec565b612f47565b905082815260208101848484011115613258576132576131e8565b5b61326384828561321c565b509392505050565b5f82601f83011261327f5761327e6128cc565b5b813561328f84826020860161322a565b91505092915050565b5f608082840312156132ad576132ac612ed5565b5b6132b76080612f47565b90505f6132c6848285016131d4565b5f8301525060206132d9848285016127a1565b60208301525060406132ed848285016127a1565b604083015250606082013567ffffffffffffffff81111561331157613310612f61565b5b61331d8482850161326b565b60608301525092915050565b5f6020828403121561333e5761333d6126a0565b5b5f82013567ffffffffffffffff81111561335b5761335a6126a4565b5b61336784828501613298565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f815190506133ab81612811565b92915050565b5f602082840312156133c6576133c5612ed5565b5b6133d06020612f47565b90505f6133df8482850161339d565b5f8301525092915050565b5f602082840312156133ff576133fe6126a0565b5b5f61340c848285016133b1565b91505092915050565b8281835e5f83830152505050565b5f613435613430846131ec565b612f47565b905082815260208101848484011115613451576134506131e8565b5b61345c848285613415565b509392505050565b5f82601f830112613478576134776128cc565b5b8151613488848260208601613423565b91505092915050565b5f606082840312156134a6576134a5612ed5565b5b6134b06060612f47565b90505f6134bf8482850161339d565b5f8301525060206134d28482850161339d565b602083015250604082015167ffffffffffffffff8111156134f6576134f5612f61565b5b61350284828501613464565b60408301525092915050565b5f60208284031215613523576135226126a0565b5b5f82015167ffffffffffffffff8111156135405761353f6126a4565b5b61354c84828501613491565b91505092915050565b5f6040820190506135685f830185612b40565b61357560208301846127e9565b9392505050565b5f60208284031215613591576135906126a0565b5b5f61359e8482850161339d565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6135cb826135a7565b6135d581856135b1565b93506135e5818560208601613415565b6135ee81612ed9565b840191505092915050565b5f60a08201905061360c5f830188612b40565b6136196020830187612b40565b61362660408301866127e9565b61363360608301856127e9565b818103608083015261364581846135c1565b90509695505050505050565b5f80fd5b5f80fd5b5f80fd5b5f808335600160200384360303811261367957613678613651565b5b80840192508235915067ffffffffffffffff82111561369b5761369a613655565b5b6020830192506001820236038313156136b7576136b6613659565b5b509250929050565b6136c88161277a565b82525050565b5f82825260208201905092915050565b5f6136e8826135a7565b6136f281856136ce565b9350613702818560208601613415565b61370b81612ed9565b840191505092915050565b5f604083015f83015161372b5f8601826136bf565b506020830151848203602086015261374382826136de565b9150508091505092915050565b5f6020820190508181035f8301526137688184613716565b905092915050565b5f6060820190508181035f83015261378881866135c1565b905061379760208301856127e9565b6137a460408301846127e9565b949350505050565b5f815190506137ba8161278b565b92915050565b5f80604083850312156137d6576137d56126a0565b5b5f6137e38582860161339d565b92505060206137f4858286016137ac565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613835826127e0565b9150613840836127e0565b9250828203905081811115613858576138576137fe565b5b92915050565b5f613868826127e0565b9150613873836127e0565b925082820190508082111561388b5761388a6137fe565b5b92915050565b5f6060820190506138a45f830186612b40565b6138b160208301856127e9565b6138be60408301846127e9565b949350505050565b5f6060820190506138d95f830186612b40565b6138e66020830185612b40565b6138f360408301846127e9565b94935050505056fea264697066735822122043386a0ed4af64176291e3c82bd6ee953f22a90e82505ad77b38b8fa2956d75864736f6c634300081a0033";var l=(e=>(e[e.MANAGER=1n]="MANAGER",e[e.ADMIN=2n]="ADMIN",e))(l||{});function w(e){return e.tokenId===void 0}function g(e){return e.tokenId!==void 0}function r(e){if(w(e))return u.prepareFungibleTransfer(e);if(g(e))return u.prepareERC1155Transfer(e);throw new h.UnknownTransferPayloadSupplied(e)}const n=class n extends T.DeployableTargetWithRBAC{constructor(){super(...arguments),this.abi=c.w}async allocate(f,b){return await this.awaitResult(this.allocateRaw(f,b))}async allocateRaw(f,b){const{request:a,result:d}=await c.mE(this._config,{address:this.assertValidAddress(),args:[r(f)],...this.optionallyAttachAccount(),...b});return{hash:await c.QC(this._config,a),result:d}}async clawback(f,b){return await this.awaitResult(this.clawbackRaw(f,b))}async clawbackRaw(f,b){const{request:a,result:d}=await c.fE(this._config,{address:this.assertValidAddress(),args:[r(f)],...this.optionallyAttachAccount(),...b});return{hash:await c.KC(this._config,a),result:d}}async clawbackFromTarget(f,b,a,d,s){return await this.awaitResult(this.clawbackFromTargetRaw(f,b,a,d,s))}async clawbackFromTargetRaw(f,b,a,d,s){const{request:i,result:y}=await c.vE(this._config,{address:this.assertValidAddress(),args:[f,b,BigInt(a),BigInt(d)],...this.optionallyAttachAccount(),...s});return{hash:await c.XC(this._config,i),result:y}}async disburse(f,b){return await this.awaitResult(this.disburseRaw(f,b))}async disburseRaw(f,b){const{request:a,result:d}=await c.TE(this._config,{address:this.assertValidAddress(),args:[r(f)],...this.optionallyAttachAccount(),...b});return{hash:await c.eE(this._config,a),result:d}}async disburseBatch(f,b){return await this.awaitResult(this.disburseBatchRaw(f,b))}async disburseBatchRaw(f,b){const{request:a,result:d}=await c.AE(this._config,{address:this.assertValidAddress(),args:[f.map(r)],...this.optionallyAttachAccount(),...b});return{hash:await c.tE(this._config,a),result:d}}owner(f){return c.GC(this._config,{address:this.assertValidAddress(),args:[],...f})}total(f=t.zeroAddress,b,a){return c.jC(this._config,{address:this.assertValidAddress(),args:b?[f,b]:[f],...a})}available(f=t.zeroAddress,b,a){return c.SC(this._config,{address:this.assertValidAddress(),args:b?[f,b]:[f],...a})}distributed(f=t.zeroAddress,b,a){return c.FC(this._config,{address:this.assertValidAddress(),args:b?[f,b]:[f],...a})}buildParameters(f,b){var s;const[a,d]=this.validateDeploymentConfig(f,b);if(!a.owner||a.owner===t.zeroAddress){const i=d.account?d.account.address:d.config?p.getAccount(d.config).address:(s=this._account)==null?void 0:s.address;if(i)a.owner=i;else throw new h.DeployableUnknownOwnerProvidedError}return{abi:c.w,bytecode:E,args:[A(a)],...this.optionallyAttachAccount(d.account)}}};n.bases={31337:void 0,...R.ManagedBudget},n.registryType=m.RegistryType.BUDGET;let o=n;const A=({owner:e,authorized:f,roles:b})=>t.encodeAbiParameters(t.parseAbiParameters(["ManagedBudgetPayload payload","struct ManagedBudgetPayload { address owner; address[] authorized; uint256[] roles; }"]),[{owner:e,authorized:f,roles:b}]);exports.managedBudgetAbi=c.w;exports.ManagedBudget=o;exports.ManagedBudgetRoles=l;exports.isERC1155TransferPayload=g;exports.isFungibleTransfer=w;exports.prepareManagedBudgetPayload=A;exports.prepareTransfer=r;
2
2
  //# sourceMappingURL=ManagedBudget.cjs.map
@@ -1,7 +1,7 @@
1
- import { w as n, a5 as u, a6 as l, a7 as w, a8 as g, a9 as p, aa as A, ab as y, ac as m, ad as R, ae as T, af as E, ag as _, ah as C, ai as P } from "../generated-ClbO_ULI.js";
1
+ import { w as n, a5 as u, a6 as l, a7 as w, a8 as g, a9 as p, aa as A, ab as y, ac as m, ad as R, ae as T, af as E, ag as _, ah as C, ai as P } from "../generated-Cyvr_Tjx.js";
2
2
  import { getAccount as V } from "@wagmi/core";
3
3
  import { zeroAddress as t, encodeAbiParameters as k, parseAbiParameters as v } from "viem";
4
- import { M as B } from "../deployments-COxshLqt.js";
4
+ import { M as B } from "../deployments-D0fs26TV.js";
5
5
  import { DeployableTargetWithRBAC as D } from "../Deployable/DeployableTargetWithRBAC.js";
6
6
  import { DeployableUnknownOwnerProvidedError as F, UnknownTransferPayloadSupplied as q } from "../errors.js";
7
7
  import { prepareFungibleTransfer as G, prepareERC1155Transfer as N } from "../transfers.js";
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../generated-CRD9XfOT.cjs"),u=require("@wagmi/core"),i=require("viem"),d=require("../errors.cjs"),l=require("../utils.cjs"),h=require("./Deployable.cjs"),a=class a extends h.Deployable{constructor(e,s,t){super(e,s),this._isBase=!0,typeof s=="string"&&i.isAddress(s)&&s!==i.zeroAddress&&!Object.values(this.bases).some(r=>!s||!r?!1:i.isAddressEqual(s,r))&&(t=!1),t!==void 0&&(this._isBase=t)}get isBase(){return this.address&&Object.values(this.bases).some(e=>i.isAddressEqual(this.address,e))?!0:this._isBase}get bases(){return this.constructor.bases}get registryType(){return this.constructor.registryType}async deploy(e,s,t){return await super.deploy(e,s,t),this.assertValidAddress(),this}async deployRaw(e,s){if(this.address)throw new d.DeployableAlreadyDeployedError(this.address);const t=e||this._payload,r=(s==null?void 0:s.config)||this._config,{args:y,...o}=this.buildParameters(t);return await u.deployContract(r,{...o,...this.optionallyAttachAccount(s==null?void 0:s.account),args:[]})}async supportsInterface(e,s){return await c.Wi(this._config,{address:this.assertValidAddress(),...this.optionallyAttachAccount(),...s,args:[e]})}async getComponentInterface(e){return await c.Ui(this._config,{address:this.assertValidAddress(),...this.optionallyAttachAccount(),...e,args:[]})}validateDeploymentConfig(e,s){const t=e||this._payload;if(!t)throw new d.DeployableMissingPayloadError;return super.validateDeploymentConfig(t,s)}};a.bases={},a.registryType=l.RegistryType.ACTION;let n=a;exports.DeployableTarget=n;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../generated-DtYPHhtX.cjs"),u=require("@wagmi/core"),i=require("viem"),d=require("../errors.cjs"),l=require("../utils.cjs"),h=require("./Deployable.cjs"),a=class a extends h.Deployable{constructor(e,s,t){super(e,s),this._isBase=!0,typeof s=="string"&&i.isAddress(s)&&s!==i.zeroAddress&&!Object.values(this.bases).some(r=>!s||!r?!1:i.isAddressEqual(s,r))&&(t=!1),t!==void 0&&(this._isBase=t)}get isBase(){return this.address&&Object.values(this.bases).some(e=>i.isAddressEqual(this.address,e))?!0:this._isBase}get bases(){return this.constructor.bases}get registryType(){return this.constructor.registryType}async deploy(e,s,t){return await super.deploy(e,s,t),this.assertValidAddress(),this}async deployRaw(e,s){if(this.address)throw new d.DeployableAlreadyDeployedError(this.address);const t=e||this._payload,r=(s==null?void 0:s.config)||this._config,{args:y,...o}=this.buildParameters(t);return await u.deployContract(r,{...o,...this.optionallyAttachAccount(s==null?void 0:s.account),args:[]})}async supportsInterface(e,s){return await c.Wi(this._config,{address:this.assertValidAddress(),...this.optionallyAttachAccount(),...s,args:[e]})}async getComponentInterface(e){return await c.Ui(this._config,{address:this.assertValidAddress(),...this.optionallyAttachAccount(),...e,args:[]})}validateDeploymentConfig(e,s){const t=e||this._payload;if(!t)throw new d.DeployableMissingPayloadError;return super.validateDeploymentConfig(t,s)}};a.bases={},a.registryType=l.RegistryType.ACTION;let n=a;exports.DeployableTarget=n;
2
2
  //# sourceMappingURL=DeployableTarget.cjs.map
@@ -1,4 +1,4 @@
1
- import { L as d, U as c } from "../generated-ClbO_ULI.js";
1
+ import { L as d, U as c } from "../generated-Cyvr_Tjx.js";
2
2
  import { deployContract as h } from "@wagmi/core";
3
3
  import { isAddress as u, zeroAddress as l, isAddressEqual as a } from "viem";
4
4
  import { DeployableAlreadyDeployedError as y, DeployableMissingPayloadError as f } from "../errors.js";
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../generated-CRD9XfOT.cjs"),c=require("./DeployableTarget.cjs");var o=(n=>(n[n.MANAGER=1n]="MANAGER",n[n.ADMIN=2n]="ADMIN",n))(o||{});class l extends c.DeployableTarget{async setAuthorized(s,t,a){return await this.awaitResult(this.setAuthorizedRaw(s,t,a))}async setAuthorizedRaw(s,t,a){const{request:i,result:r}=await e.jV(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a});return{hash:await e.SV(this._config,i),result:r}}async grantRoles(s,t,a){return await this.awaitResult(this.grantRolesRaw(s,t,a))}async grantRolesRaw(s,t,a){const{request:i,result:r}=await e.DV(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a});return{hash:await e.EV(this._config,i),result:r}}async revokeRoles(s,t,a){return await this.awaitResult(this.revokeRolesRaw(s,t,a))}async revokeRolesRaw(s,t,a){const{request:i,result:r}=await e.ZV(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a});return{hash:await e.VV(this._config,i),result:r}}async grantManyRoles(s,t,a){return await this.awaitResult(this.grantManyRolesRaw(s,t,a))}async grantManyRolesRaw(s,t,a){const{request:i,result:r}=await e._V(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a});return{hash:await e.CV(this._config,i),result:r}}async revokeManyRoles(s,t,a){return await this.awaitResult(this.revokeManyRolesRaw(s,t,a))}async revokeManyRolesRaw(s,t,a){const{request:i,result:r}=await e.WV(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a});return{hash:await e.xV(this._config,i),result:r}}async rolesOf(s,t){const a=await e.NV(this._config,{address:this.assertValidAddress(),args:[s],...this.optionallyAttachAccount(),...t});return[o.MANAGER,o.ADMIN].filter(i=>(a&i)===i)}hasAnyRole(s,t,a){return e.AV(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a})}hasAllRoles(s,t,a){return e.TV(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a})}isAuthorized(s,t){return e.gV(this._config,{address:this.assertValidAddress(),args:[s],...this.optionallyAttachAccount(),...t})}async transferOwnership(s,t){return await this.awaitResult(this.transferOwnershipRaw(s,t))}async transferOwnershipRaw(s,t){const{request:a,result:i}=await e.mx(this._config,{address:this.assertValidAddress(),args:[s],...this.optionallyAttachAccount(),...t});return{hash:await e.sx(this._config,a),result:i}}async renounceOwnership(s){return await this.awaitResult(this.renounceOwnershipRaw(s))}async renounceOwnershipRaw(s){const{request:t,result:a}=await e.lx(this._config,{address:this.assertValidAddress(),...this.optionallyAttachAccount(),...s});return{hash:await e.tx(this._config,t),result:a}}async requestOwnershipHandover(s){return await this.awaitResult(this.requestOwnershipHandoverRaw(s))}async requestOwnershipHandoverRaw(s){const{request:t,result:a}=await e.dx(this._config,{address:this.assertValidAddress(),...this.optionallyAttachAccount(),...s});return{hash:await e.ax(this._config,t),result:a}}async completeOwnershipHandover(s,t){return await this.awaitResult(this.completeOwnershipHandoverRaw(s,t))}async completeOwnershipHandoverRaw(s,t){const{request:a,result:i}=await e.px(this._config,{address:this.assertValidAddress(),args:[s],...this.optionallyAttachAccount(),...t});return{hash:await e.YB(this._config,a),result:i}}async cancelOwnershipHandover(s){return await this.awaitResult(this.cancelOwnershipHandoverRaw(s))}async cancelOwnershipHandoverRaw(s){const{request:t,result:a}=await e.ox(this._config,{address:this.assertValidAddress(),...this.optionallyAttachAccount(),...s});return{hash:await e.XB(this._config,t),result:a}}ownershipHandoverExpiresAt(s,t){return e.QB(this._config,{address:this.assertValidAddress(),args:[s],...this.optionallyAttachAccount(),...t})}async renounceRoles(s,t){return await this.awaitResult(this.renounceRolesRaw(s,t))}async renounceRolesRaw(s,t){const{request:a,result:i}=await e.yx(this._config,{address:this.assertValidAddress(),args:[s],...this.optionallyAttachAccount(),...t});return{hash:await e.nx(this._config,a),result:i}}}exports.rbacAbi=e.H;exports.DeployableTargetWithRBAC=l;exports.Roles=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../generated-DtYPHhtX.cjs"),c=require("./DeployableTarget.cjs");var o=(n=>(n[n.MANAGER=1n]="MANAGER",n[n.ADMIN=2n]="ADMIN",n))(o||{});class l extends c.DeployableTarget{async setAuthorized(s,t,a){return await this.awaitResult(this.setAuthorizedRaw(s,t,a))}async setAuthorizedRaw(s,t,a){const{request:i,result:r}=await e.jV(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a});return{hash:await e.SV(this._config,i),result:r}}async grantRoles(s,t,a){return await this.awaitResult(this.grantRolesRaw(s,t,a))}async grantRolesRaw(s,t,a){const{request:i,result:r}=await e.DV(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a});return{hash:await e.EV(this._config,i),result:r}}async revokeRoles(s,t,a){return await this.awaitResult(this.revokeRolesRaw(s,t,a))}async revokeRolesRaw(s,t,a){const{request:i,result:r}=await e.ZV(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a});return{hash:await e.VV(this._config,i),result:r}}async grantManyRoles(s,t,a){return await this.awaitResult(this.grantManyRolesRaw(s,t,a))}async grantManyRolesRaw(s,t,a){const{request:i,result:r}=await e._V(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a});return{hash:await e.CV(this._config,i),result:r}}async revokeManyRoles(s,t,a){return await this.awaitResult(this.revokeManyRolesRaw(s,t,a))}async revokeManyRolesRaw(s,t,a){const{request:i,result:r}=await e.WV(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a});return{hash:await e.xV(this._config,i),result:r}}async rolesOf(s,t){const a=await e.NV(this._config,{address:this.assertValidAddress(),args:[s],...this.optionallyAttachAccount(),...t});return[o.MANAGER,o.ADMIN].filter(i=>(a&i)===i)}hasAnyRole(s,t,a){return e.AV(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a})}hasAllRoles(s,t,a){return e.TV(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a})}isAuthorized(s,t){return e.gV(this._config,{address:this.assertValidAddress(),args:[s],...this.optionallyAttachAccount(),...t})}async transferOwnership(s,t){return await this.awaitResult(this.transferOwnershipRaw(s,t))}async transferOwnershipRaw(s,t){const{request:a,result:i}=await e.mx(this._config,{address:this.assertValidAddress(),args:[s],...this.optionallyAttachAccount(),...t});return{hash:await e.sx(this._config,a),result:i}}async renounceOwnership(s){return await this.awaitResult(this.renounceOwnershipRaw(s))}async renounceOwnershipRaw(s){const{request:t,result:a}=await e.lx(this._config,{address:this.assertValidAddress(),...this.optionallyAttachAccount(),...s});return{hash:await e.tx(this._config,t),result:a}}async requestOwnershipHandover(s){return await this.awaitResult(this.requestOwnershipHandoverRaw(s))}async requestOwnershipHandoverRaw(s){const{request:t,result:a}=await e.dx(this._config,{address:this.assertValidAddress(),...this.optionallyAttachAccount(),...s});return{hash:await e.ax(this._config,t),result:a}}async completeOwnershipHandover(s,t){return await this.awaitResult(this.completeOwnershipHandoverRaw(s,t))}async completeOwnershipHandoverRaw(s,t){const{request:a,result:i}=await e.px(this._config,{address:this.assertValidAddress(),args:[s],...this.optionallyAttachAccount(),...t});return{hash:await e.YB(this._config,a),result:i}}async cancelOwnershipHandover(s){return await this.awaitResult(this.cancelOwnershipHandoverRaw(s))}async cancelOwnershipHandoverRaw(s){const{request:t,result:a}=await e.ox(this._config,{address:this.assertValidAddress(),...this.optionallyAttachAccount(),...s});return{hash:await e.XB(this._config,t),result:a}}ownershipHandoverExpiresAt(s,t){return e.QB(this._config,{address:this.assertValidAddress(),args:[s],...this.optionallyAttachAccount(),...t})}async renounceRoles(s,t){return await this.awaitResult(this.renounceRolesRaw(s,t))}async renounceRolesRaw(s,t){const{request:a,result:i}=await e.yx(this._config,{address:this.assertValidAddress(),args:[s],...this.optionallyAttachAccount(),...t});return{hash:await e.nx(this._config,a),result:i}}}exports.rbacAbi=e.H;exports.DeployableTargetWithRBAC=l;exports.Roles=o;
2
2
  //# sourceMappingURL=DeployableTargetWithRBAC.cjs.map
@@ -1,5 +1,5 @@
1
- import { j as o, S as c, D as l, b as d, Z as u, e as w, _ as A, h as R, i as y, x as g, m as p, n as f, T as V, p as _, q as v, s as x, r as O, t as q, u as M, y as H, z as m, Y as D, F as N, X as k, Q as b, G as z, J as E } from "../generated-ClbO_ULI.js";
2
- import { H as Q } from "../generated-ClbO_ULI.js";
1
+ import { j as o, S as c, D as l, b as d, Z as u, e as w, _ as A, h as R, i as y, x as g, m as p, n as f, T as V, p as _, q as v, s as x, r as O, t as q, u as M, y as H, z as m, Y as D, F as N, X as k, Q as b, G as z, J as E } from "../generated-Cyvr_Tjx.js";
2
+ import { H as Q } from "../generated-Cyvr_Tjx.js";
3
3
  import { DeployableTarget as B } from "./DeployableTarget.js";
4
4
  var h = /* @__PURE__ */ ((r) => (r[r.MANAGER = 1n] = "MANAGER", r[r.ADMIN = 2n] = "ADMIN", r))(h || {});
5
5
  class I extends B {
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("./generated-DtYPHhtX.cjs"),r=require("./componentInterfaces-D7r9xJmt.cjs"),A=require("@wagmi/core"),i=require("./errors.cjs"),_=require("./Incentives/AllowListIncentive.cjs"),T=require("./Incentives/CGDAIncentive.cjs"),N=require("./Incentives/ERC20Incentive.cjs"),t=require("viem"),P=require("./deployments-DoIOqxco.cjs"),R=require("./Deployable/DeployableTarget.cjs"),h=require("./claiming.cjs"),C=require("./utils.cjs"),V=require("./Actions/EventAction.cjs"),q=require("./Incentives/ERC20VariableCriteriaIncentive.cjs"),x=require("./Incentives/ERC20VariableIncentive.cjs"),B=require("./Incentives/PointsIncentive.cjs"),F="0x6080604052348015600e575f80fd5b50601b601f60201b60201c565b60b0565b5f602c608760201b60201c565b90508054600181161560455763f92ee8a95f526004601cfd5b8160c01c808260011c146082578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6127bf806100bd5f395ff3fe60806040526004361061020e575f3560e01c806354d1f13d11610117578063d54ad2a11161009f578063ec87621c1161006e578063ec87621c14610739578063f04e283e14610763578063f2fde38b1461077f578063fe9fbb801461079b578063fee81cf4146107d75761020e565b8063d54ad2a114610681578063db09da12146106ab578063dcc21361146106e7578063dcc59b6f1461070f5761020e565b80639214fa4d116100e65780639214fa4d1461058d578063a4d66daf146105b7578063bb1757cf146105e1578063be4994f81461061d578063c884ef83146106455761020e565b806354d1f13d14610525578063715018a61461052f57806375b238fc146105395780638da5cb5b146105635761020e565b80632de948071161019a578063474f5a4411610169578063474f5a441461042a5780634a4ee7b1146104675780634e7165a214610483578063514e62fc146104bf578063547d1864146104fb5761020e565b80632de948071461037457806338d52e0f146103b05780634359d28a146103da578063439fab91146104025761020e565b80631cd64df4116101e15780631cd64df4146102b05780631f1cb62b146102ec578063228cb73314610316578063256929621461034057806328d6183b1461034a5761020e565b806301ffc9a71461021257806307621eca1461024e578063183a4f6e146102785780631c10893f14610294575b5f80fd5b34801561021d575f80fd5b5061023860048036038101906102339190611a8c565b610813565b6040516102459190611ad1565b60405180910390f35b348015610259575f80fd5b5061026261088c565b60405161026f9190611b02565b60405180910390f35b610292600480360381019061028d9190611b45565b610894565b005b6102ae60048036038101906102a99190611bca565b6108a1565b005b3480156102bb575f80fd5b506102d660048036038101906102d19190611bca565b6108b7565b6040516102e39190611ad1565b60405180910390f35b3480156102f7575f80fd5b506103006108cd565b60405161030d9190611c17565b60405180910390f35b348015610321575f80fd5b5061032a6108f2565b6040516103379190611b02565b60405180910390f35b6103486108f7565b005b348015610355575f80fd5b5061035e610948565b60405161036b9190611c3f565b60405180910390f35b34801561037f575f80fd5b5061039a60048036038101906103959190611c58565b61096f565b6040516103a79190611b02565b60405180910390f35b3480156103bb575f80fd5b506103c4610988565b6040516103d19190611c17565b60405180910390f35b3480156103e5575f80fd5b5061040060048036038101906103fb9190611d39565b6109ad565b005b34801561040d575f80fd5b5061042860048036038101906104239190611e0c565b610abb565b005b348015610435575f80fd5b50610450600480360381019061044b9190611e0c565b610d45565b60405161045e929190611e57565b60405180910390f35b610481600480360381019061047c9190611bca565b610eaf565b005b34801561048e575f80fd5b506104a960048036038101906104a49190611e0c565b610ec5565b6040516104b69190611eee565b60405180910390f35b3480156104ca575f80fd5b506104e560048036038101906104e09190611bca565b610f9a565b6040516104f29190611ad1565b60405180910390f35b348015610506575f80fd5b5061050f610fb1565b60405161051c9190611b02565b60405180910390f35b61052d610fb7565b005b610537610ff0565b005b348015610544575f80fd5b5061054d611003565b60405161055a9190611b02565b60405180910390f35b34801561056e575f80fd5b50610577611008565b6040516105849190611c17565b60405180910390f35b348015610598575f80fd5b506105a1611030565b6040516105ae9190611c17565b60405180910390f35b3480156105c2575f80fd5b506105cb611058565b6040516105d89190611b02565b60405180910390f35b3480156105ec575f80fd5b5061060760048036038101906106029190611f0e565b61105e565b6040516106149190611ad1565b60405180910390f35b348015610628575f80fd5b50610643600480360381019061063e9190611fc0565b611239565b005b348015610650575f80fd5b5061066b60048036038101906106669190611c58565b6112ef565b6040516106789190611ad1565b60405180910390f35b34801561068c575f80fd5b5061069561130c565b6040516106a29190611b02565b60405180910390f35b3480156106b6575f80fd5b506106d160048036038101906106cc9190611f0e565b611312565b6040516106de9190611ad1565b60405180910390f35b3480156106f2575f80fd5b5061070d60048036038101906107089190611fc0565b611355565b005b34801561071a575f80fd5b5061072361140b565b6040516107309190611b02565b60405180910390f35b348015610744575f80fd5b5061074d611411565b60405161075a9190611b02565b60405180910390f35b61077d60048036038101906107789190611c58565b611416565b005b61079960048036038101906107949190611c58565b611454565b005b3480156107a6575f80fd5b506107c160048036038101906107bc9190611c58565b61147d565b6040516107ce9190611ad1565b60405180910390f35b3480156107e2575f80fd5b506107fd60048036038101906107f89190611c58565b6114d0565b60405161080a9190611b02565b60405180910390f35b5f7f56586338000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108855750610884826114e9565b5b9050919050565b5f8054905090565b61089e3382611562565b50565b6108a9611571565b6108b382826115a8565b5050565b5f81826108c38561096f565b1614905092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5481565b5f6109006115b8565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f5658633800000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026109b8816115c2565b8282905085859050146109f7576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015610ab3575f848483818110610a1857610a1761203e565b5b9050602002016020810190610a2d9190612095565b90506001151581151503610a7257610a6d878784818110610a5157610a5061203e565b5b9050602002016020810190610a669190611c58565b60016115a8565b610aa5565b610aa4878784818110610a8857610a8761203e565b5b9050602002016020810190610a9d9190611c58565b6001611562565b5b5080806001019150506109f9565b505050505050565b5f610ac46115f7565b90508054600382558015610af65760018160011c14303b10610aed5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8383810190610b0791906121c9565b90505f81604001511480610b1e57505f8160600151145b15610b55576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f816060015190505f610b8a30845f015173ffffffffffffffffffffffffffffffffffffffff1661162090919063ffffffff16565b905081811015610bd857825f015181836040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401610bcf939291906121f4565b60405180910390fd5b825f015160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826020015160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082604001515f819055508260600151600581905550610c7d33611653565b610c8c83608001516001611729565b826020015173ffffffffffffffffffffffffffffffffffffffff16835f015173ffffffffffffffffffffffffffffffffffffffff167fd20715546497e6d32bc9b61b35416a25a8cc41d2fb7f389a1bb26dc040213a3b856040015186606001518760800151604051610d0093929190612229565b60405180910390a35050508015610d40576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f806001610d52816115c2565b5f8585810190610d629190612377565b90505f8160200151806020019051810190610d7d91906123d2565b90508060055f828254610d90919061242a565b92505081905550610de6825f01518260035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661176a9092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f015184604051602001610e5a939291906124c2565b604051602081830303815290604052604051610e769190611eee565b60405180910390a28060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16945094505050509250929050565b610eb7611571565b610ec18282611562565b5050565b60605f8383810190610ed791906121c9565b90505f81606001519050604051806080016040528060016002811115610f0057610eff6124fe565b5b8152602001835f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001604051806020016040528084815250604051602001610f5f9190612554565b604051602081830303815290604052815250604051602001610f81919061266a565b6040516020818303038152906040529250505092915050565b5f8082610fa68561096f565b161415905092915050565b60025481565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610ff8611571565b6110015f6117b3565b565b600281565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60055481565b5f611067611571565b5f8383810190611077919061270f565b90505f816020015180602001905181019061109291906123d2565b905061109e8682611879565b6110d4576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600554816006546110e59190612756565b111561111d576040517f360e42e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060065f82825461112e9190612756565b92505081905550600160045f8282546111479190612756565b9250508190555061119a868260035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661176a9092919063ffffffff16565b8573ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168884604051602001611208939291906124c2565b6040516020818303038152906040526040516112249190611eee565b60405180910390a26001925050509392505050565b6002611244816115c2565b828290508585905014611283576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b858590508110156112e7576112da8686838181106112a6576112a561203e565b5b90506020020160208101906112bb9190611c58565b8585848181106112ce576112cd61203e565b5b905060200201356115a8565b8080600101915050611285565b505050505050565b6001602052805f5260405f205f915054906101000a900460ff1681565b60065481565b5f808383810190611323919061270f565b90505f816020015180602001905181019061133e91906123d2565b905061134a8682611879565b925050509392505050565b6002611360816115c2565b82829050858590501461139f576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015611403576113f68686838181106113c2576113c161203e565b5b90506020020160208101906113d79190611c58565b8585848181106113ea576113e961203e565b5b90506020020135611562565b80806001019150506113a1565b505050505050565b60045481565b600181565b61141e611571565b63389a75e1600c52805f526020600c20805442111561144457636f5e88185f526004601cfd5b5f815550611451816117b3565b50565b61145c611571565b8060601b61147157637448fbae5f526004601cfd5b61147a816117b3565b50565b5f8173ffffffffffffffffffffffffffffffffffffffff1661149d611008565b73ffffffffffffffffffffffffffffffffffffffff1614806114c957506114c8826002600117610f9a565b5b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fa9216705000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061155b575061155a826118e8565b5b9050919050565b61156d82825f611961565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146115a6576382b429005f526004601cfd5b565b6115b482826001611961565b5050565b5f6202a300905090565b638b78c6d8195433146115f457638b78c6d8600c52335f52806020600c2054166115f3576382b429005f526004601cfd5b5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b61165b6119b9565b156116d3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561169557630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611726565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f511417166117aa576390b8ec185f526004601cfd5b5f603452505050565b6117bb6119b9565b15611820577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611876565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156118e05750600554826006546118dd9190612756565b11155b905092915050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061195a5750611959826119bd565b5b9050919050565b638b78c6d8600c52825f526020600c2080548381178361198357848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611a6b81611a37565b8114611a75575f80fd5b50565b5f81359050611a8681611a62565b92915050565b5f60208284031215611aa157611aa0611a2f565b5b5f611aae84828501611a78565b91505092915050565b5f8115159050919050565b611acb81611ab7565b82525050565b5f602082019050611ae45f830184611ac2565b92915050565b5f819050919050565b611afc81611aea565b82525050565b5f602082019050611b155f830184611af3565b92915050565b611b2481611aea565b8114611b2e575f80fd5b50565b5f81359050611b3f81611b1b565b92915050565b5f60208284031215611b5a57611b59611a2f565b5b5f611b6784828501611b31565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611b9982611b70565b9050919050565b611ba981611b8f565b8114611bb3575f80fd5b50565b5f81359050611bc481611ba0565b92915050565b5f8060408385031215611be057611bdf611a2f565b5b5f611bed85828601611bb6565b9250506020611bfe85828601611b31565b9150509250929050565b611c1181611b8f565b82525050565b5f602082019050611c2a5f830184611c08565b92915050565b611c3981611a37565b82525050565b5f602082019050611c525f830184611c30565b92915050565b5f60208284031215611c6d57611c6c611a2f565b5b5f611c7a84828501611bb6565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611ca457611ca3611c83565b5b8235905067ffffffffffffffff811115611cc157611cc0611c87565b5b602083019150836020820283011115611cdd57611cdc611c8b565b5b9250929050565b5f8083601f840112611cf957611cf8611c83565b5b8235905067ffffffffffffffff811115611d1657611d15611c87565b5b602083019150836020820283011115611d3257611d31611c8b565b5b9250929050565b5f805f8060408587031215611d5157611d50611a2f565b5b5f85013567ffffffffffffffff811115611d6e57611d6d611a33565b5b611d7a87828801611c8f565b9450945050602085013567ffffffffffffffff811115611d9d57611d9c611a33565b5b611da987828801611ce4565b925092505092959194509250565b5f8083601f840112611dcc57611dcb611c83565b5b8235905067ffffffffffffffff811115611de957611de8611c87565b5b602083019150836001820283011115611e0557611e04611c8b565b5b9250929050565b5f8060208385031215611e2257611e21611a2f565b5b5f83013567ffffffffffffffff811115611e3f57611e3e611a33565b5b611e4b85828601611db7565b92509250509250929050565b5f604082019050611e6a5f830185611af3565b611e776020830184611c08565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611ec082611e7e565b611eca8185611e88565b9350611eda818560208601611e98565b611ee381611ea6565b840191505092915050565b5f6020820190508181035f830152611f068184611eb6565b905092915050565b5f805f60408486031215611f2557611f24611a2f565b5b5f611f3286828701611bb6565b935050602084013567ffffffffffffffff811115611f5357611f52611a33565b5b611f5f86828701611db7565b92509250509250925092565b5f8083601f840112611f8057611f7f611c83565b5b8235905067ffffffffffffffff811115611f9d57611f9c611c87565b5b602083019150836020820283011115611fb957611fb8611c8b565b5b9250929050565b5f805f8060408587031215611fd857611fd7611a2f565b5b5f85013567ffffffffffffffff811115611ff557611ff4611a33565b5b61200187828801611c8f565b9450945050602085013567ffffffffffffffff81111561202457612023611a33565b5b61203087828801611f6b565b925092505092959194509250565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b61207481611ab7565b811461207e575f80fd5b50565b5f8135905061208f8161206b565b92915050565b5f602082840312156120aa576120a9611a2f565b5b5f6120b784828501612081565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6120fa82611ea6565b810181811067ffffffffffffffff82111715612119576121186120c4565b5b80604052505050565b5f61212b611a26565b905061213782826120f1565b919050565b5f80fd5b5f60a08284031215612155576121546120c0565b5b61215f60a0612122565b90505f61216e84828501611bb6565b5f83015250602061218184828501611bb6565b602083015250604061219584828501611b31565b60408301525060606121a984828501611b31565b60608301525060806121bd84828501611bb6565b60808301525092915050565b5f60a082840312156121de576121dd611a2f565b5b5f6121eb84828501612140565b91505092915050565b5f6060820190506122075f830186611c08565b6122146020830185611af3565b6122216040830184611af3565b949350505050565b5f60608201905061223c5f830186611af3565b6122496020830185611af3565b6122566040830184611c08565b949350505050565b5f80fd5b5f67ffffffffffffffff82111561227c5761227b6120c4565b5b61228582611ea6565b9050602081019050919050565b828183375f83830152505050565b5f6122b26122ad84612262565b612122565b9050828152602081018484840111156122ce576122cd61225e565b5b6122d9848285612292565b509392505050565b5f82601f8301126122f5576122f4611c83565b5b81356123058482602086016122a0565b91505092915050565b5f60408284031215612323576123226120c0565b5b61232d6040612122565b90505f61233c84828501611bb6565b5f83015250602082013567ffffffffffffffff81111561235f5761235e61213c565b5b61236b848285016122e1565b60208301525092915050565b5f6020828403121561238c5761238b611a2f565b5b5f82013567ffffffffffffffff8111156123a9576123a8611a33565b5b6123b58482850161230e565b91505092915050565b5f815190506123cc81611b1b565b92915050565b5f602082840312156123e7576123e6611a2f565b5b5f6123f4848285016123be565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61243482611aea565b915061243f83611aea565b9250828203905081811115612457576124566123fd565b5b92915050565b5f8160601b9050919050565b5f6124738261245d565b9050919050565b5f61248482612469565b9050919050565b61249c61249782611b8f565b61247a565b82525050565b5f819050919050565b6124bc6124b782611aea565b6124a2565b82525050565b5f6124cd828661248b565b6014820191506124dd828561248b565b6014820191506124ed82846124ab565b602082019150819050949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b61253481611aea565b82525050565b602082015f82015161254e5f85018261252b565b50505050565b5f6020820190506125675f83018461253a565b92915050565b6003811061257e5761257d6124fe565b5b50565b5f81905061258e8261256d565b919050565b5f61259d82612581565b9050919050565b6125ad81612593565b82525050565b6125bc81611b8f565b82525050565b5f82825260208201905092915050565b5f6125dc82611e7e565b6125e681856125c2565b93506125f6818560208601611e98565b6125ff81611ea6565b840191505092915050565b5f608083015f83015161261f5f8601826125a4565b50602083015161263260208601826125b3565b50604083015161264560408601826125b3565b506060830151848203606086015261265d82826125d2565b9150508091505092915050565b5f6020820190508181035f830152612682818461260a565b905092915050565b5f6040828403121561269f5761269e6120c0565b5b6126a96040612122565b90505f82013567ffffffffffffffff8111156126c8576126c761213c565b5b6126d4848285016122e1565b5f83015250602082013567ffffffffffffffff8111156126f7576126f661213c565b5b612703848285016122e1565b60208301525092915050565b5f6020828403121561272457612723611a2f565b5b5f82013567ffffffffffffffff81111561274157612740611a33565b5b61274d8482850161268a565b91505092915050565b5f61276082611aea565b915061276b83611aea565b9250828201905080821115612783576127826123fd565b5b9291505056fea2646970667358221220dac302ea2cd5b1bd043f32307b4b55326db7520539ec80e9572f86826d8305f064736f6c634300081a0033",w=class w extends R.DeployableTarget{constructor(){super(...arguments),this.abi=e.v}async owner(f){return await e.qI(this._config,{address:this.assertValidAddress(),args:[],...f})}async currentReward(f){return await e.VI(this._config,{address:this.assertValidAddress(),args:[],...f})}async claims(f){return await e.xI(this._config,{address:this.assertValidAddress(),args:[],...f})}async totalClaimed(f){return await e.JI(this._config,{address:this.assertValidAddress(),args:[],...f})}async claimed(f,b){return await e.BI(this._config,{address:this.assertValidAddress(),args:[f],...b})}async asset(f){return await e.HI(this._config,{address:this.assertValidAddress(),...f})}async peg(f){return await e.UI(this._config,{address:this.assertValidAddress(),...f})}async reward(f){return await e.ZI(this._config,{address:this.assertValidAddress(),...f})}async limit(f){return await e.DI(this._config,{address:this.assertValidAddress(),...f})}async claim(f,b){return await this.awaitResult(this.claimRaw(f,b))}async claimRaw(f,b){const{request:a,result:d}=await e.mh(this._config,{address:this.assertValidAddress(),args:[h.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...b});return{hash:await e.YI(this._config,a),result:d}}async clawback(f,b){return await this.awaitResult(this.clawbackRaw(f,b))}async clawbackRaw(f,b){const{request:a,result:d}=await e.bh(this._config,{address:this.assertValidAddress(),args:[h.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...b});return{hash:await e.eh(this._config,a),result:d}}async isClaimable(f,b){return await e._I(this._config,{address:this.assertValidAddress(),args:[f.target,f.data],...b})}async getPeg(f){return await e.FI(this._config,{address:this.assertValidAddress(),args:[],...f})}async getTotalBudget(f){return await this.limit(f)}async canBeClaimed(f){return await this.getRemainingClaimPotential(f)>0n}async getRemainingClaimPotential(f){const[b,a]=await Promise.all([this.totalClaimed(f),this.limit(f)]);return a-b}buildParameters(f,b){const[a,d]=this.validateDeploymentConfig(f,b);return{abi:e.v,bytecode:F,args:[D(a)],...this.optionallyAttachAccount(d.account)}}buildClawbackData(f){return t.encodeAbiParameters([{type:"uint256"}],[f])}buildClaimData(f){return t.encodeAbiParameters([{type:"uint256",name:"rewardAmount"}],[f])}decodeClaimData(f){const b=t.decodeAbiParameters([{type:"tuple",name:"BoostClaimData",components:[{type:"bytes",name:"validatorData"},{type:"bytes",name:"incentiveData"}]}],f);return t.decodeAbiParameters([{type:"uint256"}],b[0].incentiveData)[0]}};w.bases={31337:void 0,...P.ERC20PeggedIncentive},w.registryType=C.RegistryType.INCENTIVE;let m=w;function D({asset:l,peg:f,reward:b,limit:a,manager:d=t.zeroAddress}){return t.encodeAbiParameters([{type:"address",name:"asset"},{type:"address",name:"peg"},{type:"uint256",name:"reward"},{type:"uint256",name:"limit"},{type:"address",name:"manager"}],[l,f,b,a,d])}const $="0x6080604052348015600e575f80fd5b50601b601f60201b60201c565b60b0565b5f602c608760201b60201c565b90508054600181161560455763f92ee8a95f526004601cfd5b8160c01c808260011c146082578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b612e66806100bd5f395ff3fe60806040526004361061022f575f3560e01c8063715018a61161012d578063c884ef83116100aa578063ec87621c1161006e578063ec87621c146107db578063f04e283e14610805578063f2fde38b14610821578063fe9fbb801461083d578063fee81cf4146108795761022f565b8063c884ef83146106e7578063d54ad2a114610723578063db09da121461074d578063dcc2136114610789578063dcc59b6f146107b15761022f565b8063a4d66daf116100f1578063a4d66daf14610605578063a871ced21461062f578063bb1757cf14610659578063be4994f814610695578063c213f3f9146106bd5761022f565b8063715018a61461055057806375b238fc1461055a57806377548687146105845780638da5cb5b146105b15780639214fa4d146105db5761022f565b80632de94807116101bb5780634a4ee7b11161017f5780634a4ee7b1146104885780634e7165a2146104a4578063514e62fc146104e0578063547d18641461051c57806354d1f13d146105465761022f565b80632de948071461039557806338d52e0f146103d15780634359d28a146103fb578063439fab9114610423578063474f5a441461044b5761022f565b80631cd64df4116102025780631cd64df4146102d15780631f1cb62b1461030d578063228cb73314610337578063256929621461036157806328d6183b1461036b5761022f565b806301ffc9a71461023357806307621eca1461026f578063183a4f6e146102995780631c10893f146102b5575b5f80fd5b34801561023e575f80fd5b5061025960048036038101906102549190611e0d565b6108b5565b6040516102669190611e52565b60405180910390f35b34801561027a575f80fd5b5061028361092e565b6040516102909190611e83565b60405180910390f35b6102b360048036038101906102ae9190611ec6565b610936565b005b6102cf60048036038101906102ca9190611f4b565b610943565b005b3480156102dc575f80fd5b506102f760048036038101906102f29190611f4b565b610959565b6040516103049190611e52565b60405180910390f35b348015610318575f80fd5b5061032161096f565b60405161032e9190611f98565b60405180910390f35b348015610342575f80fd5b5061034b610994565b6040516103589190611e83565b60405180910390f35b610369610999565b005b348015610376575f80fd5b5061037f6109ea565b60405161038c9190611fc0565b60405180910390f35b3480156103a0575f80fd5b506103bb60048036038101906103b69190611fd9565b610a11565b6040516103c89190611e83565b60405180910390f35b3480156103dc575f80fd5b506103e5610a2a565b6040516103f29190611f98565b60405180910390f35b348015610406575f80fd5b50610421600480360381019061041c91906120ba565b610a4f565b005b34801561042e575f80fd5b506104496004803603810190610444919061218d565b610b5d565b005b348015610456575f80fd5b50610471600480360381019061046c919061218d565b610e9c565b60405161047f9291906121d8565b60405180910390f35b6104a2600480360381019061049d9190611f4b565b611006565b005b3480156104af575f80fd5b506104ca60048036038101906104c5919061218d565b61101c565b6040516104d7919061226f565b60405180910390f35b3480156104eb575f80fd5b5061050660048036038101906105019190611f4b565b6110f1565b6040516105139190611e52565b60405180910390f35b348015610527575f80fd5b50610530611108565b60405161053d9190611e83565b60405180910390f35b61054e61110e565b005b610558611147565b005b348015610565575f80fd5b5061056e61115a565b60405161057b9190611e83565b60405180910390f35b34801561058f575f80fd5b5061059861115f565b6040516105a89493929190612335565b60405180910390f35b3480156105bc575f80fd5b506105c56111b4565b6040516105d29190611f98565b60405180910390f35b3480156105e6575f80fd5b506105ef6111dc565b6040516105fc9190611f98565b60405180910390f35b348015610610575f80fd5b50610619611204565b6040516106269190611e83565b60405180910390f35b34801561063a575f80fd5b5061064361120a565b6040516106509190612407565b60405180910390f35b348015610664575f80fd5b5061067f600480360381019061067a9190612420565b6112d9565b60405161068c9190611e52565b60405180910390f35b3480156106a0575f80fd5b506106bb60048036038101906106b691906124d2565b611506565b005b3480156106c8575f80fd5b506106d16115bc565b6040516106de9190611e83565b60405180910390f35b3480156106f2575f80fd5b5061070d60048036038101906107089190611fd9565b6115c5565b60405161071a9190611e52565b60405180910390f35b34801561072e575f80fd5b506107376115e2565b6040516107449190611e83565b60405180910390f35b348015610758575f80fd5b50610773600480360381019061076e9190612420565b6115e8565b6040516107809190611e52565b60405180910390f35b348015610794575f80fd5b506107af60048036038101906107aa91906124d2565b61165f565b005b3480156107bc575f80fd5b506107c5611715565b6040516107d29190611e83565b60405180910390f35b3480156107e6575f80fd5b506107ef61171b565b6040516107fc9190611e83565b60405180910390f35b61081f600480360381019061081a9190611fd9565b611720565b005b61083b60048036038101906108369190611fd9565b61175e565b005b348015610848575f80fd5b50610863600480360381019061085e9190611fd9565b611787565b6040516108709190611e52565b60405180910390f35b348015610884575f80fd5b5061089f600480360381019061089a9190611fd9565b6117da565b6040516108ac9190611e83565b60405180910390f35b5f7ff60c99c9000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109275750610926826117f3565b5b9050919050565b5f8054905090565b610940338261186c565b50565b61094b61187b565b61095582826118b2565b5050565b5f818261096585610a11565b1614905092915050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5481565b5f6109a26118c2565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7ff60c99c900000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002610a5a816118cc565b828290508585905014610a99576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015610b55575f848483818110610aba57610ab9612550565b5b9050602002016020810190610acf91906125a7565b90506001151581151503610b1457610b0f878784818110610af357610af2612550565b5b9050602002016020810190610b089190611fd9565b60016118b2565b610b47565b610b46878784818110610b2a57610b29612550565b5b9050602002016020810190610b3f9190611fd9565b600161186c565b5b508080600101915050610a9b565b505050505050565b5f610b66611901565b90508054600382558015610b985760018160011c14303b10610b8f5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8383810190610ba991906127f0565b90505f816060015103610be8576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f816060015190505f610c1d30845f015173ffffffffffffffffffffffffffffffffffffffff1661192a90919063ffffffff16565b905081811015610c6b57825f015181836040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401610c629392919061281c565b60405180910390fd5b5f8360c001519050835f015160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360200151600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083604001515f8190555083606001516008819055508360a00151600b819055508060035f820151815f015f6101000a81548160ff02191690836001811115610d4557610d4461228f565b5b0217905550602082015181600101556040820151816002015f6101000a81548160ff021916908360ff16021790555060608201518160020160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050610dc73361195d565b610dd684608001516001611a33565b836020015173ffffffffffffffffffffffffffffffffffffffff16845f015173ffffffffffffffffffffffffffffffffffffffff167fdc505a50c6f2c816d981a377c8177e2604d8302821a502bc9f742e0748f338428660400151876060015188608001518960a001518a60c00151604051610e56959493929190612851565b60405180910390a3505050508015610e97576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f806001610ea9816118cc565b5f8585810190610eb991906129bc565b90505f8160200151806020019051810190610ed49190612a17565b90508060085f828254610ee79190612a6f565b92505081905550610f3d825f01518260065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a749092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f015184604051602001610fb193929190612b07565b604051602081830303815290604052604051610fcd919061226f565b60405180910390a28060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16945094505050509250929050565b61100e61187b565b611018828261186c565b5050565b60605f838381019061102e91906127f0565b90505f816060015190506040518060800160405280600160028111156110575761105661228f565b5b8152602001835f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681526020016040518060200160405280848152506040516020016110b69190612b6c565b6040516020818303038152906040528152506040516020016110d89190612c73565b6040516020818303038152906040529250505092915050565b5f80826110fd85610a11565b161415905092915050565b60025481565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b61114f61187b565b6111585f611abd565b565b600281565b6003805f015f9054906101000a900460ff1690806001015490806002015f9054906101000a900460ff16908060020160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b611212611d55565b60036040518060800160405290815f82015f9054906101000a900460ff1660018111156112425761124161228f565b5b60018111156112545761125361228f565b5b815260200160018201548152602001600282015f9054906101000a900460ff1660ff1660ff1681526020016002820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050905090565b5f6112e261187b565b5f83838101906112f29190612d18565b90505f816020015180602001905181019061130d9190612a17565b90505f805f540361132057819050611343565b670de0b6b3a7640000825f546113369190612d5f565b6113409190612dcd565b90505b5f600b54141580156113565750600b5481115b1561136157600b5490505b61136a81611b83565b6113a0576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600854816009546113b19190612dfd565b11156113e9576040517f360e42e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060095f8282546113fa9190612dfd565b92505081905550600160075f8282546114139190612dfd565b92505081905550611466878260065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a749092919063ffffffff16565b8673ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1689846040516020016114d493929190612b07565b6040516020818303038152906040526040516114f0919061226f565b60405180910390a2600193505050509392505050565b6002611511816118cc565b828290508585905014611550576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b858590508110156115b4576115a786868381811061157357611572612550565b5b90506020020160208101906115889190611fd9565b85858481811061159b5761159a612550565b5b905060200201356118b2565b8080600101915050611552565b505050505050565b5f600b54905090565b6001602052805f5260405f205f915054906101000a900460ff1681565b60095481565b5f805f84848101906115fa9190612d18565b90505f81602001518060200190518101906116159190612a17565b90505f8054036116275780925061164a565b670de0b6b3a7640000815f5461163d9190612d5f565b6116479190612dcd565b92505b61165383611b83565b93505050509392505050565b600261166a816118cc565b8282905085859050146116a9576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8585905081101561170d576117008686838181106116cc576116cb612550565b5b90506020020160208101906116e19190611fd9565b8585848181106116f4576116f3612550565b5b9050602002013561186c565b80806001019150506116ab565b505050505050565b60075481565b600181565b61172861187b565b63389a75e1600c52805f526020600c20805442111561174e57636f5e88185f526004601cfd5b5f81555061175b81611abd565b50565b61176661187b565b8060601b61177b57637448fbae5f526004601cfd5b61178481611abd565b50565b5f8173ffffffffffffffffffffffffffffffffffffffff166117a76111b4565b73ffffffffffffffffffffffffffffffffffffffff1614806117d357506117d28260026001176110f1565b5b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f56586338000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611865575061186482611b9e565b5b9050919050565b61187782825f611c17565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146118b0576382b429005f526004601cfd5b565b6118be82826001611c17565b5050565b5f6202a300905090565b638b78c6d8195433146118fe57638b78c6d8600c52335f52806020600c2054166118fd576382b429005f526004601cfd5b5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b611965611c6f565b156119dd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561199f57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611a30565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716611ab4576390b8ec185f526004601cfd5b5f603452505050565b611ac5611c6f565b15611b2a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611b80565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60085482600954611b959190612dfd565b11159050919050565b5f7fa9216705000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611c105750611c0f82611c73565b5b9050919050565b638b78c6d8600c52825f526020600c20805483811783611c3957848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611ce55750611ce482611cec565b5b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60405180608001604052805f6001811115611d7357611d7261228f565b5b81526020015f80191681526020015f60ff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611dec81611db8565b8114611df6575f80fd5b50565b5f81359050611e0781611de3565b92915050565b5f60208284031215611e2257611e21611db0565b5b5f611e2f84828501611df9565b91505092915050565b5f8115159050919050565b611e4c81611e38565b82525050565b5f602082019050611e655f830184611e43565b92915050565b5f819050919050565b611e7d81611e6b565b82525050565b5f602082019050611e965f830184611e74565b92915050565b611ea581611e6b565b8114611eaf575f80fd5b50565b5f81359050611ec081611e9c565b92915050565b5f60208284031215611edb57611eda611db0565b5b5f611ee884828501611eb2565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f1a82611ef1565b9050919050565b611f2a81611f10565b8114611f34575f80fd5b50565b5f81359050611f4581611f21565b92915050565b5f8060408385031215611f6157611f60611db0565b5b5f611f6e85828601611f37565b9250506020611f7f85828601611eb2565b9150509250929050565b611f9281611f10565b82525050565b5f602082019050611fab5f830184611f89565b92915050565b611fba81611db8565b82525050565b5f602082019050611fd35f830184611fb1565b92915050565b5f60208284031215611fee57611fed611db0565b5b5f611ffb84828501611f37565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261202557612024612004565b5b8235905067ffffffffffffffff81111561204257612041612008565b5b60208301915083602082028301111561205e5761205d61200c565b5b9250929050565b5f8083601f84011261207a57612079612004565b5b8235905067ffffffffffffffff81111561209757612096612008565b5b6020830191508360208202830111156120b3576120b261200c565b5b9250929050565b5f805f80604085870312156120d2576120d1611db0565b5b5f85013567ffffffffffffffff8111156120ef576120ee611db4565b5b6120fb87828801612010565b9450945050602085013567ffffffffffffffff81111561211e5761211d611db4565b5b61212a87828801612065565b925092505092959194509250565b5f8083601f84011261214d5761214c612004565b5b8235905067ffffffffffffffff81111561216a57612169612008565b5b6020830191508360018202830111156121865761218561200c565b5b9250929050565b5f80602083850312156121a3576121a2611db0565b5b5f83013567ffffffffffffffff8111156121c0576121bf611db4565b5b6121cc85828601612138565b92509250509250929050565b5f6040820190506121eb5f830185611e74565b6121f86020830184611f89565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612241826121ff565b61224b8185612209565b935061225b818560208601612219565b61226481612227565b840191505092915050565b5f6020820190508181035f8301526122878184612237565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600281106122cd576122cc61228f565b5b50565b5f8190506122dd826122bc565b919050565b5f6122ec826122d0565b9050919050565b6122fc816122e2565b82525050565b5f819050919050565b61231481612302565b82525050565b5f60ff82169050919050565b61232f8161231a565b82525050565b5f6080820190506123485f8301876122f3565b612355602083018661230b565b6123626040830185612326565b61236f6060830184611f89565b95945050505050565b612381816122e2565b82525050565b61239081612302565b82525050565b61239f8161231a565b82525050565b6123ae81611f10565b82525050565b608082015f8201516123c85f850182612378565b5060208201516123db6020850182612387565b5060408201516123ee6040850182612396565b50606082015161240160608501826123a5565b50505050565b5f60808201905061241a5f8301846123b4565b92915050565b5f805f6040848603121561243757612436611db0565b5b5f61244486828701611f37565b935050602084013567ffffffffffffffff81111561246557612464611db4565b5b61247186828701612138565b92509250509250925092565b5f8083601f84011261249257612491612004565b5b8235905067ffffffffffffffff8111156124af576124ae612008565b5b6020830191508360208202830111156124cb576124ca61200c565b5b9250929050565b5f805f80604085870312156124ea576124e9611db0565b5b5f85013567ffffffffffffffff81111561250757612506611db4565b5b61251387828801612010565b9450945050602085013567ffffffffffffffff81111561253657612535611db4565b5b6125428782880161247d565b925092505092959194509250565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b61258681611e38565b8114612590575f80fd5b50565b5f813590506125a18161257d565b92915050565b5f602082840312156125bc576125bb611db0565b5b5f6125c984828501612593565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61260c82612227565b810181811067ffffffffffffffff8211171561262b5761262a6125d6565b5b80604052505050565b5f61263d611da7565b90506126498282612603565b919050565b5f80fd5b6002811061265e575f80fd5b50565b5f8135905061266f81612652565b92915050565b61267e81612302565b8114612688575f80fd5b50565b5f8135905061269981612675565b92915050565b6126a88161231a565b81146126b2575f80fd5b50565b5f813590506126c38161269f565b92915050565b5f608082840312156126de576126dd6125d2565b5b6126e86080612634565b90505f6126f784828501612661565b5f83015250602061270a8482850161268b565b602083015250604061271e848285016126b5565b604083015250606061273284828501611f37565b60608301525092915050565b5f6101408284031215612754576127536125d2565b5b61275e60e0612634565b90505f61276d84828501611f37565b5f83015250602061278084828501611f37565b602083015250604061279484828501611eb2565b60408301525060606127a884828501611eb2565b60608301525060806127bc84828501611f37565b60808301525060a06127d084828501611eb2565b60a08301525060c06127e4848285016126c9565b60c08301525092915050565b5f610140828403121561280657612805611db0565b5b5f6128138482850161273e565b91505092915050565b5f60608201905061282f5f830186611f89565b61283c6020830185611e74565b6128496040830184611e74565b949350505050565b5f610100820190506128655f830188611e74565b6128726020830187611e74565b61287f6040830186611f89565b61288c6060830185611e74565b61289960808301846123b4565b9695505050505050565b5f80fd5b5f67ffffffffffffffff8211156128c1576128c06125d6565b5b6128ca82612227565b9050602081019050919050565b828183375f83830152505050565b5f6128f76128f2846128a7565b612634565b905082815260208101848484011115612913576129126128a3565b5b61291e8482856128d7565b509392505050565b5f82601f83011261293a57612939612004565b5b813561294a8482602086016128e5565b91505092915050565b5f60408284031215612968576129676125d2565b5b6129726040612634565b90505f61298184828501611f37565b5f83015250602082013567ffffffffffffffff8111156129a4576129a361264e565b5b6129b084828501612926565b60208301525092915050565b5f602082840312156129d1576129d0611db0565b5b5f82013567ffffffffffffffff8111156129ee576129ed611db4565b5b6129fa84828501612953565b91505092915050565b5f81519050612a1181611e9c565b92915050565b5f60208284031215612a2c57612a2b611db0565b5b5f612a3984828501612a03565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612a7982611e6b565b9150612a8483611e6b565b9250828203905081811115612a9c57612a9b612a42565b5b92915050565b5f8160601b9050919050565b5f612ab882612aa2565b9050919050565b5f612ac982612aae565b9050919050565b612ae1612adc82611f10565b612abf565b82525050565b5f819050919050565b612b01612afc82611e6b565b612ae7565b82525050565b5f612b128286612ad0565b601482019150612b228285612ad0565b601482019150612b328284612af0565b602082019150819050949350505050565b612b4c81611e6b565b82525050565b602082015f820151612b665f850182612b43565b50505050565b5f602082019050612b7f5f830184612b52565b92915050565b60038110612b9657612b9561228f565b5b50565b5f819050612ba682612b85565b919050565b5f612bb582612b99565b9050919050565b612bc581612bab565b82525050565b5f82825260208201905092915050565b5f612be5826121ff565b612bef8185612bcb565b9350612bff818560208601612219565b612c0881612227565b840191505092915050565b5f608083015f830151612c285f860182612bbc565b506020830151612c3b60208601826123a5565b506040830151612c4e60408601826123a5565b5060608301518482036060860152612c668282612bdb565b9150508091505092915050565b5f6020820190508181035f830152612c8b8184612c13565b905092915050565b5f60408284031215612ca857612ca76125d2565b5b612cb26040612634565b90505f82013567ffffffffffffffff811115612cd157612cd061264e565b5b612cdd84828501612926565b5f83015250602082013567ffffffffffffffff811115612d0057612cff61264e565b5b612d0c84828501612926565b60208301525092915050565b5f60208284031215612d2d57612d2c611db0565b5b5f82013567ffffffffffffffff811115612d4a57612d49611db4565b5b612d5684828501612c93565b91505092915050565b5f612d6982611e6b565b9150612d7483611e6b565b9250828202612d8281611e6b565b91508282048414831517612d9957612d98612a42565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612dd782611e6b565b9150612de283611e6b565b925082612df257612df1612da0565b5b828204905092915050565b5f612e0782611e6b565b9150612e1283611e6b565b9250828201905080821115612e2a57612e29612a42565b5b9291505056fea264697066735822122050bb6a176feb20b04fcded40293358e8fdba927c1e1bf68a160c7fa7cac6b41664736f6c634300081a0033",p=class p extends R.DeployableTarget{constructor(){super(...arguments),this.abi=e.l}async owner(f){return await e.Xh(this._config,{address:this.assertValidAddress(),args:[],...f})}async currentReward(f){return await e.Dh(this._config,{address:this.assertValidAddress(),args:[],...f})}async getMaxReward(f){return await e.Uh(this._config,{...f,address:this.assertValidAddress()})}async getIncentiveScalar({chainId:f,hash:b,knownSignatures:a},d){var s;const c=await this.getIncentiveCriteria(d);if(c.criteriaType===V.SignatureType.EVENT){const n=await A.getTransactionReceipt(this._config,{chainId:f,hash:b});if(c.fieldIndex===C.CheatCodes.GAS_REBATE_INCENTIVE)return n.gasUsed*n.effectiveGasPrice+(n.blobGasUsed??0n)*(n.blobGasPrice??0n);const u=n.logs;if(u.length===0)throw new i.NoMatchingLogsError(`No logs found for event signature ${c.signature}`);try{const g=a[c.signature],o=t.parseEventLogs({abi:[g],logs:u});if(o==null||o.length===0)throw new i.NoMatchingLogsError(`No logs found for event signature ${c.signature}`);const v=((s=o[0])==null?void 0:s.args)[c.fieldIndex];if(v===void 0)throw new i.DecodedArgsError(`Decoded argument at index ${c.fieldIndex} is undefined`);return BigInt(v)}catch(g){throw new i.DecodedArgsError(`Failed to decode event log for signature ${c.signature}: ${g.message}`)}}else if(c.criteriaType===V.SignatureType.FUNC){const n=await A.getTransaction(this._config,{chainId:f,hash:b});try{const u=a[c.signature],o=t.decodeFunctionData({abi:[u],data:n.input}).args[c.fieldIndex];if(o==null)throw new i.DecodedArgsError(`Decoded argument at index ${c.fieldIndex} is undefined`);return BigInt(o)}catch(u){throw new i.DecodedArgsError(`Failed to decode function data for signature ${c.signature}: ${u.message}`)}}else throw new i.InvalidCriteriaTypeError(`Invalid criteria type ${c.criteriaType}`)}async claims(f){return await e._h(this._config,{address:this.assertValidAddress(),args:[],...f})}async totalClaimed(f){return await e.rN(this._config,{address:this.assertValidAddress(),args:[],...f})}async claimed(f,b){return await e.Lh(this._config,{address:this.assertValidAddress(),args:[f],...b})}async asset(f){return await e.Ph(this._config,{address:this.assertValidAddress(),...f})}async peg(f){return await e.eN(this._config,{address:this.assertValidAddress(),...f})}async reward(f){return await e.nN(this._config,{address:this.assertValidAddress(),...f})}async limit(f){return await e.Kh(this._config,{address:this.assertValidAddress(),...f})}async claim(f,b){return await this.awaitResult(this.claimRaw(f,b))}async claimRaw(f,b){const{request:a,result:d}=await e.NN(this._config,{address:this.assertValidAddress(),args:[h.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...b});return{hash:await e.uN(this._config,a),result:d}}async clawback(f,b){return await this.awaitResult(this.clawbackRaw(f,b))}async clawbackRaw(f,b){const{request:a,result:d}=await e.MN(this._config,{address:this.assertValidAddress(),args:[h.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...b});return{hash:await e.lN(this._config,a),result:d}}async isClaimable(f,b){return await e.Jh(this._config,{address:this.assertValidAddress(),args:[f.target,f.data],...b})}async getPeg(f){return await e.Wh(this._config,{address:this.assertValidAddress(),args:[],...f})}async getTotalBudget(f){return await this.limit(f)}async canBeClaimed(f){return await this.getRemainingClaimPotential(f)>0n}async getRemainingClaimPotential(f){const[b,a]=await Promise.all([this.totalClaimed(f),this.limit(f)]);return a-b}async getIncentiveCriteria(f){try{return await e.Gh(this._config,{...f,address:this.assertValidAddress()})}catch(b){throw new i.IncentiveCriteriaNotFoundError(b)}}buildParameters(f,b){const[a,d]=this.validateDeploymentConfig(f,b);return{abi:e.l,bytecode:$,args:[E(a)],...this.optionallyAttachAccount(d.account)}}buildClawbackData(f){return t.encodeAbiParameters([{type:"uint256"}],[f])}buildClaimData(f){return t.encodeAbiParameters([{type:"uint256",name:"signedAmount"}],[f])}async decodeClaimData(f){const b=t.decodeAbiParameters([{type:"tuple",name:"BoostClaimData",components:[{type:"bytes",name:"validatorData"},{type:"bytes",name:"incentiveData"}]}],f),a=t.decodeAbiParameters([{type:"uint256"}],b[0].incentiveData)[0];let d=a;const[c,s]=await Promise.all([this.reward(),this.getMaxReward()]);return c===0n||(d=c*a/t.parseEther("1"),s!==0n&&d>s&&(d=s)),d}decodeClaimDataWithRewardDetails(f,b,a){const d=t.decodeAbiParameters([{type:"tuple",name:"BoostClaimData",components:[{type:"bytes",name:"validatorData"},{type:"bytes",name:"incentiveData"}]}],f),c=t.decodeAbiParameters([{type:"uint256"}],d[0].incentiveData)[0];let s=c;return b===0n||(s=b*c/t.parseEther("1"),a!==0n&&s>a&&(s=a)),s}};p.bases={31337:void 0,...P.ERC20PeggedVariableCriteriaIncentive},p.registryType=C.RegistryType.INCENTIVE;let y=p;function E({asset:l,peg:f,reward:b,limit:a,maxReward:d=0n,manager:c=t.zeroAddress,criteria:s}){return t.encodeAbiParameters([{type:"tuple",name:"initPayloadExtended",components:[{type:"address",name:"asset"},{type:"address",name:"peg"},{type:"uint256",name:"reward"},{type:"uint256",name:"limit"},{type:"address",name:"manager"},{type:"uint256",name:"maxReward"},{type:"tuple",name:"criteria",components:[{type:"uint8",name:"criteriaType"},{type:"bytes32",name:"signature"},{type:"uint8",name:"fieldIndex"},{type:"address",name:"targetContract"}]}]}],[{asset:l,peg:f,reward:b,limit:a,manager:c,maxReward:d,criteria:{criteriaType:s.criteriaType,signature:s.signature,fieldIndex:s.fieldIndex,targetContract:s.targetContract}}])}const I={[r.APointsIncentive]:B.PointsIncentive,[r.AERC20Incentive]:N.ERC20Incentive,[r.AERC20PeggedVariableCriteriaIncentive]:y,[r.AERC20PeggedIncentive]:m,[r.AAllowListIncentive]:_.AllowListIncentive,[r.ACGDAIncentive]:T.CGDAIncentive,[r.AERC20VariableIncentive]:x.ERC20VariableIncentive,[r.AERC20VariableCriteriaIncentive]:q.ERC20VariableCriteriaIncentive};async function k(l,f,b){const a=await A.readContract(l.config,{abi:e.Y,functionName:"getComponentInterface",address:f,...b}),d=I[a];if(!d)throw new i.InvalidComponentInterfaceError(Object.keys(I),a);return new d(l,f)}exports.ERC20PeggedIncentive=m;exports.ERC20PeggedVariableCriteriaIncentive=y;exports.IncentiveByComponentInterface=I;exports.incentiveFromAddress=k;exports.prepareERC20PeggedIncentivePayload=D;exports.prepareERC20PeggedVariableCriteriaIncentivePayload=E;
2
+ //# sourceMappingURL=Incentive-BbkfwGOb.cjs.map