@boostxyz/sdk 0.0.0-alpha.12 → 0.0.0-alpha.13

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 (152) hide show
  1. package/dist/Actions/Action.cjs +1 -1
  2. package/dist/Actions/Action.js +1 -1
  3. package/dist/Actions/ContractAction.d.ts +2 -2
  4. package/dist/Actions/ContractAction.d.ts.map +1 -1
  5. package/dist/Actions/ERC721MintAction.d.ts +2 -2
  6. package/dist/Actions/ERC721MintAction.d.ts.map +1 -1
  7. package/dist/Actions/EventAction.cjs +1 -1
  8. package/dist/Actions/EventAction.cjs.map +1 -1
  9. package/dist/Actions/EventAction.d.ts +2 -2
  10. package/dist/Actions/EventAction.d.ts.map +1 -1
  11. package/dist/Actions/EventAction.js +47 -43
  12. package/dist/Actions/EventAction.js.map +1 -1
  13. package/dist/AllowLists/AllowList.cjs +1 -1
  14. package/dist/AllowLists/AllowList.js +2 -2
  15. package/dist/AllowLists/SimpleAllowList.cjs +1 -1
  16. package/dist/AllowLists/SimpleAllowList.cjs.map +1 -1
  17. package/dist/AllowLists/SimpleAllowList.d.ts +2 -2
  18. package/dist/AllowLists/SimpleAllowList.d.ts.map +1 -1
  19. package/dist/AllowLists/SimpleAllowList.js +23 -19
  20. package/dist/AllowLists/SimpleAllowList.js.map +1 -1
  21. package/dist/AllowLists/SimpleDenyList.cjs +1 -1
  22. package/dist/AllowLists/SimpleDenyList.d.ts +2 -2
  23. package/dist/AllowLists/SimpleDenyList.d.ts.map +1 -1
  24. package/dist/AllowLists/SimpleDenyList.js +6 -5
  25. package/dist/AllowLists/SimpleDenyList.js.map +1 -1
  26. package/dist/Auth/PassthroughAuth.cjs +1 -1
  27. package/dist/Auth/PassthroughAuth.js +1 -1
  28. package/dist/BoostCore.cjs +2 -2
  29. package/dist/BoostCore.cjs.map +1 -1
  30. package/dist/BoostCore.d.ts +27 -5
  31. package/dist/BoostCore.d.ts.map +1 -1
  32. package/dist/BoostCore.js +438 -347
  33. package/dist/BoostCore.js.map +1 -1
  34. package/dist/BoostRegistry.cjs +1 -1
  35. package/dist/BoostRegistry.cjs.map +1 -1
  36. package/dist/BoostRegistry.d.ts +26 -5
  37. package/dist/BoostRegistry.d.ts.map +1 -1
  38. package/dist/BoostRegistry.js +125 -64
  39. package/dist/BoostRegistry.js.map +1 -1
  40. package/dist/Budgets/Budget.cjs +1 -1
  41. package/dist/Budgets/Budget.js +1 -1
  42. package/dist/Budgets/ManagedBudget.cjs +1 -1
  43. package/dist/Budgets/ManagedBudget.cjs.map +1 -1
  44. package/dist/Budgets/ManagedBudget.d.ts +2 -2
  45. package/dist/Budgets/ManagedBudget.d.ts.map +1 -1
  46. package/dist/Budgets/ManagedBudget.js +41 -37
  47. package/dist/Budgets/ManagedBudget.js.map +1 -1
  48. package/dist/Budgets/SimpleBudget.d.ts +2 -2
  49. package/dist/Budgets/SimpleBudget.d.ts.map +1 -1
  50. package/dist/Budgets/VestingBudget.d.ts +2 -2
  51. package/dist/Budgets/VestingBudget.d.ts.map +1 -1
  52. package/dist/Deployable/DeployableTarget.cjs +1 -1
  53. package/dist/Deployable/DeployableTarget.cjs.map +1 -1
  54. package/dist/Deployable/DeployableTarget.d.ts +6 -6
  55. package/dist/Deployable/DeployableTarget.d.ts.map +1 -1
  56. package/dist/Deployable/DeployableTarget.js +22 -17
  57. package/dist/Deployable/DeployableTarget.js.map +1 -1
  58. package/dist/Incentives/AllowListIncentive.cjs +1 -1
  59. package/dist/Incentives/AllowListIncentive.cjs.map +1 -1
  60. package/dist/Incentives/AllowListIncentive.d.ts +2 -2
  61. package/dist/Incentives/AllowListIncentive.d.ts.map +1 -1
  62. package/dist/Incentives/AllowListIncentive.js +17 -13
  63. package/dist/Incentives/AllowListIncentive.js.map +1 -1
  64. package/dist/Incentives/CGDAIncentive.cjs +1 -1
  65. package/dist/Incentives/CGDAIncentive.cjs.map +1 -1
  66. package/dist/Incentives/CGDAIncentive.d.ts +14 -2
  67. package/dist/Incentives/CGDAIncentive.d.ts.map +1 -1
  68. package/dist/Incentives/CGDAIncentive.js +27 -23
  69. package/dist/Incentives/CGDAIncentive.js.map +1 -1
  70. package/dist/Incentives/ERC1155Incentive.d.ts +2 -2
  71. package/dist/Incentives/ERC1155Incentive.d.ts.map +1 -1
  72. package/dist/Incentives/ERC20Incentive.cjs +1 -1
  73. package/dist/Incentives/ERC20Incentive.cjs.map +1 -1
  74. package/dist/Incentives/ERC20Incentive.d.ts +2 -2
  75. package/dist/Incentives/ERC20Incentive.d.ts.map +1 -1
  76. package/dist/Incentives/ERC20Incentive.js +17 -13
  77. package/dist/Incentives/ERC20Incentive.js.map +1 -1
  78. package/dist/Incentives/ERC20VariableIncentive.d.ts +2 -2
  79. package/dist/Incentives/ERC20VariableIncentive.d.ts.map +1 -1
  80. package/dist/Incentives/Incentive.cjs +1 -1
  81. package/dist/Incentives/Incentive.cjs.map +1 -1
  82. package/dist/Incentives/Incentive.js +32 -28
  83. package/dist/Incentives/Incentive.js.map +1 -1
  84. package/dist/Incentives/PointsIncentive.cjs +1 -1
  85. package/dist/Incentives/PointsIncentive.cjs.map +1 -1
  86. package/dist/Incentives/PointsIncentive.d.ts +2 -2
  87. package/dist/Incentives/PointsIncentive.d.ts.map +1 -1
  88. package/dist/Incentives/PointsIncentive.js +13 -9
  89. package/dist/Incentives/PointsIncentive.js.map +1 -1
  90. package/dist/{SimpleDenyList-IJ9Ipya7.js → SimpleDenyList-C21O9Yfi.js} +23 -19
  91. package/dist/SimpleDenyList-C21O9Yfi.js.map +1 -0
  92. package/dist/SimpleDenyList-DeJRKD2D.cjs +2 -0
  93. package/dist/{SimpleDenyList-IJ9Ipya7.js.map → SimpleDenyList-DeJRKD2D.cjs.map} +1 -1
  94. package/dist/Validators/SignerValidator.cjs +1 -1
  95. package/dist/Validators/SignerValidator.cjs.map +1 -1
  96. package/dist/Validators/SignerValidator.d.ts +2 -2
  97. package/dist/Validators/SignerValidator.d.ts.map +1 -1
  98. package/dist/Validators/SignerValidator.js +18 -14
  99. package/dist/Validators/SignerValidator.js.map +1 -1
  100. package/dist/Validators/Validator.cjs +1 -1
  101. package/dist/Validators/Validator.js +1 -1
  102. package/dist/deployments-BvFcK_eR.js +40 -0
  103. package/dist/deployments-BvFcK_eR.js.map +1 -0
  104. package/dist/deployments-Ho4PnGCS.cjs +2 -0
  105. package/dist/deployments-Ho4PnGCS.cjs.map +1 -0
  106. package/dist/deployments.json +38 -0
  107. package/dist/errors.cjs +1 -1
  108. package/dist/errors.cjs.map +1 -1
  109. package/dist/errors.d.ts +6 -0
  110. package/dist/errors.d.ts.map +1 -1
  111. package/dist/errors.js +70 -54
  112. package/dist/errors.js.map +1 -1
  113. package/dist/{generated-HGddZXHJ.js → generated-LpgSHrH0.js} +130 -90
  114. package/dist/generated-LpgSHrH0.js.map +1 -0
  115. package/dist/generated-tq_HLZJ0.cjs +3 -0
  116. package/dist/generated-tq_HLZJ0.cjs.map +1 -0
  117. package/dist/index.cjs +1 -1
  118. package/dist/index.js +113 -109
  119. package/dist/utils.cjs +1 -1
  120. package/dist/utils.cjs.map +1 -1
  121. package/dist/utils.d.ts +25 -11
  122. package/dist/utils.d.ts.map +1 -1
  123. package/dist/utils.js +38 -23
  124. package/dist/utils.js.map +1 -1
  125. package/package.json +6 -5
  126. package/src/Actions/ContractAction.ts +5 -3
  127. package/src/Actions/ERC721MintAction.ts +5 -3
  128. package/src/Actions/EventAction.ts +6 -2
  129. package/src/AllowLists/AllowList.test.ts +1 -1
  130. package/src/AllowLists/SimpleAllowList.ts +6 -3
  131. package/src/AllowLists/SimpleDenyList.ts +6 -3
  132. package/src/BoostCore.test.ts +31 -91
  133. package/src/BoostCore.ts +137 -34
  134. package/src/BoostRegistry.ts +89 -21
  135. package/src/Budgets/ManagedBudget.ts +6 -4
  136. package/src/Budgets/SimpleBudget.ts +4 -3
  137. package/src/Budgets/VestingBudget.ts +4 -3
  138. package/src/Deployable/DeployableTarget.ts +22 -11
  139. package/src/Incentives/AllowListIncentive.ts +6 -3
  140. package/src/Incentives/CGDAIncentive.ts +6 -3
  141. package/src/Incentives/ERC1155Incentive.ts +4 -3
  142. package/src/Incentives/ERC20Incentive.ts +6 -3
  143. package/src/Incentives/ERC20VariableIncentive.ts +6 -3
  144. package/src/Incentives/PointsIncentive.ts +6 -3
  145. package/src/Validators/SignerValidator.ts +6 -3
  146. package/src/errors.ts +17 -1
  147. package/src/utils.ts +60 -11
  148. package/dist/SimpleDenyList-CqT0BMP7.cjs +0 -2
  149. package/dist/SimpleDenyList-CqT0BMP7.cjs.map +0 -1
  150. package/dist/generated-HGddZXHJ.js.map +0 -1
  151. package/dist/generated-wKBNvm48.cjs +0 -3
  152. package/dist/generated-wKBNvm48.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleAllowList.cjs","sources":["../../src/AllowLists/SimpleAllowList.ts"],"sourcesContent":["import {\n readSimpleAllowListIsAllowed,\n simpleAllowListAbi,\n simulateSimpleAllowListGrantRoles,\n simulateSimpleAllowListSetAllowed,\n writeSimpleAllowListGrantRoles,\n writeSimpleAllowListSetAllowed,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/allowlists/SimpleAllowList.sol/SimpleAllowList.json';\nimport { getAccount } from '@wagmi/core';\nimport {\n type Address,\n type ContractEventName,\n type Hex,\n encodeAbiParameters,\n zeroAddress,\n zeroHash,\n} from 'viem';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport { DeployableTarget } from '../Deployable/DeployableTarget';\nimport { DeployableUnknownOwnerProvidedError } from '../errors';\nimport {\n type GenericLog,\n type ReadParams,\n RegistryType,\n type WriteParams,\n} from '../utils';\n\nexport { simpleAllowListAbi };\n\n/**\n * Object representation of a {@link SimpleAllowList} initialization payload.\n *\n * @export\n * @interface SimpleAllowListPayload\n * @typedef {SimpleAllowListPayload}\n */\nexport interface SimpleAllowListPayload {\n /**\n * The allow list's owner, given the {@link LIST_MANAGER_ROLE} role.\n *\n * @type {Address}\n */\n owner: Address;\n /**\n * List of allowed addresses.\n *\n * @type {Address[]}\n */\n allowed: Address[];\n}\n\n/**\n * A generic `viem.Log` event with support for `SimpleAllowList` event types.\n *\n * @export\n * @typedef {SimpleAllowListLog}\n * @template {ContractEventName<\n * typeof simpleAllowListAbi\n * >} [event=ContractEventName<typeof simpleAllowListAbi>]\n */\nexport type SimpleAllowListLog<\n event extends ContractEventName<\n typeof simpleAllowListAbi\n > = ContractEventName<typeof simpleAllowListAbi>,\n> = GenericLog<typeof simpleAllowListAbi, event>;\n\n/**\n * A constant representing the list manager's role\n *\n * @type {2n}\n */\nexport const LIST_MANAGER_ROLE = 2n;\n/**\n * A simple implementation of an AllowList that checks if a user is authorized based on a list of allowed addresses\n *\n * @export\n * @class SimpleAllowList\n * @typedef {SimpleAllowList}\n * @extends {DeployableTarget<SimpleAllowListPayload>}\n */\nexport class SimpleAllowList extends DeployableTarget<\n SimpleAllowListPayload,\n typeof simpleAllowListAbi\n> {\n public override readonly abi = simpleAllowListAbi;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {Address}\n */\n public static override base: Address = import.meta.env\n .VITE_SIMPLE_ALLOWLIST_BASE;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {RegistryType}\n */\n public static override registryType: RegistryType = RegistryType.ALLOW_LIST;\n\n /**\n * Check if a user is authorized.\n *\n * @public\n * @async\n * @param {Address} address - The address of the user\n * @param {?ReadParams<typeof simpleAllowListAbi, 'setAllowed'>} [params]\n * @returns {Promise<boolean>} - True if the user is authorized\n */\n public async isAllowed(\n address: Address,\n params?: ReadParams<typeof simpleAllowListAbi, 'setAllowed'>,\n ): Promise<boolean> {\n return await readSimpleAllowListIsAllowed(this._config, {\n address: this.assertValidAddress(),\n args: [address, zeroHash],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Set the allowed status of a user. The length of the `users_` and `allowed_` arrays must be the same.\n * This function can only be called by the owner\n *\n * @public\n * @async\n * @param {Address[]} addresses - The list of users to update\n * @param {boolean[]} allowed - The allowed status of each user\n * @param {?ReadParams<typeof simpleAllowListAbi, 'setAllowed'>} [params]\n * @returns {Promise<void>}\n */\n public async setAllowed(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams<typeof simpleAllowListAbi, 'setAllowed'>,\n ) {\n return await this.awaitResult(\n this.setAllowedRaw(addresses, allowed, params),\n );\n }\n\n /**\n * Set the allowed status of a user. The length of the `users_` and `allowed_` arrays must be the same.\n * This function can only be called by the owner\n *\n * @public\n * @async\n * @param {Address[]} addresses - The list of users to update\n * @param {boolean[]} allowed - The allowed status of each user\n * @param {?ReadParams<typeof simpleAllowListAbi, 'setAllowed'>} [params]\n * @returns {Promise<void>}\n */\n public async setAllowedRaw(\n addresses: Address[],\n allowed: boolean[],\n params?: ReadParams<typeof simpleAllowListAbi, 'setAllowed'>,\n ) {\n const { request, result } = await simulateSimpleAllowListSetAllowed(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [addresses, allowed],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeSimpleAllowListSetAllowed(this._config, request);\n return { hash, result };\n }\n\n /**\n * Allows the owner to grant `user` `roles`.\n *\n * @public\n * @async\n * @param {Address} address\n * @param {bigint} role\n * @param {?ReadParams<typeof simpleAllowListAbi, 'grantRoles'>} [params]\n * @returns {Promise<void>}\n */\n public async grantRoles(\n address: Address,\n role: bigint,\n params?: WriteParams<typeof simpleAllowListAbi, 'grantRoles'>,\n ) {\n return await this.awaitResult(this.grantRolesRaw(address, role, params));\n }\n\n /**\n * Allows the owner to grant `user` `roles`.\n *\n * @public\n * @async\n * @param {Address} address\n * @param {bigint} role\n * @param {?ReadParams<typeof simpleAllowListAbi, 'grantRoles'>} [params]\n * @returns {Promise<void>}\n */\n public async grantRolesRaw(\n address: Address,\n role: bigint,\n params?: ReadParams<typeof simpleAllowListAbi, 'grantRoles'>,\n ) {\n const { request, result } = await simulateSimpleAllowListGrantRoles(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [address, role],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeSimpleAllowListGrantRoles(this._config, request);\n return { hash, result };\n }\n\n /**\n * @inheritdoc\n *\n * @public\n * @param {?SimpleAllowListPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: SimpleAllowListPayload,\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: simpleAllowListAbi,\n bytecode: bytecode as Hex,\n args: [prepareSimpleAllowListPayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n\n/**\n * Given a {@link SimpleAllowListPayload}, properly encode the initialization payload.\n *\n * @param {SimpleAllowListPayload} param0\n * @param {Address} param0.owner - The allow list's owner, given the {@link LIST_MANAGER_ROLE} role.\n * @param {Address[]} param0.allowed - List of allowed addresses.\n * @returns {Hex}\n */\nexport function prepareSimpleAllowListPayload({\n owner,\n allowed,\n}: SimpleAllowListPayload) {\n return encodeAbiParameters(\n [\n { type: 'address', name: 'owner' },\n { type: 'address[]', name: 'allowed' },\n ],\n [owner, allowed],\n );\n}\n"],"names":["LIST_MANAGER_ROLE","_SimpleAllowList","DeployableTarget","simpleAllowListAbi","address","params","readSimpleAllowListIsAllowed","zeroHash","addresses","allowed","request","result","simulateSimpleAllowListSetAllowed","writeSimpleAllowListSetAllowed","role","simulateSimpleAllowListGrantRoles","writeSimpleAllowListGrantRoles","_payload","_options","payload","options","zeroAddress","owner","getAccount","_a","DeployableUnknownOwnerProvidedError","bytecode","prepareSimpleAllowListPayload","RegistryType","SimpleAllowList","encodeAbiParameters"],"mappings":"0qVA2EaA,EAAoB,GASpBC,EAAN,MAAMA,UAAwBC,EAAAA,gBAGnC,CAHK,aAAA,CAAA,MAAA,GAAA,SAAA,EAIL,KAAyB,IAAMC,GAAA,CA4B/B,MAAa,UACXC,EACAC,EACkB,CACX,OAAA,MAAMC,EAAAA,GAA6B,KAAK,QAAS,CACtD,QAAS,KAAK,mBAAmB,EACjC,KAAM,CAACF,EAASG,UAAQ,EACxB,GAAG,KAAK,wBAAwB,EAEhC,GAAIF,CAAA,CACL,CACH,CAaA,MAAa,WACXG,EACAC,EACAJ,EACA,CACA,OAAO,MAAM,KAAK,YAChB,KAAK,cAAcG,EAAWC,EAASJ,CAAM,CAAA,CAEjD,CAaA,MAAa,cACXG,EACAC,EACAJ,EACA,CACA,KAAM,CAAE,QAAAK,EAAS,OAAAC,CAAO,EAAI,MAAMC,EAAA,GAChC,KAAK,QACL,CACE,QAAS,KAAK,mBAAmB,EACjC,KAAM,CAACJ,EAAWC,CAAO,EACzB,GAAG,KAAK,wBAAwB,EAEhC,GAAIJ,CACN,CAAA,EAGK,MAAA,CAAE,KADI,MAAMQ,EAA+B,GAAA,KAAK,QAASH,CAAO,EACxD,OAAAC,EACjB,CAYA,MAAa,WACXP,EACAU,EACAT,EACA,CACO,OAAA,MAAM,KAAK,YAAY,KAAK,cAAcD,EAASU,EAAMT,CAAM,CAAC,CACzE,CAYA,MAAa,cACXD,EACAU,EACAT,EACA,CACA,KAAM,CAAE,QAAAK,EAAS,OAAAC,CAAO,EAAI,MAAMI,EAAA,GAChC,KAAK,QACL,CACE,QAAS,KAAK,mBAAmB,EACjC,KAAM,CAACX,EAASU,CAAI,EACpB,GAAG,KAAK,wBAAwB,EAEhC,GAAIT,CACN,CAAA,EAGK,MAAA,CAAE,KADI,MAAMW,EAA+B,GAAA,KAAK,QAASN,CAAO,EACxD,OAAAC,EACjB,CAUgB,gBACdM,EACAC,EACyB,OACzB,KAAM,CAACC,EAASC,CAAO,EAAI,KAAK,yBAC9BH,EACAC,CAAA,EAEF,GAAI,CAACC,EAAQ,OAASA,EAAQ,QAAUE,EAAAA,YAAa,CACnD,MAAMC,EAAQF,EAAQ,QAClBA,EAAQ,QAAQ,QAChBA,EAAQ,OACNG,EAAA,WAAWH,EAAQ,MAAM,EAAE,SAC3BI,EAAA,KAAK,WAAL,YAAAA,EAAe,QACrB,GAAIF,EACFH,EAAQ,MAAQG,MAEhB,OAAM,IAAIG,EAAoC,mCAElD,CACO,MAAA,CACL,IAAKtB,EAAA,EACL,SAAAuB,EACA,KAAM,CAACC,EAA8BR,CAAO,CAAC,EAC7C,GAAG,KAAK,wBAAwBC,EAAQ,OAAO,CAAA,CAEnD,CACF,EAtKyBnB,EAAA,KAAgB,6CASvCA,EAAuB,aAA6B2B,EAAa,aAAA,WArB5D,IAAMC,EAAN5B,EA4LA,SAAS0B,EAA8B,CAC5C,MAAAL,EACA,QAAAb,CACF,EAA2B,CAClB,OAAAqB,EAAA,oBACL,CACE,CAAE,KAAM,UAAW,KAAM,OAAQ,EACjC,CAAE,KAAM,YAAa,KAAM,SAAU,CACvC,EACA,CAACR,EAAOb,CAAO,CAAA,CAEnB"}
1
+ {"version":3,"file":"SimpleAllowList.cjs","sources":["../../src/AllowLists/SimpleAllowList.ts"],"sourcesContent":["import {\n readSimpleAllowListIsAllowed,\n simpleAllowListAbi,\n simulateSimpleAllowListGrantRoles,\n simulateSimpleAllowListSetAllowed,\n writeSimpleAllowListGrantRoles,\n writeSimpleAllowListSetAllowed,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/allowlists/SimpleAllowList.sol/SimpleAllowList.json';\nimport { getAccount } from '@wagmi/core';\nimport {\n type Address,\n type ContractEventName,\n type Hex,\n encodeAbiParameters,\n zeroAddress,\n zeroHash,\n} from 'viem';\nimport { SimpleAllowList as SimpleAllowListBases } from '../../dist/deployments.json';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport { DeployableTarget } from '../Deployable/DeployableTarget';\nimport { DeployableUnknownOwnerProvidedError } from '../errors';\nimport {\n type GenericLog,\n type ReadParams,\n RegistryType,\n type WriteParams,\n} from '../utils';\n\nexport { simpleAllowListAbi };\n\n/**\n * Object representation of a {@link SimpleAllowList} initialization payload.\n *\n * @export\n * @interface SimpleAllowListPayload\n * @typedef {SimpleAllowListPayload}\n */\nexport interface SimpleAllowListPayload {\n /**\n * The allow list's owner, given the {@link LIST_MANAGER_ROLE} role.\n *\n * @type {Address}\n */\n owner: Address;\n /**\n * List of allowed addresses.\n *\n * @type {Address[]}\n */\n allowed: Address[];\n}\n\n/**\n * A generic `viem.Log` event with support for `SimpleAllowList` event types.\n *\n * @export\n * @typedef {SimpleAllowListLog}\n * @template {ContractEventName<\n * typeof simpleAllowListAbi\n * >} [event=ContractEventName<typeof simpleAllowListAbi>]\n */\nexport type SimpleAllowListLog<\n event extends ContractEventName<\n typeof simpleAllowListAbi\n > = ContractEventName<typeof simpleAllowListAbi>,\n> = GenericLog<typeof simpleAllowListAbi, event>;\n\n/**\n * A constant representing the list manager's role\n *\n * @type {2n}\n */\nexport const LIST_MANAGER_ROLE = 2n;\n/**\n * A simple implementation of an AllowList that checks if a user is authorized based on a list of allowed addresses\n *\n * @export\n * @class SimpleAllowList\n * @typedef {SimpleAllowList}\n * @extends {DeployableTarget<SimpleAllowListPayload>}\n */\nexport class SimpleAllowList extends DeployableTarget<\n SimpleAllowListPayload,\n typeof simpleAllowListAbi\n> {\n public override readonly abi = simpleAllowListAbi;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {Record<number, Address>}\n */\n public static override bases: Record<number, Address> = {\n ...(SimpleAllowListBases as Record<number, Address>),\n 31337: import.meta.env.VITE_SIMPLE_ALLOWLIST_BASE,\n };\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {RegistryType}\n */\n public static override registryType: RegistryType = RegistryType.ALLOW_LIST;\n\n /**\n * Check if a user is authorized.\n *\n * @public\n * @async\n * @param {Address} address - The address of the user\n * @param {?ReadParams<typeof simpleAllowListAbi, 'setAllowed'>} [params]\n * @returns {Promise<boolean>} - True if the user is authorized\n */\n public async isAllowed(\n address: Address,\n params?: ReadParams<typeof simpleAllowListAbi, 'setAllowed'>,\n ): Promise<boolean> {\n return await readSimpleAllowListIsAllowed(this._config, {\n address: this.assertValidAddress(),\n args: [address, zeroHash],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Set the allowed status of a user. The length of the `users_` and `allowed_` arrays must be the same.\n * This function can only be called by the owner\n *\n * @public\n * @async\n * @param {Address[]} addresses - The list of users to update\n * @param {boolean[]} allowed - The allowed status of each user\n * @param {?ReadParams<typeof simpleAllowListAbi, 'setAllowed'>} [params]\n * @returns {Promise<void>}\n */\n public async setAllowed(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams<typeof simpleAllowListAbi, 'setAllowed'>,\n ) {\n return await this.awaitResult(\n this.setAllowedRaw(addresses, allowed, params),\n );\n }\n\n /**\n * Set the allowed status of a user. The length of the `users_` and `allowed_` arrays must be the same.\n * This function can only be called by the owner\n *\n * @public\n * @async\n * @param {Address[]} addresses - The list of users to update\n * @param {boolean[]} allowed - The allowed status of each user\n * @param {?ReadParams<typeof simpleAllowListAbi, 'setAllowed'>} [params]\n * @returns {Promise<void>}\n */\n public async setAllowedRaw(\n addresses: Address[],\n allowed: boolean[],\n params?: ReadParams<typeof simpleAllowListAbi, 'setAllowed'>,\n ) {\n const { request, result } = await simulateSimpleAllowListSetAllowed(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [addresses, allowed],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeSimpleAllowListSetAllowed(this._config, request);\n return { hash, result };\n }\n\n /**\n * Allows the owner to grant `user` `roles`.\n *\n * @public\n * @async\n * @param {Address} address\n * @param {bigint} role\n * @param {?ReadParams<typeof simpleAllowListAbi, 'grantRoles'>} [params]\n * @returns {Promise<void>}\n */\n public async grantRoles(\n address: Address,\n role: bigint,\n params?: WriteParams<typeof simpleAllowListAbi, 'grantRoles'>,\n ) {\n return await this.awaitResult(this.grantRolesRaw(address, role, params));\n }\n\n /**\n * Allows the owner to grant `user` `roles`.\n *\n * @public\n * @async\n * @param {Address} address\n * @param {bigint} role\n * @param {?ReadParams<typeof simpleAllowListAbi, 'grantRoles'>} [params]\n * @returns {Promise<void>}\n */\n public async grantRolesRaw(\n address: Address,\n role: bigint,\n params?: ReadParams<typeof simpleAllowListAbi, 'grantRoles'>,\n ) {\n const { request, result } = await simulateSimpleAllowListGrantRoles(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [address, role],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeSimpleAllowListGrantRoles(this._config, request);\n return { hash, result };\n }\n\n /**\n * @inheritdoc\n *\n * @public\n * @param {?SimpleAllowListPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: SimpleAllowListPayload,\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: simpleAllowListAbi,\n bytecode: bytecode as Hex,\n args: [prepareSimpleAllowListPayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n\n/**\n * Given a {@link SimpleAllowListPayload}, properly encode the initialization payload.\n *\n * @param {SimpleAllowListPayload} param0\n * @param {Address} param0.owner - The allow list's owner, given the {@link LIST_MANAGER_ROLE} role.\n * @param {Address[]} param0.allowed - List of allowed addresses.\n * @returns {Hex}\n */\nexport function prepareSimpleAllowListPayload({\n owner,\n allowed,\n}: SimpleAllowListPayload) {\n return encodeAbiParameters(\n [\n { type: 'address', name: 'owner' },\n { type: 'address[]', name: 'allowed' },\n ],\n [owner, allowed],\n );\n}\n"],"names":["LIST_MANAGER_ROLE","_SimpleAllowList","DeployableTarget","simpleAllowListAbi","address","params","readSimpleAllowListIsAllowed","zeroHash","addresses","allowed","request","result","simulateSimpleAllowListSetAllowed","writeSimpleAllowListSetAllowed","role","simulateSimpleAllowListGrantRoles","writeSimpleAllowListGrantRoles","_payload","_options","payload","options","zeroAddress","owner","getAccount","_a","DeployableUnknownOwnerProvidedError","bytecode","prepareSimpleAllowListPayload","SimpleAllowListBases","RegistryType","SimpleAllowList","encodeAbiParameters"],"mappings":"mtVA4EaA,EAAoB,GASpBC,EAAN,MAAMA,UAAwBC,EAAAA,gBAGnC,CAHK,aAAA,CAAA,MAAA,GAAA,SAAA,EAIL,KAAyB,IAAMC,GAAA,CA8B/B,MAAa,UACXC,EACAC,EACkB,CACX,OAAA,MAAMC,EAAAA,GAA6B,KAAK,QAAS,CACtD,QAAS,KAAK,mBAAmB,EACjC,KAAM,CAACF,EAASG,UAAQ,EACxB,GAAG,KAAK,wBAAwB,EAEhC,GAAIF,CAAA,CACL,CACH,CAaA,MAAa,WACXG,EACAC,EACAJ,EACA,CACA,OAAO,MAAM,KAAK,YAChB,KAAK,cAAcG,EAAWC,EAASJ,CAAM,CAAA,CAEjD,CAaA,MAAa,cACXG,EACAC,EACAJ,EACA,CACA,KAAM,CAAE,QAAAK,EAAS,OAAAC,CAAO,EAAI,MAAMC,EAAA,GAChC,KAAK,QACL,CACE,QAAS,KAAK,mBAAmB,EACjC,KAAM,CAACJ,EAAWC,CAAO,EACzB,GAAG,KAAK,wBAAwB,EAEhC,GAAIJ,CACN,CAAA,EAGK,MAAA,CAAE,KADI,MAAMQ,EAA+B,GAAA,KAAK,QAASH,CAAO,EACxD,OAAAC,EACjB,CAYA,MAAa,WACXP,EACAU,EACAT,EACA,CACO,OAAA,MAAM,KAAK,YAAY,KAAK,cAAcD,EAASU,EAAMT,CAAM,CAAC,CACzE,CAYA,MAAa,cACXD,EACAU,EACAT,EACA,CACA,KAAM,CAAE,QAAAK,EAAS,OAAAC,CAAO,EAAI,MAAMI,EAAA,GAChC,KAAK,QACL,CACE,QAAS,KAAK,mBAAmB,EACjC,KAAM,CAACX,EAASU,CAAI,EACpB,GAAG,KAAK,wBAAwB,EAEhC,GAAIT,CACN,CAAA,EAGK,MAAA,CAAE,KADI,MAAMW,EAA+B,GAAA,KAAK,QAASN,CAAO,EACxD,OAAAC,EACjB,CAUgB,gBACdM,EACAC,EACyB,OACzB,KAAM,CAACC,EAASC,CAAO,EAAI,KAAK,yBAC9BH,EACAC,CAAA,EAEF,GAAI,CAACC,EAAQ,OAASA,EAAQ,QAAUE,EAAAA,YAAa,CACnD,MAAMC,EAAQF,EAAQ,QAClBA,EAAQ,QAAQ,QAChBA,EAAQ,OACNG,EAAA,WAAWH,EAAQ,MAAM,EAAE,SAC3BI,EAAA,KAAK,WAAL,YAAAA,EAAe,QACrB,GAAIF,EACFH,EAAQ,MAAQG,MAEhB,OAAM,IAAIG,EAAoC,mCAElD,CACO,MAAA,CACL,IAAKtB,EAAA,EACL,SAAAuB,EACA,KAAM,CAACC,EAA8BR,CAAO,CAAC,EAC7C,GAAG,KAAK,wBAAwBC,EAAQ,OAAO,CAAA,CAEnD,CACF,EAxKEnB,EAAuB,MAAiC,CACtD,GAAI2B,EAAA,gBACJ,MAAO,4CAAA,EAST3B,EAAuB,aAA6B4B,EAAa,aAAA,WAvB5D,IAAMC,EAAN7B,EA8LA,SAAS0B,EAA8B,CAC5C,MAAAL,EACA,QAAAb,CACF,EAA2B,CAClB,OAAAsB,EAAA,oBACL,CACE,CAAE,KAAM,UAAW,KAAM,OAAQ,EACjC,CAAE,KAAM,YAAa,KAAM,SAAU,CACvC,EACA,CAACT,EAAOb,CAAO,CAAA,CAEnB"}
@@ -386,9 +386,9 @@ export declare class SimpleAllowList extends DeployableTarget<SimpleAllowListPay
386
386
  *
387
387
  * @public
388
388
  * @static
389
- * @type {Address}
389
+ * @type {Record<number, Address>}
390
390
  */
391
- static base: Address;
391
+ static bases: Record<number, Address>;
392
392
  /**
393
393
  * @inheritdoc
394
394
  *
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleAllowList.d.ts","sourceRoot":"","sources":["../../src/AllowLists/SimpleAllowList.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SimpleAllowList.d.ts","sourceRoot":"","sources":["../../src/AllowLists/SimpleAllowList.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
- import { T as s, a2 as i, a3 as n, a4 as h, a5 as l, a6 as u } from "../generated-HGddZXHJ.js";
1
+ import { T as t, a2 as i, a3 as n, a4 as h, a5 as l, a6 as u } from "../generated-LpgSHrH0.js";
2
2
  import { getAccount as w } from "@wagmi/core";
3
- import { zeroHash as A, zeroAddress as p, encodeAbiParameters as y } from "viem";
4
- import { DeployableTarget as g } from "../Deployable/DeployableTarget.js";
5
- import { DeployableUnknownOwnerProvidedError as m } from "../errors.js";
6
- import { RegistryType as R } from "../utils.js";
7
- const _ = "0x6080604052348015600e575f80fd5b50601b601f60201b60201c565b60b0565b5f602c608760201b60201c565b90508054600181161560455763f92ee8a95f526004601cfd5b8160c01c808260011c146082578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b61140e806100bd5f395ff3fe608060405260043610610113575f3560e01c80634a4ee7b11161009f57806398332bbc1161006357806398332bbc1461031d578063e3f756de14610347578063f04e283e14610383578063f2fde38b1461039f578063fee81cf4146103bb57610113565b80634a4ee7b114610287578063514e62fc146102a357806354d1f13d146102df578063715018a6146102e95780638da5cb5b146102f357610113565b806325692962116100e657806325692962146101c757806328d6183b146101d15780632de94807146101fb5780633abb060414610237578063439fab911461025f57610113565b806301ffc9a714610117578063183a4f6e146101535780631c10893f1461016f5780631cd64df41461018b575b5f80fd5b348015610122575f80fd5b5061013d60048036038101906101389190610d51565b6103f7565b60405161014a9190610d96565b60405180910390f35b61016d60048036038101906101689190610de2565b610470565b005b61018960048036038101906101849190610e67565b61047d565b005b348015610196575f80fd5b506101b160048036038101906101ac9190610e67565b610493565b6040516101be9190610d96565b60405180910390f35b6101cf6104a9565b005b3480156101dc575f80fd5b506101e56104fa565b6040516101f29190610eb4565b60405180910390f35b348015610206575f80fd5b50610221600480360381019061021c9190610ecd565b610521565b60405161022e9190610f07565b60405180910390f35b348015610242575f80fd5b5061025d60048036038101906102589190610fd6565b61053a565b005b34801561026a575f80fd5b50610285600480360381019061028091906110a9565b610647565b005b6102a1600480360381019061029c9190610e67565b61076f565b005b3480156102ae575f80fd5b506102c960048036038101906102c49190610e67565b610785565b6040516102d69190610d96565b60405180910390f35b6102e761079c565b005b6102f16107d5565b005b3480156102fe575f80fd5b506103076107e8565b6040516103149190611103565b60405180910390f35b348015610328575f80fd5b50610331610810565b60405161033e9190610f07565b60405180910390f35b348015610352575f80fd5b5061036d6004803603810190610368919061111c565b610815565b60405161037a9190610d96565b60405180910390f35b61039d60048036038101906103989190610ecd565b610868565b005b6103b960048036038101906103b49190610ecd565b6108a6565b005b3480156103c6575f80fd5b506103e160048036038101906103dc9190610ecd565b6108cf565b6040516103ee9190610f07565b60405180910390f35b5f7f8ba1fc24000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104695750610468826108e8565b5b9050919050565b61047a3382610961565b50565b610485610970565b61048f82826109a7565b5050565b5f818261049f85610521565b1614905092915050565b5f6104b26109b7565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f8ba1fc2400000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b6002610545816109c1565b828290508585905014610584576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8585905081101561063f578383828181106105a4576105a3611179565b5b90506020020160208101906105b991906111d0565b5f808888858181106105ce576105cd611179565b5b90506020020160208101906105e39190610ecd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610586565b505050505050565b5f6106506109e8565b905080546003825580156106825760018160011c14303b106106795763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f808484810190610694919061137e565b915091506106a182610a11565b6106ac8260026109a7565b5f5b81518110156107325760015f808484815181106106ce576106cd611179565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506106ae565b505050801561076a576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b610777610970565b6107818282610961565b5050565b5f808261079185610521565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b6107dd610970565b6107e65f610ae7565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b600281565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1690509392505050565b610870610970565b63389a75e1600c52805f526020600c20805442111561089657636f5e88185f526004601cfd5b5f8155506108a381610ae7565b50565b6108ae610970565b8060601b6108c357637448fbae5f526004601cfd5b6108cc81610ae7565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fe2089f79000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061095a575061095982610bad565b5b9050919050565b61096c82825f610c26565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146109a5576382b429005f526004601cfd5b565b6109b382826001610c26565b5050565b5f6202a300905090565b638b78c6d8600c52335f52806020600c2054166109e5576382b429005f526004601cfd5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610a19610c7e565b15610a91577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610a5357630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610ae4565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b610aef610c7e565b15610b54577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610baa565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610c1f5750610c1e82610c82565b5b9050919050565b638b78c6d8600c52825f526020600c20805483811783610c4857848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610d3081610cfc565b8114610d3a575f80fd5b50565b5f81359050610d4b81610d27565b92915050565b5f60208284031215610d6657610d65610cf4565b5b5f610d7384828501610d3d565b91505092915050565b5f8115159050919050565b610d9081610d7c565b82525050565b5f602082019050610da95f830184610d87565b92915050565b5f819050919050565b610dc181610daf565b8114610dcb575f80fd5b50565b5f81359050610ddc81610db8565b92915050565b5f60208284031215610df757610df6610cf4565b5b5f610e0484828501610dce565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610e3682610e0d565b9050919050565b610e4681610e2c565b8114610e50575f80fd5b50565b5f81359050610e6181610e3d565b92915050565b5f8060408385031215610e7d57610e7c610cf4565b5b5f610e8a85828601610e53565b9250506020610e9b85828601610dce565b9150509250929050565b610eae81610cfc565b82525050565b5f602082019050610ec75f830184610ea5565b92915050565b5f60208284031215610ee257610ee1610cf4565b5b5f610eef84828501610e53565b91505092915050565b610f0181610daf565b82525050565b5f602082019050610f1a5f830184610ef8565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610f4157610f40610f20565b5b8235905067ffffffffffffffff811115610f5e57610f5d610f24565b5b602083019150836020820283011115610f7a57610f79610f28565b5b9250929050565b5f8083601f840112610f9657610f95610f20565b5b8235905067ffffffffffffffff811115610fb357610fb2610f24565b5b602083019150836020820283011115610fcf57610fce610f28565b5b9250929050565b5f805f8060408587031215610fee57610fed610cf4565b5b5f85013567ffffffffffffffff81111561100b5761100a610cf8565b5b61101787828801610f2c565b9450945050602085013567ffffffffffffffff81111561103a57611039610cf8565b5b61104687828801610f81565b925092505092959194509250565b5f8083601f84011261106957611068610f20565b5b8235905067ffffffffffffffff81111561108657611085610f24565b5b6020830191508360018202830111156110a2576110a1610f28565b5b9250929050565b5f80602083850312156110bf576110be610cf4565b5b5f83013567ffffffffffffffff8111156110dc576110db610cf8565b5b6110e885828601611054565b92509250509250929050565b6110fd81610e2c565b82525050565b5f6020820190506111165f8301846110f4565b92915050565b5f805f6040848603121561113357611132610cf4565b5b5f61114086828701610e53565b935050602084013567ffffffffffffffff81111561116157611160610cf8565b5b61116d86828701611054565b92509250509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6111af81610d7c565b81146111b9575f80fd5b50565b5f813590506111ca816111a6565b92915050565b5f602082840312156111e5576111e4610cf4565b5b5f6111f2848285016111bc565b91505092915050565b5f61120582610e0d565b9050919050565b611215816111fb565b811461121f575f80fd5b50565b5f813590506112308161120c565b92915050565b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61127c82611236565b810181811067ffffffffffffffff8211171561129b5761129a611246565b5b80604052505050565b5f6112ad610ceb565b90506112b98282611273565b919050565b5f67ffffffffffffffff8211156112d8576112d7611246565b5b602082029050602081019050919050565b5f6112fb6112f6846112be565b6112a4565b9050808382526020820190506020840283018581111561131e5761131d610f28565b5b835b8181101561134757806113338882610e53565b845260208401935050602081019050611320565b5050509392505050565b5f82601f83011261136557611364610f20565b5b81356113758482602086016112e9565b91505092915050565b5f806040838503121561139457611393610cf4565b5b5f6113a185828601611222565b925050602083013567ffffffffffffffff8111156113c2576113c1610cf8565b5b6113ce85828601611351565b915050925092905056fea264697066735822122094368c65f566939d0b9827de55e44a26c567f89bc0bf24103275890d9278dc0164736f6c634300081a0033", O = 2n, t = class t extends g {
3
+ import { zeroHash as p, zeroAddress as A, encodeAbiParameters as y } from "viem";
4
+ import { S as g } from "../deployments-BvFcK_eR.js";
5
+ import { DeployableTarget as m } from "../Deployable/DeployableTarget.js";
6
+ import { DeployableUnknownOwnerProvidedError as R } from "../errors.js";
7
+ import { RegistryType as _ } from "../utils.js";
8
+ const T = "0x6080604052348015600e575f80fd5b50601b601f60201b60201c565b60b0565b5f602c608760201b60201c565b90508054600181161560455763f92ee8a95f526004601cfd5b8160c01c808260011c146082578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b61140e806100bd5f395ff3fe608060405260043610610113575f3560e01c80634a4ee7b11161009f57806398332bbc1161006357806398332bbc1461031d578063e3f756de14610347578063f04e283e14610383578063f2fde38b1461039f578063fee81cf4146103bb57610113565b80634a4ee7b114610287578063514e62fc146102a357806354d1f13d146102df578063715018a6146102e95780638da5cb5b146102f357610113565b806325692962116100e657806325692962146101c757806328d6183b146101d15780632de94807146101fb5780633abb060414610237578063439fab911461025f57610113565b806301ffc9a714610117578063183a4f6e146101535780631c10893f1461016f5780631cd64df41461018b575b5f80fd5b348015610122575f80fd5b5061013d60048036038101906101389190610d51565b6103f7565b60405161014a9190610d96565b60405180910390f35b61016d60048036038101906101689190610de2565b610470565b005b61018960048036038101906101849190610e67565b61047d565b005b348015610196575f80fd5b506101b160048036038101906101ac9190610e67565b610493565b6040516101be9190610d96565b60405180910390f35b6101cf6104a9565b005b3480156101dc575f80fd5b506101e56104fa565b6040516101f29190610eb4565b60405180910390f35b348015610206575f80fd5b50610221600480360381019061021c9190610ecd565b610521565b60405161022e9190610f07565b60405180910390f35b348015610242575f80fd5b5061025d60048036038101906102589190610fd6565b61053a565b005b34801561026a575f80fd5b50610285600480360381019061028091906110a9565b610647565b005b6102a1600480360381019061029c9190610e67565b61076f565b005b3480156102ae575f80fd5b506102c960048036038101906102c49190610e67565b610785565b6040516102d69190610d96565b60405180910390f35b6102e761079c565b005b6102f16107d5565b005b3480156102fe575f80fd5b506103076107e8565b6040516103149190611103565b60405180910390f35b348015610328575f80fd5b50610331610810565b60405161033e9190610f07565b60405180910390f35b348015610352575f80fd5b5061036d6004803603810190610368919061111c565b610815565b60405161037a9190610d96565b60405180910390f35b61039d60048036038101906103989190610ecd565b610868565b005b6103b960048036038101906103b49190610ecd565b6108a6565b005b3480156103c6575f80fd5b506103e160048036038101906103dc9190610ecd565b6108cf565b6040516103ee9190610f07565b60405180910390f35b5f7f8ba1fc24000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104695750610468826108e8565b5b9050919050565b61047a3382610961565b50565b610485610970565b61048f82826109a7565b5050565b5f818261049f85610521565b1614905092915050565b5f6104b26109b7565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f8ba1fc2400000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b6002610545816109c1565b828290508585905014610584576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8585905081101561063f578383828181106105a4576105a3611179565b5b90506020020160208101906105b991906111d0565b5f808888858181106105ce576105cd611179565b5b90506020020160208101906105e39190610ecd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610586565b505050505050565b5f6106506109e8565b905080546003825580156106825760018160011c14303b106106795763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f808484810190610694919061137e565b915091506106a182610a11565b6106ac8260026109a7565b5f5b81518110156107325760015f808484815181106106ce576106cd611179565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506106ae565b505050801561076a576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b610777610970565b6107818282610961565b5050565b5f808261079185610521565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b6107dd610970565b6107e65f610ae7565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b600281565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1690509392505050565b610870610970565b63389a75e1600c52805f526020600c20805442111561089657636f5e88185f526004601cfd5b5f8155506108a381610ae7565b50565b6108ae610970565b8060601b6108c357637448fbae5f526004601cfd5b6108cc81610ae7565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fe2089f79000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061095a575061095982610bad565b5b9050919050565b61096c82825f610c26565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146109a5576382b429005f526004601cfd5b565b6109b382826001610c26565b5050565b5f6202a300905090565b638b78c6d8600c52335f52806020600c2054166109e5576382b429005f526004601cfd5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610a19610c7e565b15610a91577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610a5357630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610ae4565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b610aef610c7e565b15610b54577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610baa565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610c1f5750610c1e82610c82565b5b9050919050565b638b78c6d8600c52825f526020600c20805483811783610c4857848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610d3081610cfc565b8114610d3a575f80fd5b50565b5f81359050610d4b81610d27565b92915050565b5f60208284031215610d6657610d65610cf4565b5b5f610d7384828501610d3d565b91505092915050565b5f8115159050919050565b610d9081610d7c565b82525050565b5f602082019050610da95f830184610d87565b92915050565b5f819050919050565b610dc181610daf565b8114610dcb575f80fd5b50565b5f81359050610ddc81610db8565b92915050565b5f60208284031215610df757610df6610cf4565b5b5f610e0484828501610dce565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610e3682610e0d565b9050919050565b610e4681610e2c565b8114610e50575f80fd5b50565b5f81359050610e6181610e3d565b92915050565b5f8060408385031215610e7d57610e7c610cf4565b5b5f610e8a85828601610e53565b9250506020610e9b85828601610dce565b9150509250929050565b610eae81610cfc565b82525050565b5f602082019050610ec75f830184610ea5565b92915050565b5f60208284031215610ee257610ee1610cf4565b5b5f610eef84828501610e53565b91505092915050565b610f0181610daf565b82525050565b5f602082019050610f1a5f830184610ef8565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610f4157610f40610f20565b5b8235905067ffffffffffffffff811115610f5e57610f5d610f24565b5b602083019150836020820283011115610f7a57610f79610f28565b5b9250929050565b5f8083601f840112610f9657610f95610f20565b5b8235905067ffffffffffffffff811115610fb357610fb2610f24565b5b602083019150836020820283011115610fcf57610fce610f28565b5b9250929050565b5f805f8060408587031215610fee57610fed610cf4565b5b5f85013567ffffffffffffffff81111561100b5761100a610cf8565b5b61101787828801610f2c565b9450945050602085013567ffffffffffffffff81111561103a57611039610cf8565b5b61104687828801610f81565b925092505092959194509250565b5f8083601f84011261106957611068610f20565b5b8235905067ffffffffffffffff81111561108657611085610f24565b5b6020830191508360018202830111156110a2576110a1610f28565b5b9250929050565b5f80602083850312156110bf576110be610cf4565b5b5f83013567ffffffffffffffff8111156110dc576110db610cf8565b5b6110e885828601611054565b92509250509250929050565b6110fd81610e2c565b82525050565b5f6020820190506111165f8301846110f4565b92915050565b5f805f6040848603121561113357611132610cf4565b5b5f61114086828701610e53565b935050602084013567ffffffffffffffff81111561116157611160610cf8565b5b61116d86828701611054565b92509250509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6111af81610d7c565b81146111b9575f80fd5b50565b5f813590506111ca816111a6565b92915050565b5f602082840312156111e5576111e4610cf4565b5b5f6111f2848285016111bc565b91505092915050565b5f61120582610e0d565b9050919050565b611215816111fb565b811461121f575f80fd5b50565b5f813590506112308161120c565b92915050565b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61127c82611236565b810181811067ffffffffffffffff8211171561129b5761129a611246565b5b80604052505050565b5f6112ad610ceb565b90506112b98282611273565b919050565b5f67ffffffffffffffff8211156112d8576112d7611246565b5b602082029050602081019050919050565b5f6112fb6112f6846112be565b6112a4565b9050808382526020820190506020840283018581111561131e5761131d610f28565b5b835b8181101561134757806113338882610e53565b845260208401935050602081019050611320565b5050509392505050565b5f82601f83011261136557611364610f20565b5b81356113758482602086016112e9565b91505092915050565b5f806040838503121561139457611393610cf4565b5b5f6113a185828601611222565b925050602083013567ffffffffffffffff8111156113c2576113c1610cf8565b5b6113ce85828601611351565b915050925092905056fea264697066735822122094368c65f566939d0b9827de55e44a26c567f89bc0bf24103275890d9278dc0164736f6c634300081a0033", V = 2n, s = class s extends m {
8
9
  constructor() {
9
- super(...arguments), this.abi = s;
10
+ super(...arguments), this.abi = t;
10
11
  }
11
12
  /**
12
13
  * Check if a user is authorized.
@@ -20,7 +21,7 @@ const _ = "0x6080604052348015600e575f80fd5b50601b601f60201b60201c565b60b0565b5f6
20
21
  async isAllowed(f, e) {
21
22
  return await i(this._config, {
22
23
  address: this.assertValidAddress(),
23
- args: [f, A],
24
+ args: [f, p],
24
25
  ...this.optionallyAttachAccount(),
25
26
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
26
27
  ...e
@@ -116,24 +117,27 @@ const _ = "0x6080604052348015600e575f80fd5b50601b601f60201b60201c565b60b0565b5f6
116
117
  f,
117
118
  e
118
119
  );
119
- if (!b.owner || b.owner === p) {
120
+ if (!b.owner || b.owner === A) {
120
121
  const d = a.account ? a.account.address : a.config ? w(a.config).address : (c = this._account) == null ? void 0 : c.address;
121
122
  if (d)
122
123
  b.owner = d;
123
124
  else
124
- throw new m();
125
+ throw new R();
125
126
  }
126
127
  return {
127
- abi: s,
128
- bytecode: _,
129
- args: [T(b)],
128
+ abi: t,
129
+ bytecode: T,
130
+ args: [L(b)],
130
131
  ...this.optionallyAttachAccount(a.account)
131
132
  };
132
133
  }
133
134
  };
134
- t.base = "0x9A3848B6B35d406d758892C6b4b00042cCbc96AD", t.registryType = R.ALLOW_LIST;
135
- let r = t;
136
- function T({
135
+ s.bases = {
136
+ ...g,
137
+ 31337: "0x9A3848B6B35d406d758892C6b4b00042cCbc96AD"
138
+ }, s.registryType = _.ALLOW_LIST;
139
+ let r = s;
140
+ function L({
137
141
  owner: o,
138
142
  allowed: f
139
143
  }) {
@@ -146,9 +150,9 @@ function T({
146
150
  );
147
151
  }
148
152
  export {
149
- O as LIST_MANAGER_ROLE,
153
+ V as LIST_MANAGER_ROLE,
150
154
  r as SimpleAllowList,
151
- T as prepareSimpleAllowListPayload,
152
- s as simpleAllowListAbi
155
+ L as prepareSimpleAllowListPayload,
156
+ t as simpleAllowListAbi
153
157
  };
154
158
  //# sourceMappingURL=SimpleAllowList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleAllowList.js","sources":["../../src/AllowLists/SimpleAllowList.ts"],"sourcesContent":["import {\n readSimpleAllowListIsAllowed,\n simpleAllowListAbi,\n simulateSimpleAllowListGrantRoles,\n simulateSimpleAllowListSetAllowed,\n writeSimpleAllowListGrantRoles,\n writeSimpleAllowListSetAllowed,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/allowlists/SimpleAllowList.sol/SimpleAllowList.json';\nimport { getAccount } from '@wagmi/core';\nimport {\n type Address,\n type ContractEventName,\n type Hex,\n encodeAbiParameters,\n zeroAddress,\n zeroHash,\n} from 'viem';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport { DeployableTarget } from '../Deployable/DeployableTarget';\nimport { DeployableUnknownOwnerProvidedError } from '../errors';\nimport {\n type GenericLog,\n type ReadParams,\n RegistryType,\n type WriteParams,\n} from '../utils';\n\nexport { simpleAllowListAbi };\n\n/**\n * Object representation of a {@link SimpleAllowList} initialization payload.\n *\n * @export\n * @interface SimpleAllowListPayload\n * @typedef {SimpleAllowListPayload}\n */\nexport interface SimpleAllowListPayload {\n /**\n * The allow list's owner, given the {@link LIST_MANAGER_ROLE} role.\n *\n * @type {Address}\n */\n owner: Address;\n /**\n * List of allowed addresses.\n *\n * @type {Address[]}\n */\n allowed: Address[];\n}\n\n/**\n * A generic `viem.Log` event with support for `SimpleAllowList` event types.\n *\n * @export\n * @typedef {SimpleAllowListLog}\n * @template {ContractEventName<\n * typeof simpleAllowListAbi\n * >} [event=ContractEventName<typeof simpleAllowListAbi>]\n */\nexport type SimpleAllowListLog<\n event extends ContractEventName<\n typeof simpleAllowListAbi\n > = ContractEventName<typeof simpleAllowListAbi>,\n> = GenericLog<typeof simpleAllowListAbi, event>;\n\n/**\n * A constant representing the list manager's role\n *\n * @type {2n}\n */\nexport const LIST_MANAGER_ROLE = 2n;\n/**\n * A simple implementation of an AllowList that checks if a user is authorized based on a list of allowed addresses\n *\n * @export\n * @class SimpleAllowList\n * @typedef {SimpleAllowList}\n * @extends {DeployableTarget<SimpleAllowListPayload>}\n */\nexport class SimpleAllowList extends DeployableTarget<\n SimpleAllowListPayload,\n typeof simpleAllowListAbi\n> {\n public override readonly abi = simpleAllowListAbi;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {Address}\n */\n public static override base: Address = import.meta.env\n .VITE_SIMPLE_ALLOWLIST_BASE;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {RegistryType}\n */\n public static override registryType: RegistryType = RegistryType.ALLOW_LIST;\n\n /**\n * Check if a user is authorized.\n *\n * @public\n * @async\n * @param {Address} address - The address of the user\n * @param {?ReadParams<typeof simpleAllowListAbi, 'setAllowed'>} [params]\n * @returns {Promise<boolean>} - True if the user is authorized\n */\n public async isAllowed(\n address: Address,\n params?: ReadParams<typeof simpleAllowListAbi, 'setAllowed'>,\n ): Promise<boolean> {\n return await readSimpleAllowListIsAllowed(this._config, {\n address: this.assertValidAddress(),\n args: [address, zeroHash],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Set the allowed status of a user. The length of the `users_` and `allowed_` arrays must be the same.\n * This function can only be called by the owner\n *\n * @public\n * @async\n * @param {Address[]} addresses - The list of users to update\n * @param {boolean[]} allowed - The allowed status of each user\n * @param {?ReadParams<typeof simpleAllowListAbi, 'setAllowed'>} [params]\n * @returns {Promise<void>}\n */\n public async setAllowed(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams<typeof simpleAllowListAbi, 'setAllowed'>,\n ) {\n return await this.awaitResult(\n this.setAllowedRaw(addresses, allowed, params),\n );\n }\n\n /**\n * Set the allowed status of a user. The length of the `users_` and `allowed_` arrays must be the same.\n * This function can only be called by the owner\n *\n * @public\n * @async\n * @param {Address[]} addresses - The list of users to update\n * @param {boolean[]} allowed - The allowed status of each user\n * @param {?ReadParams<typeof simpleAllowListAbi, 'setAllowed'>} [params]\n * @returns {Promise<void>}\n */\n public async setAllowedRaw(\n addresses: Address[],\n allowed: boolean[],\n params?: ReadParams<typeof simpleAllowListAbi, 'setAllowed'>,\n ) {\n const { request, result } = await simulateSimpleAllowListSetAllowed(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [addresses, allowed],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeSimpleAllowListSetAllowed(this._config, request);\n return { hash, result };\n }\n\n /**\n * Allows the owner to grant `user` `roles`.\n *\n * @public\n * @async\n * @param {Address} address\n * @param {bigint} role\n * @param {?ReadParams<typeof simpleAllowListAbi, 'grantRoles'>} [params]\n * @returns {Promise<void>}\n */\n public async grantRoles(\n address: Address,\n role: bigint,\n params?: WriteParams<typeof simpleAllowListAbi, 'grantRoles'>,\n ) {\n return await this.awaitResult(this.grantRolesRaw(address, role, params));\n }\n\n /**\n * Allows the owner to grant `user` `roles`.\n *\n * @public\n * @async\n * @param {Address} address\n * @param {bigint} role\n * @param {?ReadParams<typeof simpleAllowListAbi, 'grantRoles'>} [params]\n * @returns {Promise<void>}\n */\n public async grantRolesRaw(\n address: Address,\n role: bigint,\n params?: ReadParams<typeof simpleAllowListAbi, 'grantRoles'>,\n ) {\n const { request, result } = await simulateSimpleAllowListGrantRoles(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [address, role],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeSimpleAllowListGrantRoles(this._config, request);\n return { hash, result };\n }\n\n /**\n * @inheritdoc\n *\n * @public\n * @param {?SimpleAllowListPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: SimpleAllowListPayload,\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: simpleAllowListAbi,\n bytecode: bytecode as Hex,\n args: [prepareSimpleAllowListPayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n\n/**\n * Given a {@link SimpleAllowListPayload}, properly encode the initialization payload.\n *\n * @param {SimpleAllowListPayload} param0\n * @param {Address} param0.owner - The allow list's owner, given the {@link LIST_MANAGER_ROLE} role.\n * @param {Address[]} param0.allowed - List of allowed addresses.\n * @returns {Hex}\n */\nexport function prepareSimpleAllowListPayload({\n owner,\n allowed,\n}: SimpleAllowListPayload) {\n return encodeAbiParameters(\n [\n { type: 'address', name: 'owner' },\n { type: 'address[]', name: 'allowed' },\n ],\n [owner, allowed],\n );\n}\n"],"names":["LIST_MANAGER_ROLE","_SimpleAllowList","DeployableTarget","simpleAllowListAbi","address","params","readSimpleAllowListIsAllowed","zeroHash","addresses","allowed","request","result","simulateSimpleAllowListSetAllowed","writeSimpleAllowListSetAllowed","role","simulateSimpleAllowListGrantRoles","writeSimpleAllowListGrantRoles","_payload","_options","payload","options","zeroAddress","owner","getAccount","_a","DeployableUnknownOwnerProvidedError","bytecode","prepareSimpleAllowListPayload","RegistryType","SimpleAllowList","encodeAbiParameters"],"mappings":"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"}
1
+ {"version":3,"file":"SimpleAllowList.js","sources":["../../src/AllowLists/SimpleAllowList.ts"],"sourcesContent":["import {\n readSimpleAllowListIsAllowed,\n simpleAllowListAbi,\n simulateSimpleAllowListGrantRoles,\n simulateSimpleAllowListSetAllowed,\n writeSimpleAllowListGrantRoles,\n writeSimpleAllowListSetAllowed,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/allowlists/SimpleAllowList.sol/SimpleAllowList.json';\nimport { getAccount } from '@wagmi/core';\nimport {\n type Address,\n type ContractEventName,\n type Hex,\n encodeAbiParameters,\n zeroAddress,\n zeroHash,\n} from 'viem';\nimport { SimpleAllowList as SimpleAllowListBases } from '../../dist/deployments.json';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport { DeployableTarget } from '../Deployable/DeployableTarget';\nimport { DeployableUnknownOwnerProvidedError } from '../errors';\nimport {\n type GenericLog,\n type ReadParams,\n RegistryType,\n type WriteParams,\n} from '../utils';\n\nexport { simpleAllowListAbi };\n\n/**\n * Object representation of a {@link SimpleAllowList} initialization payload.\n *\n * @export\n * @interface SimpleAllowListPayload\n * @typedef {SimpleAllowListPayload}\n */\nexport interface SimpleAllowListPayload {\n /**\n * The allow list's owner, given the {@link LIST_MANAGER_ROLE} role.\n *\n * @type {Address}\n */\n owner: Address;\n /**\n * List of allowed addresses.\n *\n * @type {Address[]}\n */\n allowed: Address[];\n}\n\n/**\n * A generic `viem.Log` event with support for `SimpleAllowList` event types.\n *\n * @export\n * @typedef {SimpleAllowListLog}\n * @template {ContractEventName<\n * typeof simpleAllowListAbi\n * >} [event=ContractEventName<typeof simpleAllowListAbi>]\n */\nexport type SimpleAllowListLog<\n event extends ContractEventName<\n typeof simpleAllowListAbi\n > = ContractEventName<typeof simpleAllowListAbi>,\n> = GenericLog<typeof simpleAllowListAbi, event>;\n\n/**\n * A constant representing the list manager's role\n *\n * @type {2n}\n */\nexport const LIST_MANAGER_ROLE = 2n;\n/**\n * A simple implementation of an AllowList that checks if a user is authorized based on a list of allowed addresses\n *\n * @export\n * @class SimpleAllowList\n * @typedef {SimpleAllowList}\n * @extends {DeployableTarget<SimpleAllowListPayload>}\n */\nexport class SimpleAllowList extends DeployableTarget<\n SimpleAllowListPayload,\n typeof simpleAllowListAbi\n> {\n public override readonly abi = simpleAllowListAbi;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {Record<number, Address>}\n */\n public static override bases: Record<number, Address> = {\n ...(SimpleAllowListBases as Record<number, Address>),\n 31337: import.meta.env.VITE_SIMPLE_ALLOWLIST_BASE,\n };\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {RegistryType}\n */\n public static override registryType: RegistryType = RegistryType.ALLOW_LIST;\n\n /**\n * Check if a user is authorized.\n *\n * @public\n * @async\n * @param {Address} address - The address of the user\n * @param {?ReadParams<typeof simpleAllowListAbi, 'setAllowed'>} [params]\n * @returns {Promise<boolean>} - True if the user is authorized\n */\n public async isAllowed(\n address: Address,\n params?: ReadParams<typeof simpleAllowListAbi, 'setAllowed'>,\n ): Promise<boolean> {\n return await readSimpleAllowListIsAllowed(this._config, {\n address: this.assertValidAddress(),\n args: [address, zeroHash],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Set the allowed status of a user. The length of the `users_` and `allowed_` arrays must be the same.\n * This function can only be called by the owner\n *\n * @public\n * @async\n * @param {Address[]} addresses - The list of users to update\n * @param {boolean[]} allowed - The allowed status of each user\n * @param {?ReadParams<typeof simpleAllowListAbi, 'setAllowed'>} [params]\n * @returns {Promise<void>}\n */\n public async setAllowed(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams<typeof simpleAllowListAbi, 'setAllowed'>,\n ) {\n return await this.awaitResult(\n this.setAllowedRaw(addresses, allowed, params),\n );\n }\n\n /**\n * Set the allowed status of a user. The length of the `users_` and `allowed_` arrays must be the same.\n * This function can only be called by the owner\n *\n * @public\n * @async\n * @param {Address[]} addresses - The list of users to update\n * @param {boolean[]} allowed - The allowed status of each user\n * @param {?ReadParams<typeof simpleAllowListAbi, 'setAllowed'>} [params]\n * @returns {Promise<void>}\n */\n public async setAllowedRaw(\n addresses: Address[],\n allowed: boolean[],\n params?: ReadParams<typeof simpleAllowListAbi, 'setAllowed'>,\n ) {\n const { request, result } = await simulateSimpleAllowListSetAllowed(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [addresses, allowed],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeSimpleAllowListSetAllowed(this._config, request);\n return { hash, result };\n }\n\n /**\n * Allows the owner to grant `user` `roles`.\n *\n * @public\n * @async\n * @param {Address} address\n * @param {bigint} role\n * @param {?ReadParams<typeof simpleAllowListAbi, 'grantRoles'>} [params]\n * @returns {Promise<void>}\n */\n public async grantRoles(\n address: Address,\n role: bigint,\n params?: WriteParams<typeof simpleAllowListAbi, 'grantRoles'>,\n ) {\n return await this.awaitResult(this.grantRolesRaw(address, role, params));\n }\n\n /**\n * Allows the owner to grant `user` `roles`.\n *\n * @public\n * @async\n * @param {Address} address\n * @param {bigint} role\n * @param {?ReadParams<typeof simpleAllowListAbi, 'grantRoles'>} [params]\n * @returns {Promise<void>}\n */\n public async grantRolesRaw(\n address: Address,\n role: bigint,\n params?: ReadParams<typeof simpleAllowListAbi, 'grantRoles'>,\n ) {\n const { request, result } = await simulateSimpleAllowListGrantRoles(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [address, role],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeSimpleAllowListGrantRoles(this._config, request);\n return { hash, result };\n }\n\n /**\n * @inheritdoc\n *\n * @public\n * @param {?SimpleAllowListPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: SimpleAllowListPayload,\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: simpleAllowListAbi,\n bytecode: bytecode as Hex,\n args: [prepareSimpleAllowListPayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n\n/**\n * Given a {@link SimpleAllowListPayload}, properly encode the initialization payload.\n *\n * @param {SimpleAllowListPayload} param0\n * @param {Address} param0.owner - The allow list's owner, given the {@link LIST_MANAGER_ROLE} role.\n * @param {Address[]} param0.allowed - List of allowed addresses.\n * @returns {Hex}\n */\nexport function prepareSimpleAllowListPayload({\n owner,\n allowed,\n}: SimpleAllowListPayload) {\n return encodeAbiParameters(\n [\n { type: 'address', name: 'owner' },\n { type: 'address[]', name: 'allowed' },\n ],\n [owner, allowed],\n );\n}\n"],"names":["LIST_MANAGER_ROLE","_SimpleAllowList","DeployableTarget","simpleAllowListAbi","address","params","readSimpleAllowListIsAllowed","zeroHash","addresses","allowed","request","result","simulateSimpleAllowListSetAllowed","writeSimpleAllowListSetAllowed","role","simulateSimpleAllowListGrantRoles","writeSimpleAllowListGrantRoles","_payload","_options","payload","options","zeroAddress","owner","getAccount","_a","DeployableUnknownOwnerProvidedError","bytecode","prepareSimpleAllowListPayload","SimpleAllowListBases","RegistryType","SimpleAllowList","encodeAbiParameters"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("../generated-wKBNvm48.cjs"),e=require("../SimpleDenyList-CqT0BMP7.cjs");require("@wagmi/core");require("viem");require("../Deployable/DeployableTarget.cjs");require("../errors.cjs");require("../utils.cjs");exports.simpleDenyListAbi=i.S;exports.SimpleDenyList=e.SimpleDenyList;exports.prepareSimpleDenyListPayload=e.prepareSimpleDenyListPayload;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../generated-tq_HLZJ0.cjs"),e=require("../SimpleDenyList-DeJRKD2D.cjs");require("@wagmi/core");require("viem");require("../deployments-Ho4PnGCS.cjs");require("../Deployable/DeployableTarget.cjs");require("../errors.cjs");require("../utils.cjs");exports.simpleDenyListAbi=r.S;exports.SimpleDenyList=e.SimpleDenyList;exports.prepareSimpleDenyListPayload=e.prepareSimpleDenyListPayload;
2
2
  //# sourceMappingURL=SimpleDenyList.cjs.map
@@ -267,9 +267,9 @@ export declare class SimpleDenyList<Payload = SimpleDenyListPayload> extends Dep
267
267
  *
268
268
  * @public
269
269
  * @static
270
- * @type {Address}
270
+ * @type {Record<number, Address>}
271
271
  */
272
- static base: Address;
272
+ static bases: Record<number, Address>;
273
273
  /**
274
274
  * @inheritdoc
275
275
  *
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleDenyList.d.ts","sourceRoot":"","sources":["../../src/AllowLists/SimpleDenyList.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EAGlB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,iBAAiB,EAKvB,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EACf,YAAY,EACZ,KAAK,WAAW,EACjB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,KAAK,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,MAAM,EAAE,OAAO,EAAE,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,iBAAiB,CAC3B,KAAK,SAAS,iBAAiB,CAAC,OAAO,iBAAiB,CAAC,GAAG,iBAAiB,CAC3E,OAAO,iBAAiB,CACzB,IACC,UAAU,CAAC,OAAO,iBAAiB,EAAE,KAAK,CAAC,CAAC;AAEhD;;;;;;;GAOG;AACH,qBAAa,cAAc,CACzB,OAAO,GAAG,qBAAqB,CAC/B,SAAQ,gBAAgB,CAAC,OAAO,GAAG,SAAS,EAAE,OAAO,iBAAiB,CAAC;IACvE,SAAyB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAqB;IACjD;;;;;;OAMG;IACH,OAAuB,IAAI,EAAE,OAAO,CACP;IAC7B;;;;;;OAMG;IACH,OAAuB,YAAY,EAAE,YAAY,CAA2B;IAE5E;;;;;;;;OAQG;IACU,SAAS,CACpB,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,iBAAiB,EAAE,WAAW,CAAC,GACzD,OAAO,CAAC,OAAO,CAAC;IAUnB;;;;;;;;;OASG;IACU,SAAS,CACpB,SAAS,EAAE,OAAO,EAAE,EACpB,OAAO,EAAE,OAAO,EAAE,EAClB,MAAM,CAAC,EAAE,WAAW,CAAC,OAAO,iBAAiB,EAAE,WAAW,CAAC;IAO7D;;;;;;;;;OASG;IACU,YAAY,CACvB,SAAS,EAAE,OAAO,EAAE,EACpB,OAAO,EAAE,OAAO,EAAE,EAClB,MAAM,CAAC,EAAE,WAAW,CAAC,OAAO,iBAAiB,EAAE,WAAW,CAAC;;;;IAgB7D;;;;;;;OAOG;IACa,eAAe,CAC7B,QAAQ,CAAC,EAAE,OAAO,EAClB,QAAQ,CAAC,EAAE,iBAAiB,GAC3B,uBAAuB;CAsB3B;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,EAC3C,KAAK,EACL,MAAM,GACP,EAAE,qBAAqB,iBAQvB"}
1
+ {"version":3,"file":"SimpleDenyList.d.ts","sourceRoot":"","sources":["../../src/AllowLists/SimpleDenyList.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EAGlB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,iBAAiB,EAKvB,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EACf,YAAY,EACZ,KAAK,WAAW,EACjB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,KAAK,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,MAAM,EAAE,OAAO,EAAE,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,iBAAiB,CAC3B,KAAK,SAAS,iBAAiB,CAAC,OAAO,iBAAiB,CAAC,GAAG,iBAAiB,CAC3E,OAAO,iBAAiB,CACzB,IACC,UAAU,CAAC,OAAO,iBAAiB,EAAE,KAAK,CAAC,CAAC;AAEhD;;;;;;;GAOG;AACH,qBAAa,cAAc,CACzB,OAAO,GAAG,qBAAqB,CAC/B,SAAQ,gBAAgB,CAAC,OAAO,GAAG,SAAS,EAAE,OAAO,iBAAiB,CAAC;IACvE,SAAyB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAqB;IACjD;;;;;;OAMG;IACH,OAAuB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGnD;IACF;;;;;;OAMG;IACH,OAAuB,YAAY,EAAE,YAAY,CAA2B;IAE5E;;;;;;;;OAQG;IACU,SAAS,CACpB,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,iBAAiB,EAAE,WAAW,CAAC,GACzD,OAAO,CAAC,OAAO,CAAC;IAUnB;;;;;;;;;OASG;IACU,SAAS,CACpB,SAAS,EAAE,OAAO,EAAE,EACpB,OAAO,EAAE,OAAO,EAAE,EAClB,MAAM,CAAC,EAAE,WAAW,CAAC,OAAO,iBAAiB,EAAE,WAAW,CAAC;IAO7D;;;;;;;;;OASG;IACU,YAAY,CACvB,SAAS,EAAE,OAAO,EAAE,EACpB,OAAO,EAAE,OAAO,EAAE,EAClB,MAAM,CAAC,EAAE,WAAW,CAAC,OAAO,iBAAiB,EAAE,WAAW,CAAC;;;;IAgB7D;;;;;;;OAOG;IACa,eAAe,CAC7B,QAAQ,CAAC,EAAE,OAAO,EAClB,QAAQ,CAAC,EAAE,iBAAiB,GAC3B,uBAAuB;CAsB3B;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,EAC3C,KAAK,EACL,MAAM,GACP,EAAE,qBAAqB,iBAQvB"}
@@ -1,13 +1,14 @@
1
- import { S as s } from "../generated-HGddZXHJ.js";
2
- import { S as l, p as y } from "../SimpleDenyList-IJ9Ipya7.js";
1
+ import { S as a } from "../generated-LpgSHrH0.js";
2
+ import { S as y, p as S } from "../SimpleDenyList-C21O9Yfi.js";
3
3
  import "@wagmi/core";
4
4
  import "viem";
5
+ import "../deployments-BvFcK_eR.js";
5
6
  import "../Deployable/DeployableTarget.js";
6
7
  import "../errors.js";
7
8
  import "../utils.js";
8
9
  export {
9
- l as SimpleDenyList,
10
- y as prepareSimpleDenyListPayload,
11
- s as simpleDenyListAbi
10
+ y as SimpleDenyList,
11
+ S as prepareSimpleDenyListPayload,
12
+ a as simpleDenyListAbi
12
13
  };
13
14
  //# sourceMappingURL=SimpleDenyList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleDenyList.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
1
+ {"version":3,"file":"SimpleDenyList.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("../generated-wKBNvm48.cjs"),a=require("../Deployable/Deployable.cjs"),s="0x6080604052348015600e575f80fd5b506101598061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063fe9fbb801461002d575b5f80fd5b610047600480360381019061004291906100c5565b61005d565b604051610054919061010a565b60405180910390f35b5f60019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100948261006b565b9050919050565b6100a48161008a565b81146100ae575f80fd5b50565b5f813590506100bf8161009b565b92915050565b5f602082840312156100da576100d9610067565b5b5f6100e7848285016100b1565b91505092915050565b5f8115159050919050565b610104816100f0565b82525050565b5f60208201905061011d5f8301846100fb565b9291505056fea2646970667358221220d69fb5c3af806c7aa7833655670f5929f23f7d101298880775d4b9c7c8d0e62f64736f6c634300081a0033";class d extends a.Deployable{constructor(){super(...arguments),this.abi=f.ze}async isAuthorized(b,e){return await f.TA(this._config,{address:this.assertValidAddress(),args:[b],...e})}buildParameters(b,e){const[o,t]=this.validateDeploymentConfig({},e);return{abi:f.ze,bytecode:s,args:[],...this.optionallyAttachAccount(t.account)}}}exports.passthroughAuthAbi=f.ze;exports.PassthroughAuth=d;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("../generated-tq_HLZJ0.cjs"),a=require("../Deployable/Deployable.cjs"),s="0x6080604052348015600e575f80fd5b506101598061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063fe9fbb801461002d575b5f80fd5b610047600480360381019061004291906100c5565b61005d565b604051610054919061010a565b60405180910390f35b5f60019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100948261006b565b9050919050565b6100a48161008a565b81146100ae575f80fd5b50565b5f813590506100bf8161009b565b92915050565b5f602082840312156100da576100d9610067565b5b5f6100e7848285016100b1565b91505092915050565b5f8115159050919050565b610104816100f0565b82525050565b5f60208201905061011d5f8301846100fb565b9291505056fea2646970667358221220d69fb5c3af806c7aa7833655670f5929f23f7d101298880775d4b9c7c8d0e62f64736f6c634300081a0033";class d extends a.Deployable{constructor(){super(...arguments),this.abi=f.ze}async isAuthorized(b,e){return await f.IA(this._config,{address:this.assertValidAddress(),args:[b],...e})}buildParameters(b,e){const[o,t]=this.validateDeploymentConfig({},e);return{abi:f.ze,bytecode:s,args:[],...this.optionallyAttachAccount(t.account)}}}exports.passthroughAuthAbi=f.ze;exports.PassthroughAuth=d;
2
2
  //# sourceMappingURL=PassthroughAuth.cjs.map
@@ -1,4 +1,4 @@
1
- import { z as a, j as s } from "../generated-HGddZXHJ.js";
1
+ import { z as a, m as s } from "../generated-LpgSHrH0.js";
2
2
  import { Deployable as e } from "../Deployable/Deployable.js";
3
3
  const d = "0x6080604052348015600e575f80fd5b506101598061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063fe9fbb801461002d575b5f80fd5b610047600480360381019061004291906100c5565b61005d565b604051610054919061010a565b60405180910390f35b5f60019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100948261006b565b9050919050565b6100a48161008a565b81146100ae575f80fd5b50565b5f813590506100bf8161009b565b92915050565b5f602082840312156100da576100d9610067565b5b5f6100e7848285016100b1565b91505092915050565b5f8115159050919050565b610104816100f0565b82525050565b5f60208201905061011d5f8301846100fb565b9291505056fea2646970667358221220d69fb5c3af806c7aa7833655670f5929f23f7d101298880775d4b9c7c8d0e62f64736f6c634300081a0033";
4
4
  class n extends e {
@@ -1,3 +1,3 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./generated-wKBNvm48.cjs"),O=require("@wagmi/core"),r=require("viem"),J=require("./Actions/Action.cjs"),K=require("./Actions/EventAction.cjs"),S=require("./AllowLists/AllowList.cjs"),X=require("./AllowLists/SimpleAllowList.cjs"),Y=require("./SimpleDenyList-CqT0BMP7.cjs"),Z=require("./Auth/PassthroughAuth.cjs"),D=require("./Boost.cjs"),ff=require("./Budgets/Budget.cjs"),ef=require("./Budgets/ManagedBudget.cjs"),af=require("./Deployable/Deployable.cjs"),bf=require("./Incentives/AllowListIncentive.cjs"),tf=require("./Incentives/CGDAIncentive.cjs"),sf=require("./Incentives/ERC20Incentive.cjs"),V=require("./Incentives/Incentive.cjs"),cf=require("./Incentives/PointsIncentive.cjs"),nf=require("./Validators/SignerValidator.cjs"),rf=require("./Validators/Validator.cjs"),y=require("./errors.cjs"),N=require("viem/actions"),H=require("viem/utils"),df="0x60806040526544364c5bb0006004556103e860055f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506103e8600560086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555034801561006e575f80fd5b506040516135683803806135688339818101604052810190610090919061029f565b61009f3361012660201b60201c565b8160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506102dd565b61013461020260201b60201c565b156101ac577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561016e57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506101ff565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f90565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102338261020a565b9050919050565b5f61024482610229565b9050919050565b6102548161023a565b811461025e575f80fd5b50565b5f8151905061026f8161024b565b92915050565b61027e81610229565b8114610288575f80fd5b50565b5f8151905061029981610275565b92915050565b5f80604083850312156102b5576102b4610206565b5b5f6102c285828601610261565b92505060206102d38582860161028b565b9150509250929050565b61327e806102ea5f395ff3fe60806040526004361061014a575f3560e01c8063892b97f8116100b5578063d73792a91161006e578063d73792a9146103d0578063e21ff731146103fa578063eccc19a614610436578063f04e283e1461045e578063f2fde38b1461047a578063fee81cf4146104965761014a565b8063892b97f8146102e45780638da5cb5b1461030c5780638fe4f5231461033657806399d32fc414610352578063a92647dc1461037c578063b0e21e8a146103a65761014a565b806354d1f13d1161010757806354d1f13d146102365780635edb9eb014610240578063715018a61461026a578063730f9c57146102745780637b1039991461029057806384ae2bc6146102ba5761014a565b806313c8e2de1461014e578063256929621461018a5780632e75ab501461019457806339a51be5146101bc57806343bc42d3146101e657806346877b1a1461020e575b5f80fd5b348015610159575f80fd5b50610174600480360381019061016f91906122d2565b6104d2565b60405161018191906125c3565b60405180910390f35b6101926107ac565b005b34801561019f575f80fd5b506101ba60048036038101906101b591906122d2565b6107fd565b005b3480156101c7575f80fd5b506101d061080f565b6040516101dd91906125f2565b60405180910390f35b3480156101f1575f80fd5b5061020c60048036038101906102079190612635565b610834565b005b348015610219575f80fd5b50610234600480360381019061022f919061268a565b610867565b005b61023e6108b2565b005b34801561024b575f80fd5b506102546108eb565b60405161026191906126c4565b60405180910390f35b6102726108f6565b005b61028e6004803603810190610289919061273e565b610909565b005b34801561029b575f80fd5b506102a4610b9a565b6040516102b191906127f4565b60405180910390f35b3480156102c5575f80fd5b506102ce610bbf565b6040516102db919061281c565b60405180910390f35b3480156102ef575f80fd5b5061030a60048036038101906103059190612635565b610bd9565b005b348015610317575f80fd5b50610320610c0d565b60405161032d91906125f2565b60405180910390f35b610350600480360381019061034b9190612835565b610c35565b005b34801561035d575f80fd5b50610366610c4a565b60405161037391906126c4565b60405180910390f35b348015610387575f80fd5b50610390610c50565b60405161039d91906128d9565b60405180910390f35b3480156103b1575f80fd5b506103ba610c75565b6040516103c7919061281c565b60405180910390f35b3480156103db575f80fd5b506103e4610c8e565b6040516103f1919061281c565b60405180910390f35b348015610405575f80fd5b50610420600480360381019061041b91906128f2565b610c94565b60405161042d91906125c3565b60405180910390f35b348015610441575f80fd5b5061045c6004803603810190610457919061268a565b61164f565b005b6104786004803603810190610473919061268a565b61169a565b005b610494600480360381019061048f919061268a565b6116d8565b005b3480156104a1575f80fd5b506104bc60048036038101906104b7919061268a565b611701565b6040516104c991906126c4565b60405180910390f35b6104da612126565b5f82815481106104ed576104ec61293d565b5b905f5260205f209060080201604051806101200160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600482018054806020026020016040519081016040528092919081815260200182805480156106da57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610691575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016005820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b5f6107b561171a565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b610805611724565b8060048190555050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61083c611724565b8060055f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b61086f611724565b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f8080549050905090565b6108fe611724565b6109075f61175b565b565b3068929eee149b4bd2126854036109275763ab143c065f526004601cfd5b3068929eee149b4bd21268555f8087815481106109475761094661293d565b5b905f5260205f20906008020190506004543410156109a2575f346004546040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016109999392919061296a565b60405180910390fd5b6109ac8186611821565b806001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663703b690088888588886040518663ffffffff1660e01b8152600401610a109594939291906129f9565b6020604051808303815f875af1158015610a2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a509190612a7a565b610a86576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806004018681548110610a9c57610a9b61293d565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb1757cf8386866040518463ffffffff1660e01b8152600401610b0093929190612aa5565b6020604051808303815f875af1158015610b1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b409190612a7a565b610b85578184846040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610b7c93929190612aa5565b60405180910390fd5b503868929eee149b4bd2126855505050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560089054906101000a900467ffffffffffffffff1681565b610be1611724565b80600560086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b610c43858585858533610909565b5050505050565b60045481565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055f9054906101000a900467ffffffffffffffff1681565b61271081565b610c9c612126565b335f73ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015610d90575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80826040518263ffffffff1660e01b8152600401610d4f91906125f2565b602060405180830381865afa158015610d6a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d8e9190612a7a565b155b15610dc7576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3068929eee149b4bd212685403610de55763ab143c065f526004601cfd5b3068929eee149b4bd21268555f610e3e85858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505061198f565b806020019051810190610e519190612f35565b9050610e5f815f0151611a28565b5f8060018160018154018082558091505003905f5260205f2090600802019050816101000151816007015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550815f0151816003015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160a0015160055f9054906101000a900467ffffffffffffffff16610f309190612fa9565b816005015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160c00151600560089054906101000a900467ffffffffffffffff16610f7f9190612fa9565b8160050160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160e001518160060181905550610fe67fe67157950000000000000000000000000000000000000000000000000000000083602001516001611b03565b815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110567fe2089f790000000000000000000000000000000000000000000000000000000083606001516001611b03565b816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110a88260800151835f0151611b25565b8160040190805190602001906110bf9291906121ec565b505f73ffffffffffffffffffffffffffffffffffffffff1682604001516020015173ffffffffffffffffffffffffffffffffffffffff16146111305761112b7f5912b89c0000000000000000000000000000000000000000000000000000000083604001516001611b03565b611219565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f5912b89c000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016111ab919061301e565b602060405180830381865afa1580156111c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ea9190612a7a565b6111f4575f611218565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b5b816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660015f805490506112de9190613037565b7f116812d3ad4507d72f2c428b63246d594ca055a1dc119394285504c23d1f34cd8460040180549050856001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876003015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051611383949392919061306a565b60405180910390a480604051806101200160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561156d57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611524575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016005820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050935050503868929eee149b4bd21268555092915050565b611657611724565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6116a2611724565b63389a75e1600c52805f526020600c2080544211156116c857636f5e88185f526004601cfd5b5f8155506116d58161175b565b50565b6116e0611724565b8060601b6116f557637448fbae5f526004601cfd5b6116fe8161175b565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611759576382b429005f526004601cfd5b565b611763611eef565b156117c8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061181e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f600454031561198b575f60045490505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146118e7575f61271067ffffffffffffffff168460050160089054906101000a900467ffffffffffffffff1667ffffffffffffffff166004546118a291906130ad565b6118ac919061311b565b905080826118ba9190613037565b91506118e5818473ffffffffffffffffffffffffffffffffffffffff16611ef390919063ffffffff16565b505b61193f6002826118f7919061311b565b846007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611ef390919063ffffffff16565b6119894760035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611ef390919063ffffffff16565b505b5050565b6060815115611a235760405190506020810160048301805184518501811983525b80861015611a09576001860195508551601f1a806119f9576001870196508651601f1a5f198652607f81116119e757600181013887395b6001607f821601860195505050611a04565b808553600185019450505b6119b0565b81835260208501840385525f845260208401604052505050505b919050565b611a527fea5ad34e0000000000000000000000000000000000000000000000000000000082611f10565b8073ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80336040518263ffffffff1660e01b8152600401611a8b91906125f2565b602060405180830381865afa158015611aa6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aca9190612a7a565b611b00576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b5f611b12848460200151611f10565b611b1c8383612007565b90509392505050565b6060825167ffffffffffffffff811115611b4257611b41612ad9565b5b604051908082528060200260200182016040528015611b705781602001602082028036833780820191505090505b5090505f5b8351811015611ee857611bc67f5970a68900000000000000000000000000000000000000000000000000000000858381518110611bb557611bb461293d565b5b602002602001015160200151611f10565b838181518110611bd957611bd861293d565b5b60200260200101515f0151611c65577f5970a68900000000000000000000000000000000000000000000000000000000848281518110611c1c57611c1b61293d565b5b6020026020010151602001516040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401611c5c92919061314b565b60405180910390fd5b611caa7f5970a68900000000000000000000000000000000000000000000000000000000858381518110611c9c57611c9b61293d565b5b60200260200101515f611b03565b828281518110611cbd57611cbc61293d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f828281518110611d0b57611d0a61293d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16634e7165a2868481518110611d4157611d4061293d565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401611d6991906131b4565b5f60405180830381865afa158015611d83573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190611dab91906131d4565b90505f815114611e3c578373ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1826040518263ffffffff1660e01b8152600401611dee91906131b4565b6020604051808303815f875af1158015611e0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e2e9190612a7a565b611e3b57611e3a61321b565b5b5b828281518110611e4f57611e4e61293d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663439fab91868481518110611e8557611e8461293d565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401611ead91906131b4565b5f604051808303815f87803b158015611ec4575f80fd5b505af1158015611ed6573d5f803e3d5ffd5b50505050508080600101915050611b75565b5092915050565b5f90565b5f385f3884865af1611f0c5763b12d13eb5f526004601cfd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480611fbf57508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a7836040518263ffffffff1660e01b8152600401611f7e919061301e565b602060405180830381865afa158015611f99573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fbd9190612a7a565b155b156120035781816040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401611ffa92919061314b565b60405180910390fd5b5050565b5f825f015161201a57826020015161203e565b61203d836020015173ffffffffffffffffffffffffffffffffffffffff166120c3565b5b9050825f0151801561204d5750815b156120bd578073ffffffffffffffffffffffffffffffffffffffff1663439fab9184604001516040518263ffffffff1660e01b815260040161208f91906131b4565b5f604051808303815f87803b1580156120a6575f80fd5b505af11580156120b8573d5f803e3d5ffd5b505050505b92915050565b5f6120ce5f836120d5565b9050919050565b5f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f090508061211c5763301164255f526004601cfd5b5f60215292915050565b6040518061012001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f67ffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b828054828255905f5260205f20908101928215612262579160200282015b82811115612261578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019061220a565b5b50905061226f9190612273565b5090565b5b8082111561228a575f815f905550600101612274565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b6122b18161229f565b81146122bb575f80fd5b50565b5f813590506122cc816122a8565b92915050565b5f602082840312156122e7576122e6612297565b5b5f6122f4848285016122be565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61233f61233a612335846122fd565b61231c565b6122fd565b9050919050565b5f61235082612325565b9050919050565b5f61236182612346565b9050919050565b61237181612357565b82525050565b5f61238182612346565b9050919050565b61239181612377565b82525050565b5f6123a182612346565b9050919050565b6123b181612397565b82525050565b5f6123c182612325565b9050919050565b5f6123d2826123b7565b9050919050565b6123e2816123c8565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f61241b82612346565b9050919050565b61242b81612411565b82525050565b5f61243c8383612422565b60208301905092915050565b5f602082019050919050565b5f61245e826123e8565b61246881856123f2565b935061247383612402565b805f5b838110156124a357815161248a8882612431565b975061249583612448565b925050600181019050612476565b5085935050505092915050565b5f67ffffffffffffffff82169050919050565b6124cc816124b0565b82525050565b6124db8161229f565b82525050565b5f6124eb826122fd565b9050919050565b6124fb816124e1565b82525050565b5f61012083015f8301516125175f860182612368565b50602083015161252a6020860182612388565b50604083015161253d60408601826123a8565b50606083015161255060608601826123d9565b50608083015184820360808601526125688282612454565b91505060a083015161257d60a08601826124c3565b5060c083015161259060c08601826124c3565b5060e08301516125a360e08601826124d2565b506101008301516125b86101008601826124f2565b508091505092915050565b5f6020820190508181035f8301526125db8184612501565b905092915050565b6125ec816124e1565b82525050565b5f6020820190506126055f8301846125e3565b92915050565b612614816124b0565b811461261e575f80fd5b50565b5f8135905061262f8161260b565b92915050565b5f6020828403121561264a57612649612297565b5b5f61265784828501612621565b91505092915050565b612669816124e1565b8114612673575f80fd5b50565b5f8135905061268481612660565b92915050565b5f6020828403121561269f5761269e612297565b5b5f6126ac84828501612676565b91505092915050565b6126be8161229f565b82525050565b5f6020820190506126d75f8301846126b5565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126126fe576126fd6126dd565b5b8235905067ffffffffffffffff81111561271b5761271a6126e1565b5b602083019150836001820283011115612737576127366126e5565b5b9250929050565b5f805f805f8060a0878903121561275857612757612297565b5b5f61276589828a016122be565b965050602061277689828a016122be565b955050604061278789828a01612676565b945050606087013567ffffffffffffffff8111156127a8576127a761229b565b5b6127b489828a016126e9565b935093505060806127c789828a01612676565b9150509295509295509295565b5f6127de82612346565b9050919050565b6127ee816127d4565b82525050565b5f6020820190506128075f8301846127e5565b92915050565b612816816124b0565b82525050565b5f60208201905061282f5f83018461280d565b92915050565b5f805f805f6080868803121561284e5761284d612297565b5b5f61285b888289016122be565b955050602061286c888289016122be565b945050604061287d88828901612676565b935050606086013567ffffffffffffffff81111561289e5761289d61229b565b5b6128aa888289016126e9565b92509250509295509295909350565b5f6128c382612346565b9050919050565b6128d3816128b9565b82525050565b5f6020820190506128ec5f8301846128ca565b92915050565b5f806020838503121561290857612907612297565b5b5f83013567ffffffffffffffff8111156129255761292461229b565b5b612931858286016126e9565b92509250509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60608201905061297d5f8301866125e3565b61298a60208301856126b5565b61299760408301846126b5565b949350505050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f6129d8838561299f565b93506129e58385846129af565b6129ee836129bd565b840190509392505050565b5f608082019050612a0c5f8301886126b5565b612a1960208301876126b5565b612a2660408301866125e3565b8181036060830152612a398184866129cd565b90509695505050505050565b5f8115159050919050565b612a5981612a45565b8114612a63575f80fd5b50565b5f81519050612a7481612a50565b92915050565b5f60208284031215612a8f57612a8e612297565b5b5f612a9c84828501612a66565b91505092915050565b5f604082019050612ab85f8301866125e3565b8181036020830152612acb8184866129cd565b9050949350505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612b0f826129bd565b810181811067ffffffffffffffff82111715612b2e57612b2d612ad9565b5b80604052505050565b5f612b4061228e565b9050612b4c8282612b06565b919050565b5f80fd5b5f612b5f826122fd565b9050919050565b5f612b7082612b55565b9050919050565b612b8081612b66565b8114612b8a575f80fd5b50565b5f81519050612b9b81612b77565b92915050565b5f81519050612baf81612660565b92915050565b5f80fd5b5f67ffffffffffffffff821115612bd357612bd2612ad9565b5b612bdc826129bd565b9050602081019050919050565b8281835e5f83830152505050565b5f612c09612c0484612bb9565b612b37565b905082815260208101848484011115612c2557612c24612bb5565b5b612c30848285612be9565b509392505050565b5f82601f830112612c4c57612c4b6126dd565b5b8151612c5c848260208601612bf7565b91505092915050565b5f60608284031215612c7a57612c79612ad5565b5b612c846060612b37565b90505f612c9384828501612a66565b5f830152506020612ca684828501612ba1565b602083015250604082015167ffffffffffffffff811115612cca57612cc9612b51565b5b612cd684828501612c38565b60408301525092915050565b5f67ffffffffffffffff821115612cfc57612cfb612ad9565b5b602082029050602081019050919050565b5f612d1f612d1a84612ce2565b612b37565b90508083825260208201905060208402830185811115612d4257612d416126e5565b5b835b81811015612d8957805167ffffffffffffffff811115612d6757612d666126dd565b5b808601612d748982612c65565b85526020850194505050602081019050612d44565b5050509392505050565b5f82601f830112612da757612da66126dd565b5b8151612db7848260208601612d0d565b91505092915050565b5f81519050612dce8161260b565b92915050565b5f81519050612de2816122a8565b92915050565b5f6101208284031215612dfe57612dfd612ad5565b5b612e09610120612b37565b90505f612e1884828501612b8d565b5f83015250602082015167ffffffffffffffff811115612e3b57612e3a612b51565b5b612e4784828501612c65565b602083015250604082015167ffffffffffffffff811115612e6b57612e6a612b51565b5b612e7784828501612c65565b604083015250606082015167ffffffffffffffff811115612e9b57612e9a612b51565b5b612ea784828501612c65565b606083015250608082015167ffffffffffffffff811115612ecb57612eca612b51565b5b612ed784828501612d93565b60808301525060a0612eeb84828501612dc0565b60a08301525060c0612eff84828501612dc0565b60c08301525060e0612f1384828501612dd4565b60e083015250610100612f2884828501612ba1565b6101008301525092915050565b5f60208284031215612f4a57612f49612297565b5b5f82015167ffffffffffffffff811115612f6757612f6661229b565b5b612f7384828501612de8565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612fb3826124b0565b9150612fbe836124b0565b9250828201905067ffffffffffffffff811115612fde57612fdd612f7c565b5b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61301881612fe4565b82525050565b5f6020820190506130315f83018461300f565b92915050565b5f6130418261229f565b915061304c8361229f565b925082820390508181111561306457613063612f7c565b5b92915050565b5f60808201905061307d5f8301876126b5565b61308a60208301866125e3565b61309760408301856125e3565b6130a460608301846125e3565b95945050505050565b5f6130b78261229f565b91506130c28361229f565b92508282026130d08161229f565b915082820484148315176130e7576130e6612f7c565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131258261229f565b91506131308361229f565b9250826131405761313f6130ee565b5b828204905092915050565b5f60408201905061315e5f83018561300f565b61316b60208301846125e3565b9392505050565b5f81519050919050565b5f61318682613172565b613190818561299f565b93506131a0818560208601612be9565b6131a9816129bd565b840191505092915050565b5f6020820190508181035f8301526131cc818461317c565b905092915050565b5f602082840312156131e9576131e8612297565b5b5f82015167ffffffffffffffff8111156132065761320561229b565b5b61321284828501612c38565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffdfea2646970667358221220fb22934e0d9f7a8e32d07cd1f2621ea36204627afface45e5bc80aab6122bb7d64736f6c634300081a0033";function x(b){const e=b.state.current,f=b.state.connections.get(e),a=f==null?void 0:f.accounts,s=a==null?void 0:a[0],t=b.chains.find(d=>d.id===(f==null?void 0:f.chainId)),c=b.state.status;switch(c){case"connected":return{address:s,addresses:a,chain:t,chainId:f==null?void 0:f.chainId,connector:f==null?void 0:f.connector,isConnected:!0,isConnecting:!1,isDisconnected:!1,isReconnecting:!1,status:c};case"reconnecting":return{address:s,addresses:a,chain:t,chainId:f==null?void 0:f.chainId,connector:f==null?void 0:f.connector,isConnected:!!s,isConnecting:!1,isDisconnected:!1,isReconnecting:!0,status:c};case"connecting":return{address:s,addresses:a,chain:t,chainId:f==null?void 0:f.chainId,connector:f==null?void 0:f.connector,isConnected:!1,isConnecting:!0,isDisconnected:!1,isReconnecting:!1,status:c};case"disconnected":return{address:void 0,addresses:void 0,chain:void 0,chainId:void 0,connector:void 0,isConnected:!1,isConnecting:!1,isDisconnected:!0,isReconnecting:!1,status:c}}}function of(b){return b.state.chainId}function j(b,e,f){const a=b[e.name];if(typeof a=="function")return a;const s=b[f];return typeof s=="function"?s:t=>e(b,t)}const uf="2.13.0",lf=()=>`@wagmi/core@${uf}`;var $=function(b,e,f,a){if(f==="a"&&!a)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?b!==e||!a:!e.has(b))throw new TypeError("Cannot read private member from an object whose class did not declare it");return f==="m"?a:f==="a"?a.call(b):a?a.value:e.get(b)},P,T;class A extends Error{get docsBaseUrl(){return"https://wagmi.sh/core"}get version(){return lf()}constructor(e,f={}){var t;super(),P.add(this),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"WagmiCoreError"});const a=f.cause instanceof A?f.cause.details:(t=f.cause)!=null&&t.message?f.cause.message:f.details,s=f.cause instanceof A&&f.cause.docsPath||f.docsPath;this.message=[e||"An error occurred.","",...f.metaMessages?[...f.metaMessages,""]:[],...s?[`Docs: ${this.docsBaseUrl}${s}.html${f.docsSlug?`#${f.docsSlug}`:""}`]:[],...a?[`Details: ${a}`]:[],`Version: ${this.version}`].join(`
2
- `),f.cause&&(this.cause=f.cause),this.details=a,this.docsPath=s,this.metaMessages=f.metaMessages,this.shortMessage=e}walk(e){return $(this,P,"m",T).call(this,this,e)}}P=new WeakSet,T=function b(e,f){return f!=null&&f(e)?e:e.cause?$(this,P,"m",b).call(this,e.cause,f):e};class hf extends A{constructor(){super("Connector not connected."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorNotConnectedError"})}}class gf extends A{constructor({address:e,connector:f}){super(`Account "${e}" not found for connector "${f.name}".`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorAccountNotFoundError"})}}class wf extends A{constructor({connectionChainId:e,connectorChainId:f}){super(`The current chain of the connector (id: ${f}) does not match the connection's chain (id: ${e}).`,{metaMessages:[`Current Chain ID: ${f}`,`Expected Chain ID: ${e}`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorChainMismatchError"})}}async function G(b,e={}){let f;if(e.connector){const{connector:n}=e,[l,m]=await Promise.all([n.getAccounts(),n.getChainId()]);f={accounts:l,chainId:m,connector:n}}else f=b.state.connections.get(b.state.current);if(!f)throw new hf;const a=e.chainId??f.chainId,s=await f.connector.getChainId();if(s!==f.chainId)throw new wf({connectionChainId:f.chainId,connectorChainId:s});const t=f.connector;if(t.getClient)return t.getClient({chainId:a});const c=H.parseAccount(e.account??f.accounts[0]);c.address=H.getAddress(c.address);const d=b.chains.find(n=>n.id===a),i=await f.connector.getProvider({chainId:a});if(e.account&&!f.accounts.some(n=>n.toLowerCase()===c.address.toLowerCase()))throw new gf({address:c.address,connector:t});return r.createClient({account:c,chain:d,name:"Connector Client",transport:n=>r.custom(i)({...n,retryCount:0})})}async function mf(b,e){const{abi:f,chainId:a,connector:s,...t}=e;let c;e.account?c=e.account:c=(await G(b,{chainId:a,connector:s})).account;const d=b.getClient({chainId:a}),i=j(d,N.simulateContract,"simulateContract"),{result:n,request:l}=await i({...t,abi:f,account:c});return{chainId:d.chain.id,result:n,request:{__mode:"prepared",...l,chainId:a}}}async function M(b,e){const{account:f,chainId:a,connector:s,__mode:t,...c}=e;let d;typeof f=="object"&&f.type==="local"?d=b.getClient({chainId:a}):d=await G(b,{account:f,chainId:a,connector:s});const{connector:i}=x(b);let n;if(t==="prepared"||i!=null&&i.supportsSimulation)n=c;else{const{request:v}=await mf(b,{...c,account:f,chainId:a});n=v}return await j(d,N.writeContract,"writeContract")({...n,...f?{account:f}:{},chain:a?{id:a}:null})}function Af(b){return b.address!==void 0&&typeof b.address=="object"?(e,f)=>{var c;const a=of(e),s=x(e);let t;return f.chainId?t=f.chainId:f.account&&f.account===s.address||f.account===void 0?t=s.chainId:t=a,M(e,{...f,...b.functionName?{functionName:b.functionName}:{},address:t?(c=b.address)==null?void 0:c[t]:void 0,abi:b.abi})}:(e,f)=>M(e,{...f,...b.address?{address:b.address}:{},...b.functionName?{functionName:b.functionName}:{},abi:b.abi})}const vf=r.parseEther("0.000075"),U="0x0561e8fB1EFD614eb905CB93D548Bb217Ad07B92";function yf(b){return b.address}function Cf(b){return b.registryAddress&&b.protocolFeeReceiver}class pf extends af.Deployable{constructor({config:e,account:f,...a}){yf(a)&&a.address?super({account:f,config:e},a.address):Cf(a)?super({account:f,config:e},[a.registryAddress,a.protocolFeeReceiver]):super({account:f,config:e},U),this.abi=o.c}async createBoost(e,f){var L;const a=this.assertValidAddress(),[s,t]=this.validateDeploymentConfig(e,f);let{budget:c,action:d,validator:i,allowList:n,incentives:l,protocolFee:m=0n,referralFee:v=0n,maxParticipants:E=0n,owner:w}=s;const R=Af({abi:o.c,functionName:"createBoost",address:this.address});if(!w&&(w=((L=this._account)==null?void 0:L.address)||O.getAccount(t.config).address||r.zeroAddress,w===r.zeroAddress))throw new y.DeployableUnknownOwnerProvidedError;let z=r.zeroAddress;if(c.address){if(z=c.address,!await c.isAuthorized(a))throw new y.BudgetMustAuthorizeBoostCore(a)}else throw new y.MustInitializeBudgetError;let C={instance:r.zeroAddress,isBase:!0,parameters:r.zeroHash};if(d.address){const u=d.address===d.base||d.isBase;C={isBase:u,instance:d.address,parameters:u&&d.buildParameters(void 0,t).args.at(0)||r.zeroHash}}else C.parameters=d.buildParameters(void 0,t).args.at(0)||r.zeroHash,C.instance=d.base;let p={instance:r.zeroAddress,isBase:!0,parameters:r.zeroHash};if(i.address){const u=i.address===i.base||i.isBase;p={isBase:u,instance:i.address,parameters:u&&i.buildParameters({signers:[w],validatorCaller:a},t).args.at(0)||r.zeroHash}}else p.parameters=i.buildParameters({signers:[w],validatorCaller:a},t).args.at(0)||r.zeroHash,p.instance=i.base;let _={instance:r.zeroAddress,isBase:!0,parameters:r.zeroHash};if(n.address){const u=n.address===n.base||n.isBase;_={isBase:u,instance:n.address,parameters:r.zeroHash}}else _.parameters=n.buildParameters(void 0,t).args.at(0)||r.zeroHash,_.instance=n.base;let I=l.map(()=>({instance:r.zeroAddress,isBase:!0,parameters:r.zeroHash}));for(let u=0;u<l.length;u++){const h=l.at(u);if(h.address){const q=h.address===h.base||h.isBase;if(!q)throw new y.IncentiveNotCloneableError(h);I[u]={isBase:q,instance:h.address,parameters:q&&h.buildParameters(void 0,t).args.at(0)||r.zeroHash}}else I[u].parameters=h.buildParameters(void 0,t).args.at(0)||r.zeroHash,I[u].instance=h.base}const W={budget:z,action:C,validator:p,allowList:_,incentives:I,protocolFee:m,referralFee:v,maxParticipants:E,owner:w},k=await R(t.config,{args:[D.prepareBoostPayload(W)],...this.optionallyAttachAccount(t.account)}),Q=await O.waitForTransactionReceipt(t.config,{hash:k}),B=r.parseEventLogs({abi:o.c,eventName:"BoostCreated",logs:Q.logs}).at(0);let F=0n;if(!B)throw new y.BoostCoreNoIdentifierEmitted;F=B==null?void 0:B.args.boostIndex;const g=await this.readBoost(F);return new D.Boost({id:F,budget:c.at(g.budget),action:d.at(g.action),validator:i.at(g.validator),allowList:n.at(g.allowList),incentives:l.map((u,h)=>u.at(g.incentives.at(h))),protocolFee:g.protocolFee,referralFee:g.referralFee,maxParticipants:g.maxParticipants,owner:g.owner})}async claimIncentive(e,f,a,s,t){return await this.awaitResult(this.claimIncentiveRaw(e,f,a,s,t))}async claimIncentiveRaw(e,f,a,s,t){const{request:c,result:d}=await o.Wl(this._config,{address:this.assertValidAddress(),args:[e,f,a,s],...this.optionallyAttachAccount(),...t});return{hash:await o.Hl(this._config,c),result:d}}async claimIncentiveFor(e,f,a,s,t,c){return await this.awaitResult(this.claimIncentiveForRaw(e,f,a,s,t,c))}async claimIncentiveForRaw(e,f,a,s,t,c){const{request:d,result:i}=await o.Ql(this._config,{address:this.assertValidAddress(),args:[e,f,a,s,t],...this.optionallyAttachAccount(),...c});return{hash:await o.Vl(this._config,d),result:i}}async readBoost(e,f){return await o.gl(this._config,{address:this.assertValidAddress(),args:[e],...this.optionallyAttachAccount(),...f})}async getBoost(e,f){let a;typeof e=="string"?a=BigInt(e):a=e;const{protocolFee:s,referralFee:t,maxParticipants:c,owner:d,...i}=await this.readBoost(a,f),n={config:this._config,account:this._account},[l,m,v,E,w]=await Promise.all([J.actionFromAddress(n,i.action),ff.budgetFromAddress(n,i.budget),rf.validatorFromAddress(n,i.validator),S.allowListFromAddress(n,i.allowList),Promise.all(i.incentives.map(R=>V.incentiveFromAddress(n,R)))]);return new D.Boost({id:a,action:l,budget:m,validator:v,allowList:E,incentives:w,protocolFee:s,referralFee:t,maxParticipants:c,owner:d})}async getBoostCount(e){return await o.Ml(this._config,{address:this.assertValidAddress(),args:[],...this.optionallyAttachAccount(),...e})}async isAuthorized(e,f){const a=await this.createBoostAuth();return o.pv(this._config,{address:a,args:[e],...this.optionallyAttachAccount(),...f})}async createBoostAuth(e){return await o.hl(this._config,{address:this.assertValidAddress(),args:[],...this.optionallyAttachAccount(),...e})}async setCreateBoostAuth(e,f){return await this.awaitResult(this.setCreateBoostAuthRaw(e.assertValidAddress(),{...f}))}async setCreateBoostAuthRaw(e,f){const{request:a,result:s}=await o.ty(this._config,{address:this.assertValidAddress(),args:[e],...this.optionallyAttachAccount(),...f});return{hash:await o.Pl(this._config,a),result:s}}async protocolFee(e){return await o.El(this._config,{address:this.assertValidAddress(),args:[],...this.optionallyAttachAccount(),...e})}async protocolFeeReceiver(e){return await o.Rl(this._config,{address:this.assertValidAddress(),args:[],...this.optionallyAttachAccount(),...e})}async setProcolFeeReceiver(e,f){return await this.awaitResult(this.setProcolFeeReceiverRaw(e,{...f}))}async setProcolFeeReceiverRaw(e,f){const{request:a,result:s}=await o.ay(this._config,{address:this.assertValidAddress(),args:[e],...this.optionallyAttachAccount(),...f});return{hash:await o.Ul(this._config,a),result:s}}async claimFee(e){return await o.Nl(this._config,{address:this.assertValidAddress(),args:[],...this.optionallyAttachAccount(),...e})}async setClaimFee(e,f){return await this.awaitResult(this.setClaimFeeRaw(e,f))}async setClaimFeeRaw(e,f){const{request:a,result:s}=await o.ey(this._config,{address:this.assertValidAddress(),args:[e],...this.optionallyAttachAccount(),...f});return{hash:await o.Dl(this._config,a),result:s}}PassthroughAuth(e){return new Z.PassthroughAuth({config:this._config,account:this._account},e)}EventAction(e,f){return new K.EventAction({config:this._config,account:this._account},e,f)}OpenAllowList(e){return new S.OpenAllowList({config:this._config,account:this._account},void 0,e)}SimpleAllowList(e,f){return new X.SimpleAllowList({config:this._config,account:this._account},e,f)}SimpleDenyList(e,f){return new Y.SimpleDenyList({config:this._config,account:this._account},e,f)}ManagedBudget(e){return new ef.ManagedBudget({config:this._config,account:this._account},e)}AllowListIncentive(e){return new bf.AllowListIncentive({config:this._config,account:this._account},e)}CGDAIncentive(e){return new tf.CGDAIncentive({config:this._config,account:this._account},e)}ERC20Incentive(e){return new sf.ERC20Incentive({config:this._config,account:this._account},e)}PointsIncentive(e){return new cf.PointsIncentive({config:this._config,account:this._account},e)}SignerValidator(e,f){return new nf.SignerValidator({config:this._config,account:this._account},e,f)}ERC20VariableIncentive(e,f){return new V.ERC20VariableIncentive({config:this._config,account:this._account},e,f)}buildParameters(e,f){const[a,s]=this.validateDeploymentConfig(e,f);return{abi:o.c,bytecode:df,args:a,...this.optionallyAttachAccount(s.account)}}}exports.boostCoreAbi=o.c;exports.BOOST_CORE_ADDRESS=U;exports.BOOST_CORE_CLAIM_FEE=vf;exports.BoostCore=pf;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./generated-tq_HLZJ0.cjs"),$=require("@wagmi/core"),d=require("viem"),W=require("./deployments-Ho4PnGCS.cjs"),bf=require("./Actions/Action.cjs"),tf=require("./Actions/EventAction.cjs"),j=require("./AllowLists/AllowList.cjs"),af=require("./AllowLists/SimpleAllowList.cjs"),cf=require("./SimpleDenyList-DeJRKD2D.cjs"),sf=require("./Auth/PassthroughAuth.cjs"),z=require("./Boost.cjs"),nf=require("./Budgets/Budget.cjs"),df=require("./Budgets/ManagedBudget.cjs"),of=require("./Deployable/Deployable.cjs"),rf=require("./Incentives/AllowListIncentive.cjs"),uf=require("./Incentives/CGDAIncentive.cjs"),lf=require("./Incentives/ERC20Incentive.cjs"),T=require("./Incentives/Incentive.cjs"),hf=require("./Incentives/PointsIncentive.cjs"),gf=require("./Validators/SignerValidator.cjs"),wf=require("./Validators/Validator.cjs"),v=require("./errors.cjs"),h=require("./utils.cjs"),k=require("viem/actions"),G=require("viem/utils"),Af="0x60806040526544364c5bb0006004556103e860055f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506103e8600560086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555034801561006e575f80fd5b506040516135bc3803806135bc8339818101604052810190610090919061029f565b61009f3361012660201b60201c565b8160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506102dd565b61013461020260201b60201c565b156101ac577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561016e57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506101ff565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f90565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102338261020a565b9050919050565b5f61024482610229565b9050919050565b6102548161023a565b811461025e575f80fd5b50565b5f8151905061026f8161024b565b92915050565b61027e81610229565b8114610288575f80fd5b50565b5f8151905061029981610275565b92915050565b5f80604083850312156102b5576102b4610206565b5b5f6102c285828601610261565b92505060206102d38582860161028b565b9150509250929050565b6132d2806102ea5f395ff3fe60806040526004361061014a575f3560e01c8063892b97f8116100b5578063d73792a91161006e578063d73792a9146103d0578063e21ff731146103fa578063eccc19a614610436578063f04e283e1461045e578063f2fde38b1461047a578063fee81cf4146104965761014a565b8063892b97f8146102e45780638da5cb5b1461030c5780638fe4f5231461033657806399d32fc414610352578063a92647dc1461037c578063b0e21e8a146103a65761014a565b806354d1f13d1161010757806354d1f13d146102365780635edb9eb014610240578063715018a61461026a578063730f9c57146102745780637b1039991461029057806384ae2bc6146102ba5761014a565b806313c8e2de1461014e578063256929621461018a5780632e75ab501461019457806339a51be5146101bc57806343bc42d3146101e657806346877b1a1461020e575b5f80fd5b348015610159575f80fd5b50610174600480360381019061016f9190612326565b6104d2565b6040516101819190612617565b60405180910390f35b6101926107ac565b005b34801561019f575f80fd5b506101ba60048036038101906101b59190612326565b6107fd565b005b3480156101c7575f80fd5b506101d061080f565b6040516101dd9190612646565b60405180910390f35b3480156101f1575f80fd5b5061020c60048036038101906102079190612689565b610834565b005b348015610219575f80fd5b50610234600480360381019061022f91906126de565b610867565b005b61023e6108b2565b005b34801561024b575f80fd5b506102546108eb565b6040516102619190612718565b60405180910390f35b6102726108f6565b005b61028e60048036038101906102899190612792565b610909565b005b34801561029b575f80fd5b506102a4610bee565b6040516102b19190612848565b60405180910390f35b3480156102c5575f80fd5b506102ce610c13565b6040516102db9190612870565b60405180910390f35b3480156102ef575f80fd5b5061030a60048036038101906103059190612689565b610c2d565b005b348015610317575f80fd5b50610320610c61565b60405161032d9190612646565b60405180910390f35b610350600480360381019061034b9190612889565b610c89565b005b34801561035d575f80fd5b50610366610c9e565b6040516103739190612718565b60405180910390f35b348015610387575f80fd5b50610390610ca4565b60405161039d919061292d565b60405180910390f35b3480156103b1575f80fd5b506103ba610cc9565b6040516103c79190612870565b60405180910390f35b3480156103db575f80fd5b506103e4610ce2565b6040516103f19190612870565b60405180910390f35b348015610405575f80fd5b50610420600480360381019061041b9190612946565b610ce8565b60405161042d9190612617565b60405180910390f35b348015610441575f80fd5b5061045c600480360381019061045791906126de565b6116a3565b005b610478600480360381019061047391906126de565b6116ee565b005b610494600480360381019061048f91906126de565b61172c565b005b3480156104a1575f80fd5b506104bc60048036038101906104b791906126de565b611755565b6040516104c99190612718565b60405180910390f35b6104da61217a565b5f82815481106104ed576104ec612991565b5b905f5260205f209060080201604051806101200160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600482018054806020026020016040519081016040528092919081815260200182805480156106da57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610691575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016005820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b5f6107b561176e565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b610805611778565b8060048190555050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61083c611778565b8060055f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b61086f611778565b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f8080549050905090565b6108fe611778565b6109075f6117af565b565b3068929eee149b4bd2126854036109275763ab143c065f526004601cfd5b3068929eee149b4bd21268555f80878154811061094757610946612991565b5b905f5260205f20906008020190506004543410156109a2575f346004546040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401610999939291906129be565b60405180910390fd5b6109ac8186611875565b806001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663703b690088888588886040518663ffffffff1660e01b8152600401610a10959493929190612a4d565b6020604051808303815f875af1158015610a2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a509190612ace565b610a86576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806004018681548110610a9c57610a9b612991565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb1757cf8386866040518463ffffffff1660e01b8152600401610b0093929190612af9565b6020604051808303815f875af1158015610b1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b409190612ace565b610b85578184846040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610b7c93929190612af9565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1686887f0f29bbf4ce25d2346bbeb8a898e24e5d6d7d1d19bb895e71faecac833b259547888888604051610bd193929190612af9565b60405180910390a4503868929eee149b4bd2126855505050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560089054906101000a900467ffffffffffffffff1681565b610c35611778565b80600560086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b610c97858585858533610909565b5050505050565b60045481565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055f9054906101000a900467ffffffffffffffff1681565b61271081565b610cf061217a565b335f73ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015610de4575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80826040518263ffffffff1660e01b8152600401610da39190612646565b602060405180830381865afa158015610dbe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de29190612ace565b155b15610e1b576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3068929eee149b4bd212685403610e395763ab143c065f526004601cfd5b3068929eee149b4bd21268555f610e9285858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050506119e3565b806020019051810190610ea59190612f89565b9050610eb3815f0151611a7c565b5f8060018160018154018082558091505003905f5260205f2090600802019050816101000151816007015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550815f0151816003015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160a0015160055f9054906101000a900467ffffffffffffffff16610f849190612ffd565b816005015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160c00151600560089054906101000a900467ffffffffffffffff16610fd39190612ffd565b8160050160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160e00151816006018190555061103a7fe67157950000000000000000000000000000000000000000000000000000000083602001516001611b57565b815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110aa7fe2089f790000000000000000000000000000000000000000000000000000000083606001516001611b57565b816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110fc8260800151835f0151611b79565b816004019080519060200190611113929190612240565b505f73ffffffffffffffffffffffffffffffffffffffff1682604001516020015173ffffffffffffffffffffffffffffffffffffffff16146111845761117f7f5912b89c0000000000000000000000000000000000000000000000000000000083604001516001611b57565b61126d565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f5912b89c000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016111ff9190613072565b602060405180830381865afa15801561121a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061123e9190612ace565b611248575f61126c565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b5b816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660015f80549050611332919061308b565b7f116812d3ad4507d72f2c428b63246d594ca055a1dc119394285504c23d1f34cd8460040180549050856001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876003015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516113d794939291906130be565b60405180910390a480604051806101200160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600482018054806020026020016040519081016040528092919081815260200182805480156115c157602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611578575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016005820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050935050503868929eee149b4bd21268555092915050565b6116ab611778565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6116f6611778565b63389a75e1600c52805f526020600c20805442111561171c57636f5e88185f526004601cfd5b5f815550611729816117af565b50565b611734611778565b8060601b61174957637448fbae5f526004601cfd5b611752816117af565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146117ad576382b429005f526004601cfd5b565b6117b7611f43565b1561181c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611872565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60045403156119df575f60045490505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461193b575f61271067ffffffffffffffff168460050160089054906101000a900467ffffffffffffffff1667ffffffffffffffff166004546118f69190613101565b611900919061316f565b9050808261190e919061308b565b9150611939818473ffffffffffffffffffffffffffffffffffffffff16611f4790919063ffffffff16565b505b61199360028261194b919061316f565b846007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611f4790919063ffffffff16565b6119dd4760035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611f4790919063ffffffff16565b505b5050565b6060815115611a775760405190506020810160048301805184518501811983525b80861015611a5d576001860195508551601f1a80611a4d576001870196508651601f1a5f198652607f8111611a3b57600181013887395b6001607f821601860195505050611a58565b808553600185019450505b611a04565b81835260208501840385525f845260208401604052505050505b919050565b611aa67fea5ad34e0000000000000000000000000000000000000000000000000000000082611f64565b8073ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80336040518263ffffffff1660e01b8152600401611adf9190612646565b602060405180830381865afa158015611afa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b1e9190612ace565b611b54576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b5f611b66848460200151611f64565b611b70838361205b565b90509392505050565b6060825167ffffffffffffffff811115611b9657611b95612b2d565b5b604051908082528060200260200182016040528015611bc45781602001602082028036833780820191505090505b5090505f5b8351811015611f3c57611c1a7f5970a68900000000000000000000000000000000000000000000000000000000858381518110611c0957611c08612991565b5b602002602001015160200151611f64565b838181518110611c2d57611c2c612991565b5b60200260200101515f0151611cb9577f5970a68900000000000000000000000000000000000000000000000000000000848281518110611c7057611c6f612991565b5b6020026020010151602001516040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401611cb092919061319f565b60405180910390fd5b611cfe7f5970a68900000000000000000000000000000000000000000000000000000000858381518110611cf057611cef612991565b5b60200260200101515f611b57565b828281518110611d1157611d10612991565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f828281518110611d5f57611d5e612991565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16634e7165a2868481518110611d9557611d94612991565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401611dbd9190613208565b5f60405180830381865afa158015611dd7573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190611dff9190613228565b90505f815114611e90578373ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1826040518263ffffffff1660e01b8152600401611e429190613208565b6020604051808303815f875af1158015611e5e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e829190612ace565b611e8f57611e8e61326f565b5b5b828281518110611ea357611ea2612991565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663439fab91868481518110611ed957611ed8612991565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401611f019190613208565b5f604051808303815f87803b158015611f18575f80fd5b505af1158015611f2a573d5f803e3d5ffd5b50505050508080600101915050611bc9565b5092915050565b5f90565b5f385f3884865af1611f605763b12d13eb5f526004601cfd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061201357508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a7836040518263ffffffff1660e01b8152600401611fd29190613072565b602060405180830381865afa158015611fed573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120119190612ace565b155b156120575781816040517fe1c4444800000000000000000000000000000000000000000000000000000000815260040161204e92919061319f565b60405180910390fd5b5050565b5f825f015161206e578260200151612092565b612091836020015173ffffffffffffffffffffffffffffffffffffffff16612117565b5b9050825f015180156120a15750815b15612111578073ffffffffffffffffffffffffffffffffffffffff1663439fab9184604001516040518263ffffffff1660e01b81526004016120e39190613208565b5f604051808303815f87803b1580156120fa575f80fd5b505af115801561210c573d5f803e3d5ffd5b505050505b92915050565b5f6121225f83612129565b9050919050565b5f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f09050806121705763301164255f526004601cfd5b5f60215292915050565b6040518061012001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f67ffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b828054828255905f5260205f209081019282156122b6579160200282015b828111156122b5578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019061225e565b5b5090506122c391906122c7565b5090565b5b808211156122de575f815f9055506001016122c8565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b612305816122f3565b811461230f575f80fd5b50565b5f81359050612320816122fc565b92915050565b5f6020828403121561233b5761233a6122eb565b5b5f61234884828501612312565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61239361238e61238984612351565b612370565b612351565b9050919050565b5f6123a482612379565b9050919050565b5f6123b58261239a565b9050919050565b6123c5816123ab565b82525050565b5f6123d58261239a565b9050919050565b6123e5816123cb565b82525050565b5f6123f58261239a565b9050919050565b612405816123eb565b82525050565b5f61241582612379565b9050919050565b5f6124268261240b565b9050919050565b6124368161241c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f61246f8261239a565b9050919050565b61247f81612465565b82525050565b5f6124908383612476565b60208301905092915050565b5f602082019050919050565b5f6124b28261243c565b6124bc8185612446565b93506124c783612456565b805f5b838110156124f75781516124de8882612485565b97506124e98361249c565b9250506001810190506124ca565b5085935050505092915050565b5f67ffffffffffffffff82169050919050565b61252081612504565b82525050565b61252f816122f3565b82525050565b5f61253f82612351565b9050919050565b61254f81612535565b82525050565b5f61012083015f83015161256b5f8601826123bc565b50602083015161257e60208601826123dc565b50604083015161259160408601826123fc565b5060608301516125a4606086018261242d565b50608083015184820360808601526125bc82826124a8565b91505060a08301516125d160a0860182612517565b5060c08301516125e460c0860182612517565b5060e08301516125f760e0860182612526565b5061010083015161260c610100860182612546565b508091505092915050565b5f6020820190508181035f83015261262f8184612555565b905092915050565b61264081612535565b82525050565b5f6020820190506126595f830184612637565b92915050565b61266881612504565b8114612672575f80fd5b50565b5f813590506126838161265f565b92915050565b5f6020828403121561269e5761269d6122eb565b5b5f6126ab84828501612675565b91505092915050565b6126bd81612535565b81146126c7575f80fd5b50565b5f813590506126d8816126b4565b92915050565b5f602082840312156126f3576126f26122eb565b5b5f612700848285016126ca565b91505092915050565b612712816122f3565b82525050565b5f60208201905061272b5f830184612709565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261275257612751612731565b5b8235905067ffffffffffffffff81111561276f5761276e612735565b5b60208301915083600182028301111561278b5761278a612739565b5b9250929050565b5f805f805f8060a087890312156127ac576127ab6122eb565b5b5f6127b989828a01612312565b96505060206127ca89828a01612312565b95505060406127db89828a016126ca565b945050606087013567ffffffffffffffff8111156127fc576127fb6122ef565b5b61280889828a0161273d565b9350935050608061281b89828a016126ca565b9150509295509295509295565b5f6128328261239a565b9050919050565b61284281612828565b82525050565b5f60208201905061285b5f830184612839565b92915050565b61286a81612504565b82525050565b5f6020820190506128835f830184612861565b92915050565b5f805f805f608086880312156128a2576128a16122eb565b5b5f6128af88828901612312565b95505060206128c088828901612312565b94505060406128d1888289016126ca565b935050606086013567ffffffffffffffff8111156128f2576128f16122ef565b5b6128fe8882890161273d565b92509250509295509295909350565b5f6129178261239a565b9050919050565b6129278161290d565b82525050565b5f6020820190506129405f83018461291e565b92915050565b5f806020838503121561295c5761295b6122eb565b5b5f83013567ffffffffffffffff811115612979576129786122ef565b5b6129858582860161273d565b92509250509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6060820190506129d15f830186612637565b6129de6020830185612709565b6129eb6040830184612709565b949350505050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f612a2c83856129f3565b9350612a39838584612a03565b612a4283612a11565b840190509392505050565b5f608082019050612a605f830188612709565b612a6d6020830187612709565b612a7a6040830186612637565b8181036060830152612a8d818486612a21565b90509695505050505050565b5f8115159050919050565b612aad81612a99565b8114612ab7575f80fd5b50565b5f81519050612ac881612aa4565b92915050565b5f60208284031215612ae357612ae26122eb565b5b5f612af084828501612aba565b91505092915050565b5f604082019050612b0c5f830186612637565b8181036020830152612b1f818486612a21565b9050949350505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612b6382612a11565b810181811067ffffffffffffffff82111715612b8257612b81612b2d565b5b80604052505050565b5f612b946122e2565b9050612ba08282612b5a565b919050565b5f80fd5b5f612bb382612351565b9050919050565b5f612bc482612ba9565b9050919050565b612bd481612bba565b8114612bde575f80fd5b50565b5f81519050612bef81612bcb565b92915050565b5f81519050612c03816126b4565b92915050565b5f80fd5b5f67ffffffffffffffff821115612c2757612c26612b2d565b5b612c3082612a11565b9050602081019050919050565b8281835e5f83830152505050565b5f612c5d612c5884612c0d565b612b8b565b905082815260208101848484011115612c7957612c78612c09565b5b612c84848285612c3d565b509392505050565b5f82601f830112612ca057612c9f612731565b5b8151612cb0848260208601612c4b565b91505092915050565b5f60608284031215612cce57612ccd612b29565b5b612cd86060612b8b565b90505f612ce784828501612aba565b5f830152506020612cfa84828501612bf5565b602083015250604082015167ffffffffffffffff811115612d1e57612d1d612ba5565b5b612d2a84828501612c8c565b60408301525092915050565b5f67ffffffffffffffff821115612d5057612d4f612b2d565b5b602082029050602081019050919050565b5f612d73612d6e84612d36565b612b8b565b90508083825260208201905060208402830185811115612d9657612d95612739565b5b835b81811015612ddd57805167ffffffffffffffff811115612dbb57612dba612731565b5b808601612dc88982612cb9565b85526020850194505050602081019050612d98565b5050509392505050565b5f82601f830112612dfb57612dfa612731565b5b8151612e0b848260208601612d61565b91505092915050565b5f81519050612e228161265f565b92915050565b5f81519050612e36816122fc565b92915050565b5f6101208284031215612e5257612e51612b29565b5b612e5d610120612b8b565b90505f612e6c84828501612be1565b5f83015250602082015167ffffffffffffffff811115612e8f57612e8e612ba5565b5b612e9b84828501612cb9565b602083015250604082015167ffffffffffffffff811115612ebf57612ebe612ba5565b5b612ecb84828501612cb9565b604083015250606082015167ffffffffffffffff811115612eef57612eee612ba5565b5b612efb84828501612cb9565b606083015250608082015167ffffffffffffffff811115612f1f57612f1e612ba5565b5b612f2b84828501612de7565b60808301525060a0612f3f84828501612e14565b60a08301525060c0612f5384828501612e14565b60c08301525060e0612f6784828501612e28565b60e083015250610100612f7c84828501612bf5565b6101008301525092915050565b5f60208284031215612f9e57612f9d6122eb565b5b5f82015167ffffffffffffffff811115612fbb57612fba6122ef565b5b612fc784828501612e3c565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61300782612504565b915061301283612504565b9250828201905067ffffffffffffffff81111561303257613031612fd0565b5b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61306c81613038565b82525050565b5f6020820190506130855f830184613063565b92915050565b5f613095826122f3565b91506130a0836122f3565b92508282039050818111156130b8576130b7612fd0565b5b92915050565b5f6080820190506130d15f830187612709565b6130de6020830186612637565b6130eb6040830185612637565b6130f86060830184612637565b95945050505050565b5f61310b826122f3565b9150613116836122f3565b9250828202613124816122f3565b9150828204841483151761313b5761313a612fd0565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613179826122f3565b9150613184836122f3565b92508261319457613193613142565b5b828204905092915050565b5f6040820190506131b25f830185613063565b6131bf6020830184612637565b9392505050565b5f81519050919050565b5f6131da826131c6565b6131e481856129f3565b93506131f4818560208601612c3d565b6131fd81612a11565b840191505092915050565b5f6020820190508181035f83015261322081846131d0565b905092915050565b5f6020828403121561323d5761323c6122eb565b5b5f82015167ffffffffffffffff81111561325a576132596122ef565b5b61326684828501612c8c565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffdfea2646970667358221220a6183c86da5ac2a94caf1c18f200fbe18347be3f177f19dba5d5253c314dcfe064736f6c634300081a0033";function p(a){const e=a.state.current,f=a.state.connections.get(e),b=f==null?void 0:f.accounts,t=b==null?void 0:b[0],c=a.chains.find(i=>i.id===(f==null?void 0:f.chainId)),s=a.state.status;switch(s){case"connected":return{address:t,addresses:b,chain:c,chainId:f==null?void 0:f.chainId,connector:f==null?void 0:f.connector,isConnected:!0,isConnecting:!1,isDisconnected:!1,isReconnecting:!1,status:s};case"reconnecting":return{address:t,addresses:b,chain:c,chainId:f==null?void 0:f.chainId,connector:f==null?void 0:f.connector,isConnected:!!t,isConnecting:!1,isDisconnected:!1,isReconnecting:!0,status:s};case"connecting":return{address:t,addresses:b,chain:c,chainId:f==null?void 0:f.chainId,connector:f==null?void 0:f.connector,isConnected:!1,isConnecting:!0,isDisconnected:!1,isReconnecting:!1,status:s};case"disconnected":return{address:void 0,addresses:void 0,chain:void 0,chainId:void 0,connector:void 0,isConnected:!1,isConnecting:!1,isDisconnected:!0,isReconnecting:!1,status:s}}}function Cf(a){return a.state.chainId}function Q(a,e,f){const b=a[e.name];if(typeof b=="function")return b;const t=a[f];return typeof t=="function"?t:c=>e(a,c)}const yf="2.13.0",If=()=>`@wagmi/core@${yf}`;var J=function(a,e,f,b){if(f==="a"&&!b)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?a!==e||!b:!e.has(a))throw new TypeError("Cannot read private member from an object whose class did not declare it");return f==="m"?b:f==="a"?b.call(a):b?b.value:e.get(a)},q,K;class I extends Error{get docsBaseUrl(){return"https://wagmi.sh/core"}get version(){return If()}constructor(e,f={}){var c;super(),q.add(this),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"WagmiCoreError"});const b=f.cause instanceof I?f.cause.details:(c=f.cause)!=null&&c.message?f.cause.message:f.details,t=f.cause instanceof I&&f.cause.docsPath||f.docsPath;this.message=[e||"An error occurred.","",...f.metaMessages?[...f.metaMessages,""]:[],...t?[`Docs: ${this.docsBaseUrl}${t}.html${f.docsSlug?`#${f.docsSlug}`:""}`]:[],...b?[`Details: ${b}`]:[],`Version: ${this.version}`].join(`
2
+ `),f.cause&&(this.cause=f.cause),this.details=b,this.docsPath=t,this.metaMessages=f.metaMessages,this.shortMessage=e}walk(e){return J(this,q,"m",K).call(this,this,e)}}q=new WeakSet,K=function a(e,f){return f!=null&&f(e)?e:e.cause?J(this,q,"m",a).call(this,e.cause,f):e};class vf extends I{constructor(){super("Connector not connected."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorNotConnectedError"})}}class Bf extends I{constructor({address:e,connector:f}){super(`Account "${e}" not found for connector "${f.name}".`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorAccountNotFoundError"})}}class _f extends I{constructor({connectionChainId:e,connectorChainId:f}){super(`The current chain of the connector (id: ${f}) does not match the connection's chain (id: ${e}).`,{metaMessages:[`Current Chain ID: ${f}`,`Expected Chain ID: ${e}`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorChainMismatchError"})}}async function X(a,e={}){let f;if(e.connector){const{connector:n}=e,[u,g]=await Promise.all([n.getAccounts(),n.getChainId()]);f={accounts:u,chainId:g,connector:n}}else f=a.state.connections.get(a.state.current);if(!f)throw new vf;const b=e.chainId??f.chainId,t=await f.connector.getChainId();if(t!==f.chainId)throw new _f({connectionChainId:f.chainId,connectorChainId:t});const c=f.connector;if(c.getClient)return c.getClient({chainId:b});const s=G.parseAccount(e.account??f.accounts[0]);s.address=G.getAddress(s.address);const i=a.chains.find(n=>n.id===b),r=await f.connector.getProvider({chainId:b});if(e.account&&!f.accounts.some(n=>n.toLowerCase()===s.address.toLowerCase()))throw new Bf({address:s.address,connector:c});return d.createClient({account:s,chain:i,name:"Connector Client",transport:n=>d.custom(r)({...n,retryCount:0})})}async function Pf(a,e){const{abi:f,chainId:b,connector:t,...c}=e;let s;e.account?s=e.account:s=(await X(a,{chainId:b,connector:t})).account;const i=a.getClient({chainId:b}),r=Q(i,k.simulateContract,"simulateContract"),{result:n,request:u}=await r({...c,abi:f,account:s});return{chainId:i.chain.id,result:n,request:{__mode:"prepared",...u,chainId:b}}}async function U(a,e){const{account:f,chainId:b,connector:t,__mode:c,...s}=e;let i;typeof f=="object"&&f.type==="local"?i=a.getClient({chainId:b}):i=await X(a,{account:f,chainId:b,connector:t});const{connector:r}=p(a);let n;if(c==="prepared"||r!=null&&r.supportsSimulation)n=s;else{const{request:C}=await Pf(a,{...s,account:f,chainId:b});n=C}return await Q(i,k.writeContract,"writeContract")({...n,...f?{account:f}:{},chain:b?{id:b}:null})}function Ef(a){return a.address!==void 0&&typeof a.address=="object"?(e,f)=>{var s;const b=Cf(e),t=p(e);let c;return f.chainId?c=f.chainId:f.account&&f.account===t.address||f.account===void 0?c=t.chainId:c=b,U(e,{...f,...a.functionName?{functionName:a.functionName}:{},address:c?(s=a.address)==null?void 0:s[c]:void 0,abi:a.abi})}:(e,f)=>U(e,{...f,...a.address?{address:a.address}:{},...a.functionName?{functionName:a.functionName}:{},abi:a.abi})}const Rf=d.parseEther("0.000075"),qf=W.BoostCore[11155111],V={...W.BoostCore,31337:"0x0561e8fB1EFD614eb905CB93D548Bb217Ad07B92"};function Ff(a){return a.address}function Df(a){return a.registryAddress&&a.protocolFeeReceiver}const H=class H extends of.Deployable{get addresses(){return this.constructor.addresses}constructor({config:e,account:f,...b}){if(Ff(b)&&b.address)super({account:f,config:e},b.address);else if(Df(b))super({account:f,config:e},[b.registryAddress,b.protocolFeeReceiver]);else{const{address:t}=h.assertValidAddressByChainId(e,V);super({account:f,config:e},t)}this.abi=o.d}async createBoost(e,f){var N,x;const[b,t]=this.validateDeploymentConfig(e,f),c=((N=f==null?void 0:f.chain)==null?void 0:N.id)||(f==null?void 0:f.chainId),{chainId:s,address:i}=h.assertValidAddressByChainId(t.config,this.addresses,c);let{budget:r,action:n,validator:u,allowList:g,incentives:C,protocolFee:F=0n,referralFee:D=0n,maxParticipants:S=0n,owner:y}=b;const Y=Ef({abi:o.d,functionName:"createBoost",address:i});if(!y&&(y=((x=this._account)==null?void 0:x.address)||$.getAccount(t.config).address||d.zeroAddress,y===d.zeroAddress))throw new v.DeployableUnknownOwnerProvidedError;let M=d.zeroAddress;if(r.address){if(M=r.address,!await r.isAuthorized(i))throw new v.BudgetMustAuthorizeBoostCore(i)}else throw new v.MustInitializeBudgetError;let B={instance:d.zeroAddress,isBase:!0,parameters:d.zeroHash};if(n.address){const l=n.isBase;B={isBase:l,instance:n.address,parameters:l&&n.buildParameters(void 0,t).args.at(0)||d.zeroHash}}else B.parameters=n.buildParameters(void 0,t).args.at(0)||d.zeroHash,B.instance=h.assertValidAddressByChainId(t.config,n.bases,s).address;let _={instance:d.zeroAddress,isBase:!0,parameters:d.zeroHash};if(u.address){const l=u.isBase;_={isBase:l,instance:u.address,parameters:l&&u.buildParameters({signers:[y],validatorCaller:i},t).args.at(0)||d.zeroHash}}else _.parameters=u.buildParameters({signers:[y],validatorCaller:i},t).args.at(0)||d.zeroHash,_.instance=h.assertValidAddressByChainId(t.config,u.bases,s).address;let P={instance:d.zeroAddress,isBase:!0,parameters:d.zeroHash};if(g.address){const l=g.isBase;P={isBase:l,instance:g.address,parameters:d.zeroHash}}else P.parameters=g.buildParameters(void 0,t).args.at(0)||d.zeroHash,P.instance=h.assertValidAddressByChainId(t.config,g.bases,s).address;const E=C.map(()=>({instance:d.zeroAddress,isBase:!0,parameters:d.zeroHash}));for(let l=0;l<C.length;l++){const A=C.at(l);if(A.address){const m=A.isBase;if(!m)throw new v.IncentiveNotCloneableError(A);E[l]={isBase:m,instance:A.address,parameters:m&&A.buildParameters(void 0,t).args.at(0)||d.zeroHash}}else E[l].parameters=A.buildParameters(void 0,t).args.at(0)||d.zeroHash,E[l].instance=h.assertValidAddressByChainId(t.config,A.bases,s).address}const Z={budget:M,action:B,validator:_,allowList:P,incentives:E,protocolFee:F,referralFee:D,maxParticipants:S,owner:y},ff=await Y(t.config,{...this.optionallyAttachAccount(t.account),...f,chainId:s,args:[z.prepareBoostPayload(Z)]}),ef=await $.waitForTransactionReceipt(t.config,{hash:ff}),R=d.parseEventLogs({abi:o.d,eventName:"BoostCreated",logs:ef.logs}).at(0);let O=0n;if(!R)throw new v.BoostCoreNoIdentifierEmitted;O=R==null?void 0:R.args.boostIndex;const w=await this.readBoost(O);return new z.Boost({id:O,budget:r.at(w.budget),action:n.at(w.action),validator:u.at(w.validator),allowList:g.at(w.allowList),incentives:C.map((l,A)=>l.at(w.incentives.at(A))),protocolFee:w.protocolFee,referralFee:w.referralFee,maxParticipants:w.maxParticipants,owner:w.owner})}async claimIncentive(e,f,b,t,c){return await this.awaitResult(this.claimIncentiveRaw(e,f,b,t,c))}async claimIncentiveRaw(e,f,b,t,c){var n;const{request:s,result:i}=await o.Wl(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,((n=c==null?void 0:c.chain)==null?void 0:n.id)||(c==null?void 0:c.chainId)),args:[e,f,b,t],...this.optionallyAttachAccount(),...c});return{hash:await o.Hl(this._config,s),result:i}}async claimIncentiveFor(e,f,b,t,c,s){return await this.awaitResult(this.claimIncentiveForRaw(e,f,b,t,c,s))}async claimIncentiveForRaw(e,f,b,t,c,s){var u;const{request:i,result:r}=await o.Ql(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,((u=s==null?void 0:s.chain)==null?void 0:u.id)||(s==null?void 0:s.chainId)),args:[e,f,b,t,c],...this.optionallyAttachAccount(),...s});return{hash:await o.Vl(this._config,i),result:r}}async readBoost(e,f){return await o.gl(this._config,{address:this.assertValidAddress(),args:[e],...this.optionallyAttachAccount(),...f})}async getBoost(e,f){let b;typeof e=="string"?b=BigInt(e):b=e;const{protocolFee:t,referralFee:c,maxParticipants:s,owner:i,...r}=await this.readBoost(b,f),n={config:this._config,account:this._account},[u,g,C,F,D]=await Promise.all([bf.actionFromAddress(n,r.action),nf.budgetFromAddress(n,r.budget),wf.validatorFromAddress(n,r.validator),j.allowListFromAddress(n,r.allowList),Promise.all(r.incentives.map(S=>T.incentiveFromAddress(n,S)))]);return new z.Boost({id:b,action:u,budget:g,validator:C,allowList:F,incentives:D,protocolFee:t,referralFee:c,maxParticipants:s,owner:i})}async getBoostCount(e){return await o.Ml(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[],...this.optionallyAttachAccount(),...e})}async isAuthorized(e,f){const b=await this.createBoostAuth(f);return o.uv(this._config,{address:b,args:[e],...this.optionallyAttachAccount(),...f})}async createBoostAuth(e){return await o.hl(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[],...this.optionallyAttachAccount(),...e})}async setCreateBoostAuth(e,f){return await this.awaitResult(this.setCreateBoostAuthRaw(e.assertValidAddress(),{...f}))}async setCreateBoostAuthRaw(e,f){const{request:b,result:t}=await o.ty(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[e],...this.optionallyAttachAccount(),...f});return{hash:await o.Pl(this._config,b),result:t}}async protocolFee(e){return await o.El(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[],...this.optionallyAttachAccount(),...e})}async protocolFeeReceiver(e){return await o.Rl(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[],...this.optionallyAttachAccount(),...e})}async setProcolFeeReceiver(e,f){return await this.awaitResult(this.setProcolFeeReceiverRaw(e,{...f}))}async setProcolFeeReceiverRaw(e,f){const{request:b,result:t}=await o.ay(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[e],...this.optionallyAttachAccount(),...f});return{hash:await o.Ul(this._config,b),result:t}}async claimFee(e){return await o.Nl(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[],...this.optionallyAttachAccount(),...e})}async setClaimFee(e,f){return await this.awaitResult(this.setClaimFeeRaw(e,f))}async setClaimFeeRaw(e,f){const{request:b,result:t}=await o.ey(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[e],...this.optionallyAttachAccount(),...f});return{hash:await o.Dl(this._config,b),result:t}}PassthroughAuth(e){return new sf.PassthroughAuth({config:this._config,account:this._account},e)}EventAction(e,f){return new tf.EventAction({config:this._config,account:this._account},e,f)}OpenAllowList(e){return new j.OpenAllowList({config:this._config,account:this._account},void 0,e)}SimpleAllowList(e,f){return new af.SimpleAllowList({config:this._config,account:this._account},e,f)}SimpleDenyList(e,f){return new cf.SimpleDenyList({config:this._config,account:this._account},e,f)}ManagedBudget(e){return new df.ManagedBudget({config:this._config,account:this._account},e)}AllowListIncentive(e){return new rf.AllowListIncentive({config:this._config,account:this._account},e)}CGDAIncentive(e){return new uf.CGDAIncentive({config:this._config,account:this._account},e)}ERC20Incentive(e){return new lf.ERC20Incentive({config:this._config,account:this._account},e)}PointsIncentive(e){return new hf.PointsIncentive({config:this._config,account:this._account},e)}SignerValidator(e,f){return new gf.SignerValidator({config:this._config,account:this._account},e,f)}ERC20VariableIncentive(e,f){return new T.ERC20VariableIncentive({config:this._config,account:this._account},e,f)}buildParameters(e,f){const[b,t]=this.validateDeploymentConfig(e,f);return{abi:o.d,bytecode:Af,args:b,...this.optionallyAttachAccount(t.account)}}};H.addresses=V;let L=H;exports.boostCoreAbi=o.d;exports.BOOST_CORE_ADDRESS=qf;exports.BOOST_CORE_ADDRESSES=V;exports.BOOST_CORE_CLAIM_FEE=Rf;exports.BoostCore=L;
3
3
  //# sourceMappingURL=BoostCore.cjs.map