@boostxyz/sdk 0.0.0-alpha.17 → 0.0.0-alpha.18

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 (203) hide show
  1. package/dist/Actions/Action.cjs +1 -1
  2. package/dist/Actions/Action.cjs.map +1 -1
  3. package/dist/Actions/Action.js +13 -13
  4. package/dist/Actions/ContractAction.d.ts +9 -9
  5. package/dist/Actions/ContractAction.d.ts.map +1 -1
  6. package/dist/Actions/ERC721MintAction.d.ts +12 -12
  7. package/dist/Actions/ERC721MintAction.d.ts.map +1 -1
  8. package/dist/Actions/EventAction.cjs +1 -1
  9. package/dist/Actions/EventAction.cjs.map +1 -1
  10. package/dist/Actions/EventAction.d.ts +32 -49
  11. package/dist/Actions/EventAction.d.ts.map +1 -1
  12. package/dist/Actions/EventAction.js +13 -962
  13. package/dist/Actions/EventAction.js.map +1 -1
  14. package/dist/AllowLists/AllowList.cjs +1 -1
  15. package/dist/AllowLists/AllowList.js +3 -3
  16. package/dist/AllowLists/SimpleAllowList.cjs +1 -1
  17. package/dist/AllowLists/SimpleAllowList.cjs.map +1 -1
  18. package/dist/AllowLists/SimpleAllowList.d.ts +5 -5
  19. package/dist/AllowLists/SimpleAllowList.js +24 -24
  20. package/dist/AllowLists/SimpleAllowList.js.map +1 -1
  21. package/dist/AllowLists/SimpleDenyList.cjs +1 -1
  22. package/dist/AllowLists/SimpleDenyList.d.ts +6 -6
  23. package/dist/AllowLists/SimpleDenyList.js +3 -3
  24. package/dist/Auth/PassthroughAuth.cjs +1 -1
  25. package/dist/Auth/PassthroughAuth.js +1 -1
  26. package/dist/Boost.cjs.map +1 -1
  27. package/dist/Boost.d.ts +18 -0
  28. package/dist/Boost.d.ts.map +1 -1
  29. package/dist/Boost.js.map +1 -1
  30. package/dist/BoostCore-BiPwp6SR.cjs +3 -0
  31. package/dist/BoostCore-BiPwp6SR.cjs.map +1 -0
  32. package/dist/BoostCore-C00iqvks.js +1477 -0
  33. package/dist/BoostCore-C00iqvks.js.map +1 -0
  34. package/dist/BoostCore.cjs +1 -2
  35. package/dist/BoostCore.cjs.map +1 -1
  36. package/dist/BoostCore.d.ts +80 -35
  37. package/dist/BoostCore.d.ts.map +1 -1
  38. package/dist/BoostCore.js +29 -1273
  39. package/dist/BoostCore.js.map +1 -1
  40. package/dist/BoostRegistry.cjs +1 -1
  41. package/dist/BoostRegistry.cjs.map +1 -1
  42. package/dist/BoostRegistry.d.ts +18 -18
  43. package/dist/BoostRegistry.js +28 -28
  44. package/dist/BoostRegistry.js.map +1 -1
  45. package/dist/Budgets/Budget.cjs +1 -1
  46. package/dist/Budgets/Budget.js +2 -2
  47. package/dist/Budgets/ManagedBudget.cjs +1 -1
  48. package/dist/Budgets/ManagedBudget.cjs.map +1 -1
  49. package/dist/Budgets/ManagedBudget.d.ts +18 -18
  50. package/dist/Budgets/ManagedBudget.js +48 -48
  51. package/dist/Budgets/ManagedBudget.js.map +1 -1
  52. package/dist/Budgets/VestingBudget.d.ts +23 -23
  53. package/dist/Deployable/Contract.cjs +1 -1
  54. package/dist/Deployable/Contract.cjs.map +1 -1
  55. package/dist/Deployable/Contract.d.ts +4 -5
  56. package/dist/Deployable/Contract.d.ts.map +1 -1
  57. package/dist/Deployable/Contract.js +4 -5
  58. package/dist/Deployable/Contract.js.map +1 -1
  59. package/dist/Deployable/Deployable.cjs.map +1 -1
  60. package/dist/Deployable/Deployable.d.ts +1 -1
  61. package/dist/Deployable/Deployable.js +1 -1
  62. package/dist/Deployable/Deployable.js.map +1 -1
  63. package/dist/Deployable/DeployableTarget.cjs +1 -1
  64. package/dist/Deployable/DeployableTarget.cjs.map +1 -1
  65. package/dist/Deployable/DeployableTarget.d.ts +5 -5
  66. package/dist/Deployable/DeployableTarget.js +10 -10
  67. package/dist/Deployable/DeployableTarget.js.map +1 -1
  68. package/dist/Deployable/DeployableTargetWithRBAC.cjs +1 -1
  69. package/dist/Deployable/DeployableTargetWithRBAC.cjs.map +1 -1
  70. package/dist/Deployable/DeployableTargetWithRBAC.d.ts +15 -15
  71. package/dist/Deployable/DeployableTargetWithRBAC.js +32 -32
  72. package/dist/Deployable/DeployableTargetWithRBAC.js.map +1 -1
  73. package/dist/EventAction-BO5WI_5s.js +1355 -0
  74. package/dist/EventAction-BO5WI_5s.js.map +1 -0
  75. package/dist/EventAction-DBDRaG4A.cjs +2 -0
  76. package/dist/EventAction-DBDRaG4A.cjs.map +1 -0
  77. package/dist/{Incentive-DJf-vdyL.js → Incentive-CF7kaz_9.js} +61 -62
  78. package/dist/Incentive-CF7kaz_9.js.map +1 -0
  79. package/dist/{Incentive-DNwROd1r.cjs → Incentive-Djnzseoj.cjs} +2 -2
  80. package/dist/Incentive-Djnzseoj.cjs.map +1 -0
  81. package/dist/Incentives/AllowListIncentive.cjs +1 -1
  82. package/dist/Incentives/AllowListIncentive.cjs.map +1 -1
  83. package/dist/Incentives/AllowListIncentive.d.ts +12 -12
  84. package/dist/Incentives/AllowListIncentive.js +19 -19
  85. package/dist/Incentives/AllowListIncentive.js.map +1 -1
  86. package/dist/Incentives/CGDAIncentive.cjs +1 -1
  87. package/dist/Incentives/CGDAIncentive.cjs.map +1 -1
  88. package/dist/Incentives/CGDAIncentive.d.ts +15 -15
  89. package/dist/Incentives/CGDAIncentive.js +18 -18
  90. package/dist/Incentives/CGDAIncentive.js.map +1 -1
  91. package/dist/Incentives/ERC1155Incentive.d.ts +30 -30
  92. package/dist/Incentives/ERC20Incentive.cjs +1 -1
  93. package/dist/Incentives/ERC20Incentive.cjs.map +1 -1
  94. package/dist/Incentives/ERC20Incentive.d.ts +23 -23
  95. package/dist/Incentives/ERC20Incentive.js +25 -25
  96. package/dist/Incentives/ERC20Incentive.js.map +1 -1
  97. package/dist/Incentives/ERC20VariableCriteriaIncentive.d.ts +523 -0
  98. package/dist/Incentives/ERC20VariableCriteriaIncentive.d.ts.map +1 -0
  99. package/dist/Incentives/ERC20VariableIncentive.d.ts +19 -19
  100. package/dist/Incentives/Incentive.cjs +1 -1
  101. package/dist/Incentives/Incentive.d.ts +3 -3
  102. package/dist/Incentives/Incentive.d.ts.map +1 -1
  103. package/dist/Incentives/Incentive.js +3 -3
  104. package/dist/Incentives/PointsIncentive.cjs +1 -1
  105. package/dist/Incentives/PointsIncentive.cjs.map +1 -1
  106. package/dist/Incentives/PointsIncentive.d.ts +14 -14
  107. package/dist/Incentives/PointsIncentive.js +21 -21
  108. package/dist/Incentives/PointsIncentive.js.map +1 -1
  109. package/dist/{SimpleDenyList-DMlUkmAn.cjs → SimpleDenyList-BwfNjRsg.cjs} +2 -2
  110. package/dist/SimpleDenyList-BwfNjRsg.cjs.map +1 -0
  111. package/dist/{SimpleDenyList-DvUvmOeE.js → SimpleDenyList-D9i4rw_F.js} +9 -9
  112. package/dist/SimpleDenyList-D9i4rw_F.js.map +1 -0
  113. package/dist/Validators/SignerValidator.cjs +1 -1
  114. package/dist/Validators/SignerValidator.cjs.map +1 -1
  115. package/dist/Validators/SignerValidator.d.ts +14 -14
  116. package/dist/Validators/SignerValidator.js +19 -19
  117. package/dist/Validators/SignerValidator.js.map +1 -1
  118. package/dist/Validators/Validator.cjs +1 -1
  119. package/dist/Validators/Validator.cjs.map +1 -1
  120. package/dist/Validators/Validator.d.ts +1 -1
  121. package/dist/Validators/Validator.js +6 -6
  122. package/dist/Validators/Validator.js.map +1 -1
  123. package/dist/claiming.cjs.map +1 -1
  124. package/dist/claiming.d.ts +1 -1
  125. package/dist/claiming.js.map +1 -1
  126. package/dist/componentInterfaces-D09mhzxO.cjs +2 -0
  127. package/dist/componentInterfaces-D09mhzxO.cjs.map +1 -0
  128. package/dist/componentInterfaces-RXBMI5yH.js +14 -0
  129. package/dist/componentInterfaces-RXBMI5yH.js.map +1 -0
  130. package/dist/deployments-BM42vImE.js +43 -0
  131. package/dist/deployments-BM42vImE.js.map +1 -0
  132. package/dist/deployments-CMdF5uEC.cjs +2 -0
  133. package/dist/deployments-CMdF5uEC.cjs.map +1 -0
  134. package/dist/deployments.json +15 -12
  135. package/dist/errors.cjs +1 -1
  136. package/dist/errors.cjs.map +1 -1
  137. package/dist/errors.d.ts +132 -0
  138. package/dist/errors.d.ts.map +1 -1
  139. package/dist/errors.js +122 -36
  140. package/dist/errors.js.map +1 -1
  141. package/dist/generated-B0tk-c9b.cjs +3 -0
  142. package/dist/generated-B0tk-c9b.cjs.map +1 -0
  143. package/dist/{generated-C_7Jx3YG.js → generated-B8VWObPa.js} +631 -343
  144. package/dist/generated-B8VWObPa.js.map +1 -0
  145. package/dist/index.cjs +1 -1
  146. package/dist/index.d.ts +1 -0
  147. package/dist/index.d.ts.map +1 -1
  148. package/dist/index.js +133 -125
  149. package/dist/transfers.cjs.map +1 -1
  150. package/dist/transfers.d.ts +1 -1
  151. package/dist/transfers.js.map +1 -1
  152. package/dist/utils.cjs.map +1 -1
  153. package/dist/utils.d.ts +1 -1
  154. package/dist/utils.js.map +1 -1
  155. package/package.json +5 -5
  156. package/src/Actions/ContractAction.ts +9 -10
  157. package/src/Actions/ERC721MintAction.ts +12 -13
  158. package/src/Actions/EventAction.test.ts +45 -54
  159. package/src/Actions/EventAction.ts +100 -100
  160. package/src/AllowLists/SimpleAllowList.ts +5 -5
  161. package/src/AllowLists/SimpleDenyList.ts +6 -6
  162. package/src/Boost.ts +19 -0
  163. package/src/BoostCore.test.ts +117 -1
  164. package/src/BoostCore.ts +113 -54
  165. package/src/BoostRegistry.ts +18 -18
  166. package/src/Budgets/ManagedBudget.ts +18 -18
  167. package/src/Budgets/VestingBudget.ts +23 -23
  168. package/src/Deployable/Contract.ts +4 -5
  169. package/src/Deployable/Deployable.ts +1 -1
  170. package/src/Deployable/DeployableTarget.ts +5 -5
  171. package/src/Deployable/DeployableTargetWithRBAC.ts +15 -15
  172. package/src/Incentives/AllowListIncentive.ts +12 -12
  173. package/src/Incentives/CGDAIncentive.ts +15 -15
  174. package/src/Incentives/ERC1155Incentive.ts +26 -26
  175. package/src/Incentives/ERC20Incentive.ts +23 -23
  176. package/src/Incentives/ERC20VariableCriteriaIncentive.test.ts +184 -0
  177. package/src/Incentives/ERC20VariableCriteriaIncentive.ts +309 -0
  178. package/src/Incentives/ERC20VariableIncentive.ts +19 -19
  179. package/src/Incentives/Incentive.ts +6 -5
  180. package/src/Incentives/PointsIncentive.test.ts +21 -21
  181. package/src/Incentives/PointsIncentive.ts +14 -14
  182. package/src/Validators/SignerValidator.ts +14 -14
  183. package/src/Validators/Validator.ts +1 -1
  184. package/src/claiming.ts +1 -1
  185. package/src/errors.ts +165 -0
  186. package/src/index.ts +1 -0
  187. package/src/transfers.ts +1 -1
  188. package/src/utils.ts +1 -1
  189. package/dist/Incentive-DJf-vdyL.js.map +0 -1
  190. package/dist/Incentive-DNwROd1r.cjs.map +0 -1
  191. package/dist/SimpleDenyList-DMlUkmAn.cjs.map +0 -1
  192. package/dist/SimpleDenyList-DvUvmOeE.js.map +0 -1
  193. package/dist/componentInterfaces-BPVR_Ykd.js +0 -13
  194. package/dist/componentInterfaces-BPVR_Ykd.js.map +0 -1
  195. package/dist/componentInterfaces-BfppSIl4.cjs +0 -2
  196. package/dist/componentInterfaces-BfppSIl4.cjs.map +0 -1
  197. package/dist/deployments-BvFcK_eR.js +0 -40
  198. package/dist/deployments-BvFcK_eR.js.map +0 -1
  199. package/dist/deployments-Ho4PnGCS.cjs +0 -2
  200. package/dist/deployments-Ho4PnGCS.cjs.map +0 -1
  201. package/dist/generated-CMQ6ZC2_.cjs +0 -3
  202. package/dist/generated-CMQ6ZC2_.cjs.map +0 -1
  203. package/dist/generated-C_7Jx3YG.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"BoostCore.js","sources":["../../../node_modules/.pnpm/@wagmi+core@2.13.8_@tanstack+query-core@5.32.0_@types+react@18.3.0_immer@10.0.2_react@18.3.0__rf4knvbttxkigkqzlfrm4rcvsi/node_modules/@wagmi/core/dist/esm/actions/getAccount.js","../../../node_modules/.pnpm/@wagmi+core@2.13.8_@tanstack+query-core@5.32.0_@types+react@18.3.0_immer@10.0.2_react@18.3.0__rf4knvbttxkigkqzlfrm4rcvsi/node_modules/@wagmi/core/dist/esm/actions/getChainId.js","../../../node_modules/.pnpm/@wagmi+core@2.13.8_@tanstack+query-core@5.32.0_@types+react@18.3.0_immer@10.0.2_react@18.3.0__rf4knvbttxkigkqzlfrm4rcvsi/node_modules/@wagmi/core/dist/esm/utils/getAction.js","../../../node_modules/.pnpm/@wagmi+core@2.13.8_@tanstack+query-core@5.32.0_@types+react@18.3.0_immer@10.0.2_react@18.3.0__rf4knvbttxkigkqzlfrm4rcvsi/node_modules/@wagmi/core/dist/esm/version.js","../../../node_modules/.pnpm/@wagmi+core@2.13.8_@tanstack+query-core@5.32.0_@types+react@18.3.0_immer@10.0.2_react@18.3.0__rf4knvbttxkigkqzlfrm4rcvsi/node_modules/@wagmi/core/dist/esm/utils/getVersion.js","../../../node_modules/.pnpm/@wagmi+core@2.13.8_@tanstack+query-core@5.32.0_@types+react@18.3.0_immer@10.0.2_react@18.3.0__rf4knvbttxkigkqzlfrm4rcvsi/node_modules/@wagmi/core/dist/esm/errors/base.js","../../../node_modules/.pnpm/@wagmi+core@2.13.8_@tanstack+query-core@5.32.0_@types+react@18.3.0_immer@10.0.2_react@18.3.0__rf4knvbttxkigkqzlfrm4rcvsi/node_modules/@wagmi/core/dist/esm/errors/config.js","../../../node_modules/.pnpm/@wagmi+core@2.13.8_@tanstack+query-core@5.32.0_@types+react@18.3.0_immer@10.0.2_react@18.3.0__rf4knvbttxkigkqzlfrm4rcvsi/node_modules/@wagmi/core/dist/esm/actions/getConnectorClient.js","../../../node_modules/.pnpm/@wagmi+core@2.13.8_@tanstack+query-core@5.32.0_@types+react@18.3.0_immer@10.0.2_react@18.3.0__rf4knvbttxkigkqzlfrm4rcvsi/node_modules/@wagmi/core/dist/esm/actions/simulateContract.js","../../../node_modules/.pnpm/@wagmi+core@2.13.8_@tanstack+query-core@5.32.0_@types+react@18.3.0_immer@10.0.2_react@18.3.0__rf4knvbttxkigkqzlfrm4rcvsi/node_modules/@wagmi/core/dist/esm/actions/writeContract.js","../../../node_modules/.pnpm/@wagmi+core@2.13.8_@tanstack+query-core@5.32.0_@types+react@18.3.0_immer@10.0.2_react@18.3.0__rf4knvbttxkigkqzlfrm4rcvsi/node_modules/@wagmi/core/dist/esm/actions/codegen/createWriteContract.js","../src/BoostCore.ts"],"sourcesContent":["/** https://wagmi.sh/core/api/actions/getAccount */\nexport function getAccount(config) {\n const uid = config.state.current;\n const connection = config.state.connections.get(uid);\n const addresses = connection?.accounts;\n const address = addresses?.[0];\n const chain = config.chains.find((chain) => chain.id === connection?.chainId);\n const status = config.state.status;\n switch (status) {\n case 'connected':\n return {\n address: address,\n addresses: addresses,\n chain,\n chainId: connection?.chainId,\n connector: connection?.connector,\n isConnected: true,\n isConnecting: false,\n isDisconnected: false,\n isReconnecting: false,\n status,\n };\n case 'reconnecting':\n return {\n address,\n addresses,\n chain,\n chainId: connection?.chainId,\n connector: connection?.connector,\n isConnected: !!address,\n isConnecting: false,\n isDisconnected: false,\n isReconnecting: true,\n status,\n };\n case 'connecting':\n return {\n address,\n addresses,\n chain,\n chainId: connection?.chainId,\n connector: connection?.connector,\n isConnected: false,\n isConnecting: true,\n isDisconnected: false,\n isReconnecting: false,\n status,\n };\n case 'disconnected':\n return {\n address: undefined,\n addresses: undefined,\n chain: undefined,\n chainId: undefined,\n connector: undefined,\n isConnected: false,\n isConnecting: false,\n isDisconnected: true,\n isReconnecting: false,\n status,\n };\n }\n}\n//# sourceMappingURL=getAccount.js.map","/** https://wagmi.sh/core/api/actions/getChainId */\nexport function getChainId(config) {\n return config.state.chainId;\n}\n//# sourceMappingURL=getChainId.js.map","/**\n * Retrieves and returns an action from the client (if exists), and falls\n * back to the tree-shakable action.\n *\n * Useful for extracting overridden actions from a client (ie. if a consumer\n * wants to override the `sendTransaction` implementation).\n */\nexport function getAction(client, actionFn, \n// Some minifiers drop `Function.prototype.name`, or replace it with short letters,\n// meaning that `actionFn.name` will not always work. For that case, the consumer\n// needs to pass the name explicitly.\nname) {\n const action_implicit = client[actionFn.name];\n if (typeof action_implicit === 'function')\n return action_implicit;\n const action_explicit = client[name];\n if (typeof action_explicit === 'function')\n return action_explicit;\n return (params) => actionFn(client, params);\n}\n//# sourceMappingURL=getAction.js.map","export const version = '2.13.8';\n//# sourceMappingURL=version.js.map","import { version } from '../version.js';\nexport const getVersion = () => `@wagmi/core@${version}`;\n//# sourceMappingURL=getVersion.js.map","var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _BaseError_instances, _BaseError_walk;\nimport { getVersion } from '../utils/getVersion.js';\nexport class BaseError extends Error {\n get docsBaseUrl() {\n return 'https://wagmi.sh/core';\n }\n get version() {\n return getVersion();\n }\n constructor(shortMessage, options = {}) {\n super();\n _BaseError_instances.add(this);\n Object.defineProperty(this, \"details\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"docsPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"metaMessages\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"shortMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'WagmiCoreError'\n });\n const details = options.cause instanceof BaseError\n ? options.cause.details\n : options.cause?.message\n ? options.cause.message\n : options.details;\n const docsPath = options.cause instanceof BaseError\n ? options.cause.docsPath || options.docsPath\n : options.docsPath;\n this.message = [\n shortMessage || 'An error occurred.',\n '',\n ...(options.metaMessages ? [...options.metaMessages, ''] : []),\n ...(docsPath\n ? [\n `Docs: ${this.docsBaseUrl}${docsPath}.html${options.docsSlug ? `#${options.docsSlug}` : ''}`,\n ]\n : []),\n ...(details ? [`Details: ${details}`] : []),\n `Version: ${this.version}`,\n ].join('\\n');\n if (options.cause)\n this.cause = options.cause;\n this.details = details;\n this.docsPath = docsPath;\n this.metaMessages = options.metaMessages;\n this.shortMessage = shortMessage;\n }\n walk(fn) {\n return __classPrivateFieldGet(this, _BaseError_instances, \"m\", _BaseError_walk).call(this, this, fn);\n }\n}\n_BaseError_instances = new WeakSet(), _BaseError_walk = function _BaseError_walk(err, fn) {\n if (fn?.(err))\n return err;\n if (err.cause)\n return __classPrivateFieldGet(this, _BaseError_instances, \"m\", _BaseError_walk).call(this, err.cause, fn);\n return err;\n};\n//# sourceMappingURL=base.js.map","import { BaseError } from './base.js';\nexport class ChainNotConfiguredError extends BaseError {\n constructor() {\n super('Chain not configured.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ChainNotConfiguredError'\n });\n }\n}\nexport class ConnectorAlreadyConnectedError extends BaseError {\n constructor() {\n super('Connector already connected.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ConnectorAlreadyConnectedError'\n });\n }\n}\nexport class ConnectorNotConnectedError extends BaseError {\n constructor() {\n super('Connector not connected.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ConnectorNotConnectedError'\n });\n }\n}\nexport class ConnectorNotFoundError extends BaseError {\n constructor() {\n super('Connector not found.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ConnectorNotFoundError'\n });\n }\n}\nexport class ConnectorAccountNotFoundError extends BaseError {\n constructor({ address, connector, }) {\n super(`Account \"${address}\" not found for connector \"${connector.name}\".`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ConnectorAccountNotFoundError'\n });\n }\n}\nexport class ConnectorChainMismatchError extends BaseError {\n constructor({ connectionChainId, connectorChainId, }) {\n super(`The current chain of the connector (id: ${connectorChainId}) does not match the connection's chain (id: ${connectionChainId}).`, {\n metaMessages: [\n `Current Chain ID: ${connectorChainId}`,\n `Expected Chain ID: ${connectionChainId}`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ConnectorChainMismatchError'\n });\n }\n}\nexport class ConnectorUnavailableReconnectingError extends BaseError {\n constructor({ connector }) {\n super(`Connector \"${connector.name}\" unavailable while reconnecting.`, {\n details: [\n 'During the reconnection step, the only connector methods guaranteed to be available are: `id`, `name`, `type`, `uuid`.',\n 'All other methods are not guaranteed to be available until reconnection completes and connectors are fully restored.',\n 'This error commonly occurs for connectors that asynchronously inject after reconnection has already started.',\n ].join(' '),\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ConnectorUnavailableReconnectingError'\n });\n }\n}\n//# sourceMappingURL=config.js.map","import { createClient, custom, } from 'viem';\nimport { getAddress, parseAccount } from 'viem/utils';\nimport { ConnectorAccountNotFoundError, ConnectorChainMismatchError, ConnectorNotConnectedError, ConnectorUnavailableReconnectingError, } from '../errors/config.js';\n/** https://wagmi.sh/core/api/actions/getConnectorClient */\nexport async function getConnectorClient(config, parameters = {}) {\n // Get connection\n let connection;\n if (parameters.connector) {\n const { connector } = parameters;\n if (config.state.status === 'reconnecting' &&\n !connector.getAccounts &&\n !connector.getChainId)\n throw new ConnectorUnavailableReconnectingError({ connector });\n const [accounts, chainId] = await Promise.all([\n connector.getAccounts(),\n connector.getChainId(),\n ]);\n connection = {\n accounts: accounts,\n chainId,\n connector,\n };\n }\n else\n connection = config.state.connections.get(config.state.current);\n if (!connection)\n throw new ConnectorNotConnectedError();\n const chainId = parameters.chainId ?? connection.chainId;\n // Check connector using same chainId as connection\n const connectorChainId = await connection.connector.getChainId();\n if (connectorChainId !== connection.chainId)\n throw new ConnectorChainMismatchError({\n connectionChainId: connection.chainId,\n connectorChainId,\n });\n const connector = connection.connector;\n if (connector.getClient)\n return connector.getClient({ chainId });\n // Default using `custom` transport\n const account = parseAccount(parameters.account ?? connection.accounts[0]);\n account.address = getAddress(account.address); // TODO: Checksum address as part of `parseAccount`?\n // If account was provided, check that it exists on the connector\n if (parameters.account &&\n !connection.accounts.some((x) => x.toLowerCase() === account.address.toLowerCase()))\n throw new ConnectorAccountNotFoundError({\n address: account.address,\n connector,\n });\n const chain = config.chains.find((chain) => chain.id === chainId);\n const provider = (await connection.connector.getProvider({ chainId }));\n return createClient({\n account,\n chain,\n name: 'Connector Client',\n transport: (opts) => custom(provider)({ ...opts, retryCount: 0 }),\n });\n}\n//# sourceMappingURL=getConnectorClient.js.map","import { simulateContract as viem_simulateContract, } from 'viem/actions';\nimport { getAction } from '../utils/getAction.js';\nimport { getConnectorClient, } from './getConnectorClient.js';\n/** https://wagmi.sh/core/api/actions/simulateContract */\nexport async function simulateContract(config, parameters) {\n const { abi, chainId, connector, ...rest } = parameters;\n let account;\n if (parameters.account)\n account = parameters.account;\n else {\n const connectorClient = await getConnectorClient(config, {\n chainId,\n connector,\n });\n account = connectorClient.account;\n }\n const client = config.getClient({ chainId });\n const action = getAction(client, viem_simulateContract, 'simulateContract');\n const { result, request } = await action({ ...rest, abi, account });\n return {\n chainId: client.chain.id,\n result,\n request: { __mode: 'prepared', ...request, chainId },\n };\n}\n//# sourceMappingURL=simulateContract.js.map","import { writeContract as viem_writeContract, } from 'viem/actions';\nimport { getAction } from '../utils/getAction.js';\nimport { getAccount } from './getAccount.js';\nimport { getConnectorClient, } from './getConnectorClient.js';\nimport { simulateContract, } from './simulateContract.js';\n/** https://wagmi.sh/core/api/actions/writeContract */\nexport async function writeContract(config, parameters) {\n const { account, chainId, connector, __mode, ...rest } = parameters;\n let client;\n if (typeof account === 'object' && account.type === 'local')\n client = config.getClient({ chainId });\n else\n client = await getConnectorClient(config, { account, chainId, connector });\n const { connector: activeConnector } = getAccount(config);\n let request;\n if (__mode === 'prepared' || activeConnector?.supportsSimulation)\n request = rest;\n else {\n const { request: simulateRequest } = await simulateContract(config, {\n ...rest,\n account,\n chainId,\n });\n request = simulateRequest;\n }\n const action = getAction(client, viem_writeContract, 'writeContract');\n const hash = await action({\n ...request,\n ...(account ? { account } : {}),\n chain: chainId ? { id: chainId } : null,\n });\n return hash;\n}\n//# sourceMappingURL=writeContract.js.map","import { getAccount } from '../getAccount.js';\nimport { getChainId } from '../getChainId.js';\nimport { writeContract, } from '../writeContract.js';\nexport function createWriteContract(c) {\n if (c.address !== undefined && typeof c.address === 'object')\n return (config, parameters) => {\n const configChainId = getChainId(config);\n const account = getAccount(config);\n let chainId;\n if (parameters.chainId)\n chainId = parameters.chainId;\n else if (parameters\n .account &&\n parameters\n .account === account.address)\n chainId = account.chainId;\n else if (parameters\n .account === undefined)\n chainId = account.chainId;\n else\n chainId = configChainId;\n return writeContract(config, {\n ...parameters,\n ...(c.functionName ? { functionName: c.functionName } : {}),\n address: chainId ? c.address?.[chainId] : undefined,\n abi: c.abi,\n });\n };\n return (config, parameters) => {\n return writeContract(config, {\n ...parameters,\n ...(c.address ? { address: c.address } : {}),\n ...(c.functionName ? { functionName: c.functionName } : {}),\n abi: c.abi,\n });\n };\n}\n//# sourceMappingURL=createWriteContract.js.map","import {\n boostCoreAbi,\n type iAuthAbi,\n readBoostCoreClaimFee,\n readBoostCoreCreateBoostAuth,\n readBoostCoreGetBoost,\n readBoostCoreGetBoostCount,\n readBoostCoreProtocolFee,\n readBoostCoreProtocolFeeReceiver,\n readIAuthIsAuthorized,\n simulateBoostCoreClaimIncentive,\n simulateBoostCoreClaimIncentiveFor,\n simulateBoostCoreSetClaimFee,\n simulateBoostCoreSetCreateBoostAuth,\n simulateBoostCoreSetProtocolFeeReceiver,\n writeBoostCoreClaimIncentive,\n writeBoostCoreClaimIncentiveFor,\n writeBoostCoreSetClaimFee,\n writeBoostCoreSetCreateBoostAuth,\n writeBoostCoreSetProtocolFeeReceiver,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/BoostCore.sol/BoostCore.json';\nimport { getAccount, waitForTransactionReceipt } from '@wagmi/core';\nimport { createWriteContract } from '@wagmi/core/codegen';\nimport {\n type Address,\n type ContractEventName,\n type Hex,\n parseEther,\n parseEventLogs,\n zeroAddress,\n zeroHash,\n} from 'viem';\nimport { BoostCore as BoostCoreBases } from '../dist/deployments.json';\nimport { type Action, actionFromAddress } from './Actions/Action';\nimport { EventAction, type EventActionPayload } from './Actions/EventAction';\nimport { type AllowList, allowListFromAddress } from './AllowLists/AllowList';\nimport { OpenAllowList } from './AllowLists/OpenAllowList';\nimport {\n SimpleAllowList,\n type SimpleAllowListPayload,\n} from './AllowLists/SimpleAllowList';\nimport {\n SimpleDenyList,\n type SimpleDenyListPayload,\n} from './AllowLists/SimpleDenyList';\nimport { type Auth, PassthroughAuth } from './Auth/Auth';\nimport {\n Boost,\n type BoostPayload,\n type Target,\n prepareBoostPayload,\n} from './Boost';\nimport { type Budget, budgetFromAddress } from './Budgets/Budget';\nimport {\n ManagedBudget,\n type ManagedBudgetPayload,\n} from './Budgets/ManagedBudget';\nimport {\n Deployable,\n type DeployableOptions,\n type DeployablePayloadOrAddress,\n type GenericDeployableParams,\n} from './Deployable/Deployable';\nimport {\n AllowListIncentive,\n type AllowListIncentivePayload,\n} from './Incentives/AllowListIncentive';\nimport {\n CGDAIncentive,\n type CGDAIncentivePayload,\n} from './Incentives/CGDAIncentive';\nimport {\n ERC20Incentive,\n type ERC20IncentivePayload,\n} from './Incentives/ERC20Incentive';\nimport type { ERC20VariableIncentivePayload } from './Incentives/ERC20VariableIncentive';\nimport {\n ERC20VariableIncentive,\n type Incentive,\n incentiveFromAddress,\n} from './Incentives/Incentive';\nimport {\n PointsIncentive,\n type PointsIncentivePayload,\n} from './Incentives/PointsIncentive';\nimport {\n SignerValidator,\n type SignerValidatorPayload,\n} from './Validators/SignerValidator';\nimport { type Validator, validatorFromAddress } from './Validators/Validator';\nimport {\n BoostCoreNoIdentifierEmitted,\n BudgetMustAuthorizeBoostCore,\n DeployableUnknownOwnerProvidedError,\n IncentiveNotCloneableError,\n MustInitializeBudgetError,\n} from './errors';\nimport {\n type GenericLog,\n type ReadParams,\n type WriteParams,\n assertValidAddressByChainId,\n} from './utils';\n\nexport { boostCoreAbi };\n\n/**\n * The fee (in wei) required to claim each incentive, must be provided for the `claimIncentive` transaction\n *\n * @type {bigint}\n */\nexport const BOOST_CORE_CLAIM_FEE = parseEther('0.000075');\n\n/**\n * The address of the deployed BoostCore instance. In prerelease mode, this will be its sepolia address\n *\n * @type {Address}\n */\nexport const BOOST_CORE_ADDRESS = (BoostCoreBases as Record<string, Address>)[\n __DEFAULT_CHAIN_ID__\n];\n\n/**\n * The fixed addresses for the deployed Boost Core.\n * By default, `new BoostCore` will use the address deployed to the currently connected chain, or `BOOST_CORE_ADDRESS` if not provided.\n *\n * @type {Record<number, Address>}\n */\nexport const BOOST_CORE_ADDRESSES: Record<number, Address> = {\n ...(BoostCoreBases as Record<number, Address>),\n 31337: import.meta.env.VITE_BOOST_CORE_ADDRESS,\n};\n\n/**\n * A generic `viem.Log` event with support for `BoostCore` event types.\n *\n * @export\n * @typedef {BoostCoreLog}\n * @template {ContractEventName<typeof boostCoreAbi>} [event=ContractEventName<\n * typeof boostCoreAbi\n * >]\n */\nexport type BoostCoreLog<\n event extends ContractEventName<typeof boostCoreAbi> = ContractEventName<\n typeof boostCoreAbi\n >,\n> = GenericLog<typeof boostCoreAbi, event>;\n\n/**\n * Boost Core instantiation options for a custom deployed instance.\n *\n * @export\n * @interface BoostCoreDeployedOptions\n * @typedef {BoostCoreDeployedOptions}\n * @extends {DeployableOptions}\n */\nexport interface BoostCoreDeployedOptions extends DeployableOptions {\n /**\n * The address of a deployed, custom Boost Core contract.\n *\n * @type {?Address}\n */\n address?: Address;\n}\n\n/**\n * Typeguard to determine if a user is supplying a custom address for a Boost Core contract.\n *\n * @param {*} opts\n * @returns {opts is BoostCoreDeployedOptions}\n */\n// biome-ignore lint/suspicious/noExplicitAny: type guard\nfunction isBoostCoreDeployed(opts: any): opts is BoostCoreDeployedOptions {\n return opts.address;\n}\n\n/**\n * Boost Core instantiation options when a user intends to deploy a new instance of Boost Core, setting their own registry address and protocol fee receiver.\n *\n * @export\n * @interface BoostCoreOptionsWithPayload\n * @typedef {BoostCoreOptionsWithPayload}\n * @extends {DeployableOptions}\n */\nexport interface BoostCoreOptionsWithPayload extends DeployableOptions {\n /**\n * The address of a deployed Boost Registry contract.\n *\n * @type {Address}\n */\n registryAddress: Address;\n /**\n * The address to send fees.\n *\n * @type {Address}\n */\n protocolFeeReceiver: Address;\n}\n\n/**\n * Typeguard to determine if a user is intending to deploy a new instance of the Boost Core contracts with {@link BoostCoreOptionsWithPayload}.\n *\n * @param {*} opts\n * @returns {opts is BoostCoreOptionsWithPayload}\n */\n// biome-ignore lint/suspicious/noExplicitAny: type guard\nfunction isBoostCoreDeployable(opts: any): opts is BoostCoreOptionsWithPayload {\n return opts.registryAddress && opts.protocolFeeReceiver;\n}\n\n/**\n * A union representing both of the valid Boost Core instantiation parameters.\n *\n * @export\n * @typedef {BoostCoreConfig}\n */\nexport type BoostCoreConfig =\n | BoostCoreDeployedOptions\n | BoostCoreOptionsWithPayload;\n\n/**\n * The interface required to create a new Boost.\n *\n * @export\n * @typedef {CreateBoostPayload}\n */\nexport type CreateBoostPayload = {\n budget: Budget;\n action: Action;\n validator: Validator;\n allowList: AllowList;\n incentives: Array<Incentive>;\n protocolFee?: bigint;\n referralFee?: bigint;\n maxParticipants?: bigint;\n owner?: Address;\n};\n\n/**\n * The core contract for the Boost protocol. Used to create and retrieve deployed Boosts.\n *\n * @export\n * @class BoostCore\n * @typedef {BoostCore}\n * @extends {Deployable<[Address, Address]>}\n */\nexport class BoostCore extends Deployable<\n [Address, Address],\n typeof boostCoreAbi\n> {\n /**\n * A static property representing a map of stringified chain ID's to the address of the deployed implementation on chain\n *\n * @static\n * @readonly\n * @type {Record<string, Address>}\n */\n static readonly addresses: Record<number, Address> = BOOST_CORE_ADDRESSES;\n\n /**\n * A getter that will return Boost core's static addresses by numerical chain ID\n *\n * @public\n * @readonly\n * @type {Record<number, Address>}\n */\n public get addresses(): Record<number, Address> {\n return (this.constructor as typeof BoostCore).addresses;\n }\n\n /**\n * Creates an instance of BoostCore.\n *\n * @constructor\n * @param {BoostCoreConfig} param0\n * @param {Config} param0.config\n * @param {?Account} [param0.account]\n * @param {({ address?: Address; } | { registryAddress: Address; protocolFeeReceiver: Address; })} param0....options\n */\n constructor({ config, account, ...options }: BoostCoreConfig) {\n if (isBoostCoreDeployed(options) && options.address) {\n super({ account, config }, options.address);\n } else if (isBoostCoreDeployable(options)) {\n super({ account, config }, [\n options.registryAddress,\n options.protocolFeeReceiver,\n ]);\n } else {\n const { address } = assertValidAddressByChainId(\n config,\n BOOST_CORE_ADDRESSES,\n );\n super({ account, config }, address);\n }\n //@ts-expect-error I can't set this property on the class because for some reason it takes super out of constructor scope?\n this.abi = boostCoreAbi;\n }\n /**\n * Create a new Boost.\n *\n * @public\n * @async\n * @param {CreateBoostPayload} _boostPayload\n * @param {?DeployableOptions} [_options]\n * @returns {Boost}\n */\n public async createBoost(\n _boostPayload: CreateBoostPayload,\n _params?: DeployableOptions &\n WriteParams<typeof boostCoreAbi, 'createBoost'>,\n ) {\n const [payload, options] =\n this.validateDeploymentConfig<CreateBoostPayload>(_boostPayload, _params);\n const desiredChainId = _params?.chain?.id || _params?.chainId;\n const { chainId, address: coreAddress } = assertValidAddressByChainId(\n options.config,\n this.addresses,\n desiredChainId,\n );\n\n let {\n budget,\n action,\n validator,\n allowList,\n incentives,\n protocolFee = 0n,\n referralFee = 0n,\n maxParticipants = 0n,\n owner,\n } = payload;\n\n const boostFactory = createWriteContract({\n abi: boostCoreAbi,\n functionName: 'createBoost',\n address: coreAddress,\n });\n\n if (!owner) {\n owner =\n this._account?.address ||\n getAccount(options.config).address ||\n zeroAddress;\n if (owner === zeroAddress) {\n throw new DeployableUnknownOwnerProvidedError();\n }\n }\n\n let budgetPayload: BoostPayload['budget'] = zeroAddress;\n if (budget.address) {\n budgetPayload = budget.address;\n if (!(await budget.isAuthorized(coreAddress))) {\n throw new BudgetMustAuthorizeBoostCore(coreAddress);\n }\n } else {\n throw new MustInitializeBudgetError();\n }\n\n // if we're supplying an address, it could be a pre-initialized target\n // if base is explicitly set to false, then it will not be initialized, and it will be referenced as is if it implements interface correctly\n let actionPayload: BoostPayload['action'] = {\n instance: zeroAddress,\n isBase: true,\n parameters: zeroHash,\n };\n if (action.address) {\n const isBase = action.isBase;\n actionPayload = {\n isBase: isBase,\n instance: action.address,\n parameters: isBase\n ? action.buildParameters(undefined, options).args.at(0) || zeroHash\n : zeroHash,\n };\n } else {\n actionPayload.parameters =\n action.buildParameters(undefined, options).args.at(0) || zeroHash;\n actionPayload.instance = assertValidAddressByChainId(\n options.config,\n action.bases,\n chainId,\n ).address;\n }\n\n let validatorPayload: BoostPayload['validator'] = {\n instance: zeroAddress,\n isBase: true,\n parameters: zeroHash,\n };\n if (validator.address) {\n const isBase = validator.isBase;\n validatorPayload = {\n isBase: isBase,\n instance: validator.address,\n parameters: isBase\n ? validator\n .buildParameters(\n {\n signers: [owner],\n validatorCaller: coreAddress,\n },\n options,\n )\n .args.at(0) || zeroHash\n : zeroHash,\n };\n } else {\n validatorPayload.parameters =\n validator\n .buildParameters(\n {\n signers: [owner],\n validatorCaller: coreAddress,\n },\n options,\n )\n .args.at(0) || zeroHash;\n validatorPayload.instance = assertValidAddressByChainId(\n options.config,\n validator.bases,\n chainId,\n ).address;\n }\n\n let allowListPayload: BoostPayload['allowList'] = {\n instance: zeroAddress,\n isBase: true,\n parameters: zeroHash,\n };\n if (allowList.address) {\n const isBase = allowList.isBase;\n allowListPayload = {\n isBase: isBase,\n instance: allowList.address,\n parameters: isBase\n ? zeroHash // allowList.buildParameters(undefined, options).args.at(0) || zeroHash\n : zeroHash,\n };\n } else {\n allowListPayload.parameters =\n allowList.buildParameters(undefined, options).args.at(0) || zeroHash;\n allowListPayload.instance = assertValidAddressByChainId(\n options.config,\n allowList.bases,\n chainId,\n ).address;\n }\n\n const incentivesPayloads: Array<Target> = incentives.map(() => ({\n instance: zeroAddress,\n isBase: true,\n parameters: zeroHash,\n }));\n for (let i = 0; i < incentives.length; i++) {\n // biome-ignore lint/style/noNonNullAssertion: this will never be undefined\n const incentive = incentives.at(i)!;\n if (incentive.address) {\n const isBase = incentive.isBase;\n if (!isBase) throw new IncentiveNotCloneableError(incentive);\n incentivesPayloads[i] = {\n isBase: isBase,\n instance: incentive.address,\n parameters: isBase\n ? incentive.buildParameters(undefined, options).args.at(0) ||\n zeroHash\n : zeroHash,\n };\n } else {\n // biome-ignore lint/style/noNonNullAssertion: this will never be undefined\n incentivesPayloads[i]!.parameters =\n incentive.buildParameters(undefined, options).args.at(0) || zeroHash;\n // biome-ignore lint/style/noNonNullAssertion: this will never be undefined\n incentivesPayloads[i]!.instance = assertValidAddressByChainId(\n options.config,\n incentive.bases,\n chainId,\n ).address;\n }\n }\n\n const onChainPayload = {\n budget: budgetPayload,\n action: actionPayload,\n validator: validatorPayload,\n allowList: allowListPayload,\n incentives: incentivesPayloads,\n protocolFee,\n referralFee,\n maxParticipants,\n owner,\n };\n\n const boostHash = await boostFactory(options.config, {\n ...this.optionallyAttachAccount(options.account),\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 chainId,\n args: [prepareBoostPayload(onChainPayload)],\n });\n const receipt = await waitForTransactionReceipt(options.config, {\n hash: boostHash,\n });\n const boostCreatedLog = parseEventLogs({\n abi: boostCoreAbi,\n eventName: 'BoostCreated',\n logs: receipt.logs,\n }).at(0);\n let boostId = 0n;\n if (!boostCreatedLog) throw new BoostCoreNoIdentifierEmitted();\n boostId = boostCreatedLog?.args.boostIndex;\n const boost = await this.readBoost(boostId);\n return new Boost({\n id: boostId,\n budget: budget.at(boost.budget),\n action: action.at(boost.action),\n validator: validator.at(boost.validator),\n allowList: allowList.at(boost.allowList),\n incentives: incentives.map((incentive, i) =>\n // biome-ignore lint/style/noNonNullAssertion: this will never be undefined\n incentive.at(boost.incentives.at(i)!),\n ),\n protocolFee: boost.protocolFee,\n referralFee: boost.referralFee,\n maxParticipants: boost.maxParticipants,\n owner: boost.owner,\n });\n }\n\n /**\n * Claims one incentive from a given `Boost` by `boostId` and `incentiveId`\n *\n * @public\n * @async\n * @param {bigint} boostId\n * @param {bigint} incentiveId\n * @param {Address} address\n * @param {Hex} data\n * @param {?WriteParams<typeof boostCoreAbi, 'claimIncentive'>} [params]\n * @returns {unknown}\n */\n public async claimIncentive(\n boostId: bigint,\n incentiveId: bigint,\n address: Address,\n data: Hex,\n params?: WriteParams<typeof boostCoreAbi, 'claimIncentive'>,\n ) {\n return await this.awaitResult(\n this.claimIncentiveRaw(boostId, incentiveId, address, data, params),\n );\n }\n\n /**\n * Claim an incentive for a Boost\n *\n * @public\n * @async\n * @param {bigint} boostId - The ID of the Boost\n * @param {bigint} incentiveId - The ID of the Incentive\n * @param {Address} referrer - The address of the referrer (if any)\n * @param {Hex} data- The data for the claim\n * @param {?WriteParams<typeof boostCoreAbi, 'claimIncentive'>} [params]\n * @returns {unknown}\n */\n public async claimIncentiveRaw(\n boostId: bigint,\n incentiveId: bigint,\n referrer: Address,\n data: Hex,\n params?: WriteParams<typeof boostCoreAbi, 'claimIncentive'>,\n ) {\n const { request, result } = await simulateBoostCoreClaimIncentive(\n this._config,\n {\n ...assertValidAddressByChainId(\n this._config,\n this.addresses,\n params?.chain?.id || params?.chainId,\n ),\n args: [boostId, incentiveId, referrer, data],\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 writeBoostCoreClaimIncentive(this._config, request);\n return { hash, result };\n }\n\n /**\n * Claims one incentive for a given `Boost` on behalf of another user by `boostId` and `incentiveId`\n *\n * @public\n * @async\n * @param {bigint} boostId\n * @param {bigint} incentiveId\n * @param {Address} referrer\n * @param {Hex} data\n * @param {Address} claimant\n * @param {?WriteParams<typeof boostCoreAbi, 'claimIncentiveFor'>} [params]\n * @returns {unknown}\n */\n public async claimIncentiveFor(\n boostId: bigint,\n incentiveId: bigint,\n referrer: Address,\n data: Hex,\n claimant: Address,\n params?: WriteParams<typeof boostCoreAbi, 'claimIncentiveFor'>,\n ) {\n return await this.awaitResult(\n this.claimIncentiveForRaw(\n boostId,\n incentiveId,\n referrer,\n data,\n claimant,\n params,\n ),\n );\n }\n\n /**\n * Claim an incentive for a Boost on behalf of another user\n *\n * @public\n * @async\n * @param {bigint} boostId - The ID of the Boost\n * @param {bigint} incentiveId - The ID of the Incentive\n * @param {Address} referrer - The address of the referrer (if any)\n * @param {Hex} data - The data for the claim\n * @param {Address} claimant - The address of the user eligible for the incentive payout\n * @param {?WriteParams<typeof boostCoreAbi, 'claimIncentiveFor'>} [params]\n * @returns {unknown}\n */\n public async claimIncentiveForRaw(\n boostId: bigint,\n incentiveId: bigint,\n referrer: Address,\n data: Hex,\n claimant: Address,\n params?: WriteParams<typeof boostCoreAbi, 'claimIncentiveFor'>,\n ) {\n const { request, result } = await simulateBoostCoreClaimIncentiveFor(\n this._config,\n {\n ...assertValidAddressByChainId(\n this._config,\n this.addresses,\n params?.chain?.id || params?.chainId,\n ),\n args: [boostId, incentiveId, referrer, data, claimant],\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 writeBoostCoreClaimIncentiveFor(this._config, request);\n return { hash, result };\n }\n\n /**\n * Get a Boost by index, will return the raw on chain representation of a Boost.\n *\n * @public\n * @async\n * @param {bigint} id\n * @param {?ReadParams<typeof boostCoreAbi, 'getBoost'>} [params]\n * @returns {unknown}\n */\n public async readBoost(\n id: bigint,\n params?: ReadParams<typeof boostCoreAbi, 'getBoost'>,\n ) {\n return await readBoostCoreGetBoost(this._config, {\n address: this.assertValidAddress(),\n args: [id],\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 * Get a Boost by index, will return a new {@link Boost} with correct target implementations instantiated, ie `(await core.getBoost(0n)).allowList instanceof SimpleAllowList` vs `SimpleDenyList`\n *\n * @public\n * @async\n * @param {(string | bigint)} _id\n * @param {?ReadParams<typeof boostCoreAbi, 'getBoost'>} [params]\n * @returns {unknown}\n */\n public async getBoost(\n _id: string | bigint,\n params?: ReadParams<typeof boostCoreAbi, 'getBoost'>,\n ) {\n let id: bigint;\n if (typeof _id === 'string') {\n id = BigInt(_id);\n } else id = _id;\n const {\n protocolFee,\n referralFee,\n maxParticipants,\n owner,\n ...boostPayload\n } = await this.readBoost(id, params);\n const options: DeployableOptions = {\n config: this._config,\n account: this._account,\n };\n const [action, budget, validator, allowList, incentives] =\n await Promise.all([\n actionFromAddress(options, boostPayload.action),\n budgetFromAddress(options, boostPayload.budget),\n validatorFromAddress(options, boostPayload.validator),\n allowListFromAddress(options, boostPayload.allowList),\n Promise.all(\n boostPayload.incentives.map((incentiveAddress) =>\n incentiveFromAddress(options, incentiveAddress),\n ),\n ),\n ]);\n return new Boost({\n id,\n action,\n budget,\n validator,\n allowList,\n incentives,\n protocolFee,\n referralFee,\n maxParticipants,\n owner,\n });\n }\n\n /**\n * Retrieve the total number of deployed Boosts\n *\n * @public\n * @async\n * @param {?ReadParams<typeof boostCoreAbi, 'getBoostCount'>} [params]\n * @returns {Promise<bigint>}\n */\n public async getBoostCount(\n params?: ReadParams<typeof boostCoreAbi, 'getBoostCount'>,\n ) {\n return await readBoostCoreGetBoostCount(this._config, {\n ...assertValidAddressByChainId(\n this._config,\n this.addresses,\n params?.chainId,\n ),\n args: [],\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 * Checks if an address is authorized\n *\n * @public\n * @async\n * @param {Address} address\n * @param {?ReadParams<typeof boostCoreAbi, 'createBoostAuth'> &\n * ReadParams<typeof iAuthAbi, 'isAuthorized'>} [params]\n * @returns {Promise<boolean>}\n */\n public async isAuthorized(\n address: Address,\n params?: ReadParams<typeof boostCoreAbi, 'createBoostAuth'> &\n ReadParams<typeof iAuthAbi, 'isAuthorized'>,\n ) {\n const auth = await this.createBoostAuth(params);\n return readIAuthIsAuthorized(this._config, {\n address: auth,\n args: [address],\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 * Retrieve the address of the current creation auth provider.\n *\n * @public\n * @async\n * @param {?ReadParams<typeof boostCoreAbi, 'createBoostAuth'>} [params]\n * @returns {unknown}\n */\n public async createBoostAuth(\n params?: ReadParams<typeof boostCoreAbi, 'createBoostAuth'>,\n ) {\n return await readBoostCoreCreateBoostAuth(this._config, {\n ...assertValidAddressByChainId(\n this._config,\n this.addresses,\n params?.chainId,\n ),\n args: [],\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 * Replace the current auth scheme.\n *\n * @public\n * @async\n * @param {Auth} auth\n * @param {?WriteParams<typeof boostCoreAbi, 'setCreateBoostAuth'>} [params]\n * @returns {unknown}\n */\n public async setCreateBoostAuth(\n auth: Auth,\n params?: WriteParams<typeof boostCoreAbi, 'setCreateBoostAuth'>,\n ) {\n return await this.awaitResult(\n this.setCreateBoostAuthRaw(auth.assertValidAddress(), {\n ...params,\n }),\n );\n }\n\n /**\n * Set the createBoostAuth address\n *\n * @public\n * @async\n * @param {Address} address\n * @param {?WriteParams<typeof boostCoreAbi, 'setCreateBoostAuth'>} [params]\n * @returns {unknown}\n */\n public async setCreateBoostAuthRaw(\n address: Address,\n params?: WriteParams<typeof boostCoreAbi, 'setCreateBoostAuth'>,\n ) {\n const { request, result } = await simulateBoostCoreSetCreateBoostAuth(\n this._config,\n {\n ...assertValidAddressByChainId(\n this._config,\n this.addresses,\n params?.chainId,\n ),\n args: [address],\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 writeBoostCoreSetCreateBoostAuth(this._config, request);\n return { hash, result };\n }\n\n /**\n * Get the protocol fee.\n *\n * @public\n * @async\n * @param {?ReadParams<typeof boostCoreAbi, 'protocolFee'>} [params]\n * @returns {unknown}\n */\n public async protocolFee(\n params?: ReadParams<typeof boostCoreAbi, 'protocolFee'>,\n ) {\n return await readBoostCoreProtocolFee(this._config, {\n ...assertValidAddressByChainId(\n this._config,\n this.addresses,\n params?.chainId,\n ),\n args: [],\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 * Get the protocol fee receiver.\n *\n * @public\n * @async\n * @param {?ReadParams<typeof boostCoreAbi, 'protocolFeeReceiver'>} [params]\n * @returns {unknown}\n */\n public async protocolFeeReceiver(\n params?: ReadParams<typeof boostCoreAbi, 'protocolFeeReceiver'>,\n ) {\n return await readBoostCoreProtocolFeeReceiver(this._config, {\n ...assertValidAddressByChainId(\n this._config,\n this.addresses,\n params?.chainId,\n ),\n args: [],\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 protocol fee receiver address. This function is only callable by the owner.\n *\n * @public\n * @async\n * @param {Address} address\n * @param {?WriteParams<typeof boostCoreAbi, 'setProtocolFeeReceiver'>} [params]\n * @returns {unknown}\n */\n public async setProcolFeeReceiver(\n address: Address,\n params?: WriteParams<typeof boostCoreAbi, 'setProtocolFeeReceiver'>,\n ) {\n return await this.awaitResult(\n this.setProcolFeeReceiverRaw(address, {\n ...params,\n }),\n );\n }\n\n /**\n * Set the protocol fee receiver address. This function is only callable by the owner.\n *\n * @public\n * @async\n * @param {Address} address\n * @param {?WriteParams<typeof boostCoreAbi, 'setProtocolFeeReceiver'>} [params]\n * @returns {unknown}\n */\n public async setProcolFeeReceiverRaw(\n address: Address,\n params?: WriteParams<typeof boostCoreAbi, 'setProtocolFeeReceiver'>,\n ) {\n const { request, result } = await simulateBoostCoreSetProtocolFeeReceiver(\n this._config,\n {\n ...assertValidAddressByChainId(\n this._config,\n this.addresses,\n params?.chainId,\n ),\n args: [address],\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 writeBoostCoreSetProtocolFeeReceiver(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Get the claim fee.\n *\n * @public\n * @async\n * @param {?ReadParams<typeof boostCoreAbi, 'claimFee'>} [params]\n * @returns {unknown}\n */\n public async claimFee(params?: ReadParams<typeof boostCoreAbi, 'claimFee'>) {\n return await readBoostCoreClaimFee(this._config, {\n ...assertValidAddressByChainId(\n this._config,\n this.addresses,\n params?.chainId,\n ),\n args: [],\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 * Sets the claim fee.\n *\n * @public\n * @async\n * @param {bigint} claimFee\n * @param {?WriteParams<typeof boostCoreAbi, 'setClaimFee'>} [params]\n * @returns {unknown}\n */\n public async setClaimFee(\n claimFee: bigint,\n params?: WriteParams<typeof boostCoreAbi, 'setClaimFee'>,\n ) {\n return await this.awaitResult(this.setClaimFeeRaw(claimFee, params));\n }\n\n /**\n * Sets the claim fee.\n *\n * @public\n * @async\n * @param {bigint} claimFee\n * @param {?WriteParams<typeof boostCoreAbi, 'setClaimFee'>} [params]\n * @returns {unknown}\n */\n public async setClaimFeeRaw(\n claimFee: bigint,\n params?: WriteParams<typeof boostCoreAbi, 'setClaimFee'>,\n ) {\n const { request, result } = await simulateBoostCoreSetClaimFee(\n this._config,\n {\n ...assertValidAddressByChainId(\n this._config,\n this.addresses,\n params?.chainId,\n ),\n args: [claimFee],\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 writeBoostCoreSetClaimFee(this._config, request);\n return { hash, result };\n }\n\n /**\n * Bound {@link PassthroughAuth} constructor that reuses the same configuration as the Boost Core instance.\n *\n * @example\n * ```ts\n * const auth = core.PassthroughAuth('0x') // is roughly equivalent to\n * const auth = new PassthroughAuth({ config: core._config, account: core._account }, '0x')\n * ```\n * @param {Address} address\n * @returns {PassthroughAuth}\n */\n PassthroughAuth(address?: Address) {\n return new PassthroughAuth(\n { config: this._config, account: this._account },\n address,\n );\n }\n\n // /**\n // * Bound {@link ContractAction} constructor that reuses the same configuration as the Boost Core instance.\n // *\n // * @example\n // * ```ts\n // * const action = core.ContractAction('0x') // is roughly equivalent to\n // * const action = new ContractAction({ config: core._config, account: core._account }, '0x')\n // * ```\n // * @param {DeployablePayloadOrAddress<ContractActionPayload>} options\n // * @param {?boolean} [isBase]\n // * @returns {ContractAction}\n // */\n // ContractAction(\n // options: DeployablePayloadOrAddress<ContractActionPayload>,\n // isBase?: boolean,\n // ) {\n // return new ContractAction(\n // { config: this._config, account: this._account },\n // options,\n // isBase,\n // );\n // }\n\n /**\n * Bound {@link EventAction} constructor that reuses the same configuration as the Boost Core instance.\n *\n * @example\n * ```ts\n * const action = core.EventAction('0x') // is roughly equivalent to\n * const action = new EventAction({ config: core._config, account: core._account }, '0x')\n */\n EventAction(\n options: DeployablePayloadOrAddress<EventActionPayload>,\n isBase?: boolean,\n ) {\n return new EventAction(\n { config: this._config, account: this._account },\n options,\n isBase,\n );\n }\n // /**\n // * Bound {@link ERC721MintAction} constructor that reuses the same configuration as the Boost Core instance.\n // *\n // * @example\n // * ```ts\n // * const action = core.ERC721MintAction('0x') // is roughly equivalent to\n // * const action = new ERC721MintAction({ config: core._config, account: core._account }, '0x')\n // * ```\n // * @param {DeployablePayloadOrAddress<ERC721MintActionPayload>} options\n // * @param {?boolean} [isBase]\n // * @returns {ERC721MintAction}\n // */\n // ERC721MintAction(\n // options: DeployablePayloadOrAddress<ERC721MintActionPayload>,\n // isBase?: boolean,\n // ) {\n // return new ERC721MintAction(\n // { config: this._config, account: this._account },\n // options,\n // isBase,\n // );\n // }\n /**\n * Bound {@link OpenAllowList} constructor that reuses the same configuration as the Boost Core instance.\n *\n * @example\n * ```ts\n * const list = core.OpenAllowList('0x') // is roughly equivalent to\n * const list = new OpenAllowList({ config: core._config, account: core._account }, '0x')\n * ```\n * @param {?boolean} [isBase]\n * @returns {OpenAllowList}\n */\n OpenAllowList(isBase?: boolean) {\n return new OpenAllowList(\n { config: this._config, account: this._account },\n undefined,\n isBase,\n );\n }\n /**\n * Bound {@link SimpleAllowList} constructor that reuses the same configuration as the Boost Core instance.\n *\n * @example\n * ```ts\n * const list = core.SimpleAllowList('0x') // is roughly equivalent to\n * const list = new SimpleAllowList({ config: core._config, account: core._account }, '0x')\n * ```\n * @param {DeployablePayloadOrAddress<SimpleAllowListPayload>} options\n * @param {?boolean} [isBase]\n * @returns {SimpleAllowList}\n */\n SimpleAllowList(\n options: DeployablePayloadOrAddress<SimpleAllowListPayload>,\n isBase?: boolean,\n ) {\n return new SimpleAllowList(\n { config: this._config, account: this._account },\n options,\n isBase,\n );\n }\n /**\n * Bound {@link SimpleDenyList} constructor that reuses the same configuration as the Boost Core instance.\n *\n * @example\n * ```ts\n * const list = core.SimpleDenyList('0x') // is roughly equivalent to\n * const list = new SimpleDenyList({ config: core._config, account: core._account }, '0x')\n * ```\n * @param {DeployablePayloadOrAddress<SimpleDenyListPayload>} options\n * @param {?boolean} [isBase]\n * @returns {SimpleDenyList}\n */\n SimpleDenyList(\n options: DeployablePayloadOrAddress<SimpleDenyListPayload>,\n isBase?: boolean,\n ) {\n return new SimpleDenyList(\n { config: this._config, account: this._account },\n options,\n isBase,\n );\n }\n // /**\n // * Bound {@link SimpleBudget} constructor that reuses the same configuration as the Boost Core instance.\n // *\n // * @example\n // * ```ts\n // * const budget = core.SimpleBudget('0x') // is roughly equivalent to\n // * const budget = new SimpleBudget({ config: core._config, account: core._account }, '0x')\n // * ```\n // * @param {DeployablePayloadOrAddress<SimpleBudgetPayload>} options\n // * @returns {SimpleBudget}\n // */\n // SimpleBudget(options: DeployablePayloadOrAddress<SimpleBudgetPayload>) {\n // return new SimpleBudget(\n // { config: this._config, account: this._account },\n // options,\n // );\n // }\n /**\n * Bound {@link ManagedBudget} constructor that reuses the same configuration as the Boost Core instance.\n *\n * @example\n * ```ts\n * const budget = core.ManagedBudget('0x') // is roughly equivalent to\n * const budget = new ManagedBudget({ config: core._config, account: core._account }, '0x')\n * ```\n * @param {DeployablePayloadOrAddress<ManagedBudgetPayload>} options\n * @returns {ManagedBudget}\n */\n ManagedBudget(options: DeployablePayloadOrAddress<ManagedBudgetPayload>) {\n return new ManagedBudget(\n { config: this._config, account: this._account },\n options,\n );\n }\n // /**\n // * Bound {@link VestingBudget} constructor that reuses the same configuration as the Boost Core instance.\n // *\n // * @example\n // * ```ts\n // * const budget = core.VestingBudget('0x') // is roughly equivalent to\n // * const budget = new VestingBudget({ config: core._config, account: core._account }, '0x')\n // * ```\n // * @param {DeployablePayloadOrAddress<VestingBudgetPayload>} options\n // * @returns {VestingBudget}\n // */\n // VestingBudget(options: DeployablePayloadOrAddress<VestingBudgetPayload>) {\n // return new VestingBudget(\n // { config: this._config, account: this._account },\n // options,\n // );\n // }\n /**\n * Bound {@link AllowListIncentive} constructor that reuses the same configuration as the Boost Core instance.\n *\n * @example\n * ```ts\n * const incentive = core.AllowListIncentive({ ... }) // is roughly equivalent to\n * const incentive = new AllowListIncentive({ config: core._config, account: core._account }, { ... })\n * ```\n * @param {DeployablePayloadOrAddress<VestingBudgetPayload>} options\n * @returns {VestingBudget}\n */\n AllowListIncentive(options: AllowListIncentivePayload) {\n return new AllowListIncentive(\n { config: this._config, account: this._account },\n options,\n );\n }\n /**\n * Bound {@link CGDAIncentive} constructor that reuses the same configuration as the Boost Core instance.\n *\n * @example\n * ```ts\n * const incentive = core.CGDAIncentive({ ... }) // is roughly equivalent to\n * const incentive = new CGDAIncentive({ config: core._config, account: core._account }, { ... })\n * ```\n * @param {CGDAIncentivePayload} options\n * @returns {CGDAIncentive}\n */\n CGDAIncentive(options: CGDAIncentivePayload) {\n return new CGDAIncentive(\n { config: this._config, account: this._account },\n options,\n );\n }\n /**\n * Bound {@link ERC20Incentive} constructor that reuses the same configuration as the Boost Core instance.\n *\n * @example\n * ```ts\n * const incentive = core.ERC20Incentive({ ... }) // is roughly equivalent to\n * const incentive = new ERC20Incentive({ config: core._config, account: core._account }, { ... })\n * ```\n * @param {ERC20IncentivePayload} options\n * @returns {ERC20Incentive}\n */\n ERC20Incentive(options: ERC20IncentivePayload) {\n return new ERC20Incentive(\n { config: this._config, account: this._account },\n options,\n );\n }\n // /**\n // * Temporarily disabled until low level ABI encoding bugs are resolved\n // * Bound {@link ERC1155Incentive} constructor that reuses the same configuration as the Boost Core instance.\n // *\n // * @experimental\n // * @example\n // * ```ts\n // * const incentive = core.ERC1155Incentive({ ... }) // is roughly equivalent to\n // * const incentive = new ERC1155Incentive({ config: core._config, account: core._account }, { ... })\n // * ```\n // * @param {ERC1155IncentivePayload} options\n // * @returns {ERC1155Incentive}\n // */\n // ERC1155Incentive(options: ERC1155IncentivePayload) {\n // return new ERC1155Incentive(\n // { config: this._config, account: this._account },\n // options,\n // );\n // }\n /**\n * Bound {@link PointsIncentive} constructor that reuses the same configuration as the Boost Core instance.\n *\n * @example\n * ```ts\n * const incentive = core.PointsIncentive({ ... }) // is roughly equivalent to\n * const incentive = new PointsIncentive({ config: core._config, account: core._account }, { ... })\n * ```\n * @param {PointsIncentivePayload} options\n * @returns {PointsIncentive}\n */\n PointsIncentive(options: PointsIncentivePayload) {\n return new PointsIncentive(\n { config: this._config, account: this._account },\n options,\n );\n }\n /**\n * Bound {@link SignerValidator} constructor that reuses the same configuration as the Boost Core instance.\n *\n * @example\n * ```ts\n * const validator = core.SignerValidator({ ... }) // is roughly equivalent to\n * const validator = new SignerValidator({ config: core._config, account: core._account }, { ... })\n * ```\n * @param {DeployablePayloadOrAddress<SignerValidatorPayload>} options\n * @param {?boolean} [isBase]\n * @returns {SignerValidator}\n */\n SignerValidator(\n options: DeployablePayloadOrAddress<SignerValidatorPayload>,\n isBase?: boolean,\n ) {\n return new SignerValidator(\n { config: this._config, account: this._account },\n options,\n isBase,\n );\n }\n /**\n * Bound {@link ERC20VariableIncentive} constructor that reuses the same configuration as the Boost Core instance.\n *\n * @example\n * ```ts\n * const validator = core.ERC20VariableIncentive({ ... }) // is roughly equivalent to\n * const validator = new ERC20VariableIncentive({ config: core._config, account: core._account }, { ... })\n * ```\n * @param {DeployablePayloadOrAddress<ERC20VariableIncentivePayload>} options\n * @param {?boolean} [isBase]\n * @returns {ERC20VariableIncentive}\n */\n ERC20VariableIncentive(\n options: DeployablePayloadOrAddress<ERC20VariableIncentivePayload>,\n isBase?: boolean,\n ) {\n return new ERC20VariableIncentive(\n { config: this._config, account: this._account },\n options,\n isBase,\n );\n }\n\n /**\n * @inheritdoc\n *\n * @public\n * @param {?[Address, Address]} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: [Address, Address],\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [payload, options] = this.validateDeploymentConfig(\n _payload,\n _options,\n );\n return {\n abi: boostCoreAbi,\n bytecode: bytecode as Hex,\n args: payload,\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n"],"names":["getAccount","config","uid","connection","addresses","address","chain","status","getChainId","getAction","client","actionFn","name","action_implicit","action_explicit","params","version","getVersion","__classPrivateFieldGet","receiver","state","kind","f","_BaseError_instances","_BaseError_walk","BaseError","shortMessage","options","details","_a","docsPath","fn","err","ConnectorNotConnectedError","ConnectorAccountNotFoundError","connector","ConnectorChainMismatchError","connectionChainId","connectorChainId","ConnectorUnavailableReconnectingError","getConnectorClient","parameters","accounts","chainId","account","parseAccount","getAddress","x","provider","createClient","opts","custom","simulateContract","abi","rest","action","viem_simulateContract","result","request","writeContract","__mode","activeConnector","simulateRequest","viem_writeContract","createWriteContract","c","configChainId","BOOST_CORE_CLAIM_FEE","parseEther","BOOST_CORE_ADDRESS","BoostCoreBases","BOOST_CORE_ADDRESSES","isBoostCoreDeployed","isBoostCoreDeployable","_BoostCore","Deployable","assertValidAddressByChainId","boostCoreAbi","_boostPayload","_params","payload","desiredChainId","coreAddress","budget","validator","allowList","incentives","protocolFee","referralFee","maxParticipants","owner","boostFactory","_b","zeroAddress","DeployableUnknownOwnerProvidedError","budgetPayload","BudgetMustAuthorizeBoostCore","MustInitializeBudgetError","actionPayload","zeroHash","isBase","validatorPayload","allowListPayload","incentivesPayloads","i","incentive","IncentiveNotCloneableError","onChainPayload","boostHash","prepareBoostPayload","receipt","waitForTransactionReceipt","boostCreatedLog","parseEventLogs","boostId","BoostCoreNoIdentifierEmitted","boost","Boost","incentiveId","data","referrer","simulateBoostCoreClaimIncentive","writeBoostCoreClaimIncentive","claimant","simulateBoostCoreClaimIncentiveFor","writeBoostCoreClaimIncentiveFor","id","readBoostCoreGetBoost","_id","boostPayload","actionFromAddress","budgetFromAddress","validatorFromAddress","allowListFromAddress","incentiveAddress","incentiveFromAddress","readBoostCoreGetBoostCount","auth","readIAuthIsAuthorized","readBoostCoreCreateBoostAuth","simulateBoostCoreSetCreateBoostAuth","writeBoostCoreSetCreateBoostAuth","readBoostCoreProtocolFee","readBoostCoreProtocolFeeReceiver","simulateBoostCoreSetProtocolFeeReceiver","writeBoostCoreSetProtocolFeeReceiver","readBoostCoreClaimFee","claimFee","simulateBoostCoreSetClaimFee","writeBoostCoreSetClaimFee","PassthroughAuth","EventAction","OpenAllowList","SimpleAllowList","SimpleDenyList","ManagedBudget","AllowListIncentive","CGDAIncentive","ERC20Incentive","PointsIncentive","SignerValidator","ERC20VariableIncentive","_payload","_options","bytecode","BoostCore"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACO,SAASA,EAAWC,GAAQ;AAC/B,QAAMC,IAAMD,EAAO,MAAM,SACnBE,IAAaF,EAAO,MAAM,YAAY,IAAIC,CAAG,GAC7CE,IAAYD,KAAA,gBAAAA,EAAY,UACxBE,IAAUD,KAAA,gBAAAA,EAAY,IACtBE,IAAQL,EAAO,OAAO,KAAK,CAACK,MAAUA,EAAM,QAAOH,KAAA,gBAAAA,EAAY,QAAO,GACtEI,IAASN,EAAO,MAAM;AAC5B,UAAQM,GAAM;AAAA,IACV,KAAK;AACD,aAAO;AAAA,QACH,SAASF;AAAA,QACT,WAAWD;AAAA,QACX,OAAAE;AAAA,QACA,SAASH,KAAA,gBAAAA,EAAY;AAAA,QACrB,WAAWA,KAAA,gBAAAA,EAAY;AAAA,QACvB,aAAa;AAAA,QACb,cAAc;AAAA,QACd,gBAAgB;AAAA,QAChB,gBAAgB;AAAA,QAChB,QAAAI;AAAA,MAChB;AAAA,IACQ,KAAK;AACD,aAAO;AAAA,QACH,SAAAF;AAAA,QACA,WAAAD;AAAA,QACA,OAAAE;AAAA,QACA,SAASH,KAAA,gBAAAA,EAAY;AAAA,QACrB,WAAWA,KAAA,gBAAAA,EAAY;AAAA,QACvB,aAAa,CAAC,CAACE;AAAA,QACf,cAAc;AAAA,QACd,gBAAgB;AAAA,QAChB,gBAAgB;AAAA,QAChB,QAAAE;AAAA,MAChB;AAAA,IACQ,KAAK;AACD,aAAO;AAAA,QACH,SAAAF;AAAA,QACA,WAAAD;AAAA,QACA,OAAAE;AAAA,QACA,SAASH,KAAA,gBAAAA,EAAY;AAAA,QACrB,WAAWA,KAAA,gBAAAA,EAAY;AAAA,QACvB,aAAa;AAAA,QACb,cAAc;AAAA,QACd,gBAAgB;AAAA,QAChB,gBAAgB;AAAA,QAChB,QAAAI;AAAA,MAChB;AAAA,IACQ,KAAK;AACD,aAAO;AAAA,QACH,SAAS;AAAA,QACT,WAAW;AAAA,QACX,OAAO;AAAA,QACP,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aAAa;AAAA,QACb,cAAc;AAAA,QACd,gBAAgB;AAAA,QAChB,gBAAgB;AAAA,QAChB,QAAAA;AAAA,MAChB;AAAA,EACK;AACL;AC7DO,SAASC,GAAWP,GAAQ;AAC/B,SAAOA,EAAO,MAAM;AACxB;ACIO,SAASQ,EAAUC,GAAQC,GAIlCC,GAAM;AACF,QAAMC,IAAkBH,EAAOC,EAAS,IAAI;AAC5C,MAAI,OAAOE,KAAoB;AAC3B,WAAOA;AACX,QAAMC,IAAkBJ,EAAOE,CAAI;AACnC,SAAI,OAAOE,KAAoB,aACpBA,IACJ,CAACC,MAAWJ,EAASD,GAAQK,CAAM;AAC9C;ACnBO,MAAMC,KAAU,UCCVC,KAAa,MAAM,eAAeD,EAAO;ACDtD,IAAIE,IAAkE,SAAUC,GAAUC,GAAOC,GAAMC,GAAG;AACtG,MAAID,MAAS,OAAO,CAACC,EAAG,OAAM,IAAI,UAAU,+CAA+C;AAC3F,MAAI,OAAOF,KAAU,aAAaD,MAAaC,KAAS,CAACE,IAAI,CAACF,EAAM,IAAID,CAAQ,EAAG,OAAM,IAAI,UAAU,0EAA0E;AACjL,SAAOE,MAAS,MAAMC,IAAID,MAAS,MAAMC,EAAE,KAAKH,CAAQ,IAAIG,IAAIA,EAAE,QAAQF,EAAM,IAAID,CAAQ;AAChG,GACII,GAAsBC;AAEnB,MAAMC,UAAkB,MAAM;AAAA,EACjC,IAAI,cAAc;AACd,WAAO;AAAA,EACV;AAAA,EACD,IAAI,UAAU;AACV,WAAOR,GAAU;AAAA,EACpB;AAAA,EACD,YAAYS,GAAcC,IAAU,IAAI;;AACpC,aACAJ,EAAqB,IAAI,IAAI,GAC7B,OAAO,eAAe,MAAM,WAAW;AAAA,MACnC,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,UAAU;AAAA,MACV,OAAO;AAAA,IACnB,CAAS,GACD,OAAO,eAAe,MAAM,YAAY;AAAA,MACpC,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,UAAU;AAAA,MACV,OAAO;AAAA,IACnB,CAAS,GACD,OAAO,eAAe,MAAM,gBAAgB;AAAA,MACxC,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,UAAU;AAAA,MACV,OAAO;AAAA,IACnB,CAAS,GACD,OAAO,eAAe,MAAM,gBAAgB;AAAA,MACxC,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,UAAU;AAAA,MACV,OAAO;AAAA,IACnB,CAAS,GACD,OAAO,eAAe,MAAM,QAAQ;AAAA,MAChC,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,UAAU;AAAA,MACV,OAAO;AAAA,IACnB,CAAS;AACD,UAAMK,IAAUD,EAAQ,iBAAiBF,IACnCE,EAAQ,MAAM,WACdE,IAAAF,EAAQ,UAAR,QAAAE,EAAe,UACXF,EAAQ,MAAM,UACdA,EAAQ,SACZG,IAAWH,EAAQ,iBAAiBF,KACpCE,EAAQ,MAAM,YAAYA,EAAQ;AAExC,SAAK,UAAU;AAAA,MACXD,KAAgB;AAAA,MAChB;AAAA,MACA,GAAIC,EAAQ,eAAe,CAAC,GAAGA,EAAQ,cAAc,EAAE,IAAI;MAC3D,GAAIG,IACE;AAAA,QACE,SAAS,KAAK,WAAW,GAAGA,CAAQ,QAAQH,EAAQ,WAAW,IAAIA,EAAQ,QAAQ,KAAK,EAAE;AAAA,MAC7F,IACC;MACN,GAAIC,IAAU,CAAC,YAAYA,CAAO,EAAE,IAAI;MACxC,YAAY,KAAK,OAAO;AAAA,IACpC,EAAU,KAAK;AAAA,CAAI,GACPD,EAAQ,UACR,KAAK,QAAQA,EAAQ,QACzB,KAAK,UAAUC,GACf,KAAK,WAAWE,GAChB,KAAK,eAAeH,EAAQ,cAC5B,KAAK,eAAeD;AAAA,EACvB;AAAA,EACD,KAAKK,GAAI;AACL,WAAOb,EAAuB,MAAMK,GAAsB,KAAKC,CAAe,EAAE,KAAK,MAAM,MAAMO,CAAE;AAAA,EACtG;AACL;AACAR,IAAuB,oBAAI,QAAO,GAAIC,IAAkB,SAASA,EAAgBQ,GAAKD,GAAI;AACtF,SAAIA,KAAA,QAAAA,EAAKC,KACEA,IACPA,EAAI,QACGd,EAAuB,MAAMK,GAAsB,KAAKC,CAAe,EAAE,KAAK,MAAMQ,EAAI,OAAOD,CAAE,IACrGC;AACX;AC7DO,MAAMC,WAAmCR,EAAU;AAAA,EACtD,cAAc;AACV,UAAM,0BAA0B,GAChC,OAAO,eAAe,MAAM,QAAQ;AAAA,MAChC,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,UAAU;AAAA,MACV,OAAO;AAAA,IACnB,CAAS;AAAA,EACJ;AACL;AAYO,MAAMS,WAAsCT,EAAU;AAAA,EACzD,YAAY,EAAE,SAAApB,GAAS,WAAA8B,KAAc;AACjC,UAAM,YAAY9B,CAAO,8BAA8B8B,EAAU,IAAI,IAAI,GACzE,OAAO,eAAe,MAAM,QAAQ;AAAA,MAChC,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,UAAU;AAAA,MACV,OAAO;AAAA,IACnB,CAAS;AAAA,EACJ;AACL;AACO,MAAMC,WAAoCX,EAAU;AAAA,EACvD,YAAY,EAAE,mBAAAY,GAAmB,kBAAAC,KAAqB;AAClD,UAAM,2CAA2CA,CAAgB,gDAAgDD,CAAiB,MAAM;AAAA,MACpI,cAAc;AAAA,QACV,sBAAsBC,CAAgB;AAAA,QACtC,sBAAsBD,CAAiB;AAAA,MAC1C;AAAA,IACb,CAAS,GACD,OAAO,eAAe,MAAM,QAAQ;AAAA,MAChC,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,UAAU;AAAA,MACV,OAAO;AAAA,IACnB,CAAS;AAAA,EACJ;AACL;AACO,MAAME,WAA8Cd,EAAU;AAAA,EACjE,YAAY,EAAE,WAAAU,KAAa;AACvB,UAAM,cAAcA,EAAU,IAAI,qCAAqC;AAAA,MACnE,SAAS;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,MAChB,EAAc,KAAK,GAAG;AAAA,IACtB,CAAS,GACD,OAAO,eAAe,MAAM,QAAQ;AAAA,MAChC,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,UAAU;AAAA,MACV,OAAO;AAAA,IACnB,CAAS;AAAA,EACJ;AACL;ACpFO,eAAeK,EAAmBvC,GAAQwC,IAAa,IAAI;AAE9D,MAAItC;AACJ,MAAIsC,EAAW,WAAW;AACtB,UAAM,EAAE,WAAAN,EAAW,IAAGM;AACtB,QAAIxC,EAAO,MAAM,WAAW,kBACxB,CAACkC,EAAU,eACX,CAACA,EAAU;AACX,YAAM,IAAII,GAAsC,EAAE,WAAAJ,EAAS,CAAE;AACjE,UAAM,CAACO,GAAUC,CAAO,IAAI,MAAM,QAAQ,IAAI;AAAA,MAC1CR,EAAU,YAAa;AAAA,MACvBA,EAAU,WAAY;AAAA,IAClC,CAAS;AACD,IAAAhC,IAAa;AAAA,MACT,UAAUuC;AAAA,MACV,SAAAC;AAAA,MACA,WAAAR;AAAA,IACZ;AAAA,EACK;AAEG,IAAAhC,IAAaF,EAAO,MAAM,YAAY,IAAIA,EAAO,MAAM,OAAO;AAClE,MAAI,CAACE;AACD,UAAM,IAAI8B,GAA0B;AACxC,QAAMU,IAAUF,EAAW,WAAWtC,EAAW,SAE3CmC,IAAmB,MAAMnC,EAAW,UAAU,WAAU;AAC9D,MAAImC,MAAqBnC,EAAW;AAChC,UAAM,IAAIiC,GAA4B;AAAA,MAClC,mBAAmBjC,EAAW;AAAA,MAC9B,kBAAAmC;AAAA,IACZ,CAAS;AACL,QAAMH,IAAYhC,EAAW;AAC7B,MAAIgC,EAAU;AACV,WAAOA,EAAU,UAAU,EAAE,SAAAQ,EAAS,CAAA;AAE1C,QAAMC,IAAUC,GAAaJ,EAAW,WAAWtC,EAAW,SAAS,CAAC,CAAC;AAGzE,MAFAyC,EAAQ,UAAUE,GAAWF,EAAQ,OAAO,GAExCH,EAAW,WACX,CAACtC,EAAW,SAAS,KAAK,CAAC4C,MAAMA,EAAE,kBAAkBH,EAAQ,QAAQ,YAAW,CAAE;AAClF,UAAM,IAAIV,GAA8B;AAAA,MACpC,SAASU,EAAQ;AAAA,MACjB,WAAAT;AAAA,IACZ,CAAS;AACL,QAAM7B,IAAQL,EAAO,OAAO,KAAK,CAACK,MAAUA,EAAM,OAAOqC,CAAO,GAC1DK,IAAY,MAAM7C,EAAW,UAAU,YAAY,EAAE,SAAAwC,EAAS,CAAA;AACpE,SAAOM,GAAa;AAAA,IAChB,SAAAL;AAAA,IACA,OAAAtC;AAAA,IACA,MAAM;AAAA,IACN,WAAW,CAAC4C,MAASC,GAAOH,CAAQ,EAAE,EAAE,GAAGE,GAAM,YAAY,GAAG;AAAA,EACxE,CAAK;AACL;ACpDO,eAAeE,GAAiBnD,GAAQwC,GAAY;AACvD,QAAM,EAAE,KAAAY,GAAK,SAAAV,GAAS,WAAAR,GAAW,GAAGmB,EAAM,IAAGb;AAC7C,MAAIG;AACJ,EAAIH,EAAW,UACXG,IAAUH,EAAW,UAMrBG,KAJwB,MAAMJ,EAAmBvC,GAAQ;AAAA,IACrD,SAAA0C;AAAA,IACA,WAAAR;AAAA,EACZ,CAAS,GACyB;AAE9B,QAAMzB,IAAST,EAAO,UAAU,EAAE,SAAA0C,EAAS,CAAA,GACrCY,IAAS9C,EAAUC,GAAQ8C,IAAuB,kBAAkB,GACpE,EAAE,QAAAC,GAAQ,SAAAC,EAAO,IAAK,MAAMH,EAAO,EAAE,GAAGD,GAAM,KAAAD,GAAK,SAAAT,EAAO,CAAE;AAClE,SAAO;AAAA,IACH,SAASlC,EAAO,MAAM;AAAA,IACtB,QAAA+C;AAAA,IACA,SAAS,EAAE,QAAQ,YAAY,GAAGC,GAAS,SAAAf,EAAS;AAAA,EAC5D;AACA;AClBO,eAAegB,EAAc1D,GAAQwC,GAAY;AACpD,QAAM,EAAE,SAAAG,GAAS,SAAAD,GAAS,WAAAR,GAAW,QAAAyB,GAAQ,GAAGN,EAAM,IAAGb;AACzD,MAAI/B;AACJ,EAAI,OAAOkC,KAAY,YAAYA,EAAQ,SAAS,UAChDlC,IAAST,EAAO,UAAU,EAAE,SAAA0C,EAAS,CAAA,IAErCjC,IAAS,MAAM8B,EAAmBvC,GAAQ,EAAE,SAAA2C,GAAS,SAAAD,GAAS,WAAAR,EAAS,CAAE;AAC7E,QAAM,EAAE,WAAW0B,EAAiB,IAAG7D,EAAWC,CAAM;AACxD,MAAIyD;AACJ,MAAIE,MAAW,cAAcC,KAAA,QAAAA,EAAiB;AAC1C,IAAAH,IAAUJ;AAAA,OACT;AACD,UAAM,EAAE,SAASQ,EAAiB,IAAG,MAAMV,GAAiBnD,GAAQ;AAAA,MAChE,GAAGqD;AAAA,MACH,SAAAV;AAAA,MACA,SAAAD;AAAA,IACZ,CAAS;AACD,IAAAe,IAAUI;AAAA,EACb;AAOD,SALa,MADErD,EAAUC,GAAQqD,IAAoB,eAAe,EAC1C;AAAA,IACtB,GAAGL;AAAA,IACH,GAAId,IAAU,EAAE,SAAAA,EAAS,IAAG;IAC5B,OAAOD,IAAU,EAAE,IAAIA,EAAS,IAAG;AAAA,EAC3C,CAAK;AAEL;AC7BO,SAASqB,GAAoBC,GAAG;AACnC,SAAIA,EAAE,YAAY,UAAa,OAAOA,EAAE,WAAY,WACzC,CAAChE,GAAQwC,MAAe;;AAC3B,UAAMyB,IAAgB1D,GAAWP,CAAM,GACjC2C,IAAU5C,EAAWC,CAAM;AACjC,QAAI0C;AACJ,WAAIF,EAAW,UACXE,IAAUF,EAAW,UAChBA,EACJ,WACDA,EACK,YAAYG,EAAQ,WAEpBH,EACJ,YAAY,SAFbE,IAAUC,EAAQ,UAKlBD,IAAUuB,GACPP,EAAc1D,GAAQ;AAAA,MACzB,GAAGwC;AAAA,MACH,GAAIwB,EAAE,eAAe,EAAE,cAAcA,EAAE,aAAc,IAAG;MACxD,SAAStB,KAAUd,IAAAoC,EAAE,YAAF,gBAAApC,EAAYc,KAAW;AAAA,MAC1C,KAAKsB,EAAE;AAAA,IACvB,CAAa;AAAA,EACb,IACW,CAAChE,GAAQwC,MACLkB,EAAc1D,GAAQ;AAAA,IACzB,GAAGwC;AAAA,IACH,GAAIwB,EAAE,UAAU,EAAE,SAASA,EAAE,QAAS,IAAG;IACzC,GAAIA,EAAE,eAAe,EAAE,cAAcA,EAAE,aAAc,IAAG;IACxD,KAAKA,EAAE;AAAA,EACnB,CAAS;AAET;AC4Ea,MAAAE,KAAuBC,GAAW,UAAU,GAO5CC,KAAsBC,EACjC,QACF,GAQaC,IAAgD;AAAA,EAC3D,GAAID;AAAAA,EACJ,OAAO;AACT;AAyCA,SAASE,GAAoBtB,GAA6C;AACxE,SAAOA,EAAK;AACd;AAgCA,SAASuB,GAAsBvB,GAAgD;AACtE,SAAAA,EAAK,mBAAmBA,EAAK;AACtC;AAsCO,MAAMwB,IAAN,MAAMA,UAAkBC,GAG7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBA,IAAW,YAAqC;AAC9C,WAAQ,KAAK,YAAiC;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,YAAY,EAAE,QAAA1E,GAAQ,SAAA2C,GAAS,GAAGjB,KAA4B;AAC5D,QAAI6C,GAAoB7C,CAAO,KAAKA,EAAQ;AAC1C,YAAM,EAAE,SAAAiB,GAAS,QAAA3C,EAAO,GAAG0B,EAAQ,OAAO;AAAA,aACjC8C,GAAsB9C,CAAO;AAChC,YAAA,EAAE,SAAAiB,GAAS,QAAA3C,KAAU;AAAA,QACzB0B,EAAQ;AAAA,QACRA,EAAQ;AAAA,MAAA,CACT;AAAA,SACI;AACC,YAAA,EAAE,SAAAtB,MAAYuE;AAAA,QAClB3E;AAAA,QACAsE;AAAA,MAAA;AAEF,YAAM,EAAE,SAAA3B,GAAS,QAAA3C,EAAO,GAAGI,CAAO;AAAA,IACpC;AAEA,SAAK,MAAMwE;AAAAA,EACb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAa,YACXC,GACAC,GAEA;;AACA,UAAM,CAACC,GAASrD,CAAO,IACrB,KAAK,yBAA6CmD,GAAeC,CAAO,GACpEE,MAAiBpD,IAAAkD,KAAA,gBAAAA,EAAS,UAAT,gBAAAlD,EAAgB,QAAMkD,KAAA,gBAAAA,EAAS,UAChD,EAAE,SAAApC,GAAS,SAASuC,EAAgB,IAAAN;AAAA,MACxCjD,EAAQ;AAAA,MACR,KAAK;AAAA,MACLsD;AAAA,IAAA;AAGE,QAAA;AAAA,MACF,QAAAE;AAAA,MACA,QAAA5B;AAAA,MACA,WAAA6B;AAAA,MACA,WAAAC;AAAA,MACA,YAAAC;AAAA,MACA,aAAAC,IAAc;AAAA,MACd,aAAAC,IAAc;AAAA,MACd,iBAAAC,IAAkB;AAAA,MAClB,OAAAC;AAAA,IACE,IAAAV;AAEJ,UAAMW,IAAe3B,GAAoB;AAAA,MACvC,KAAKa;AAAAA,MACL,cAAc;AAAA,MACd,SAASK;AAAA,IAAA,CACV;AAED,QAAI,CAACQ,MACHA,MACEE,IAAA,KAAK,aAAL,gBAAAA,EAAe,YACf5F,GAAW2B,EAAQ,MAAM,EAAE,WAC3BkE,GACEH,MAAUG;AACZ,YAAM,IAAIC,GAAoC;AAIlD,QAAIC,IAAwCF;AAC5C,QAAIV,EAAO;AAET,UADAY,IAAgBZ,EAAO,SACnB,CAAE,MAAMA,EAAO,aAAaD,CAAW;AACnC,cAAA,IAAIc,GAA6Bd,CAAW;AAAA;AAGpD,YAAM,IAAIe,GAA0B;AAKtC,QAAIC,IAAwC;AAAA,MAC1C,UAAUL;AAAA,MACV,QAAQ;AAAA,MACR,YAAYM;AAAA,IAAA;AAEd,QAAI5C,EAAO,SAAS;AAClB,YAAM6C,IAAS7C,EAAO;AACN,MAAA2C,IAAA;AAAA,QACd,QAAAE;AAAA,QACA,UAAU7C,EAAO;AAAA,QACjB,YAAY6C,IACR7C,EAAO,gBAAgB,QAAW5B,CAAO,EAAE,KAAK,GAAG,CAAC,KAAKwE,IACzDA;AAAA,MAAA;AAAA,IACN;AAEc,MAAAD,EAAA,aACZ3C,EAAO,gBAAgB,QAAW5B,CAAO,EAAE,KAAK,GAAG,CAAC,KAAKwE,GAC3DD,EAAc,WAAWtB;AAAA,QACvBjD,EAAQ;AAAA,QACR4B,EAAO;AAAA,QACPZ;AAAA,MACA,EAAA;AAGJ,QAAI0D,IAA8C;AAAA,MAChD,UAAUR;AAAA,MACV,QAAQ;AAAA,MACR,YAAYM;AAAA,IAAA;AAEd,QAAIf,EAAU,SAAS;AACrB,YAAMgB,IAAShB,EAAU;AACN,MAAAiB,IAAA;AAAA,QACjB,QAAAD;AAAA,QACA,UAAUhB,EAAU;AAAA,QACpB,YAAYgB,IACRhB,EACG;AAAA,UACC;AAAA,YACE,SAAS,CAACM,CAAK;AAAA,YACf,iBAAiBR;AAAA,UACnB;AAAA,UACAvD;AAAA,QAED,EAAA,KAAK,GAAG,CAAC,KAAKwE,IACjBA;AAAA,MAAA;AAAA,IACN;AAEA,MAAAE,EAAiB,aACfjB,EACG;AAAA,QACC;AAAA,UACE,SAAS,CAACM,CAAK;AAAA,UACf,iBAAiBR;AAAA,QACnB;AAAA,QACAvD;AAAA,MAED,EAAA,KAAK,GAAG,CAAC,KAAKwE,GACnBE,EAAiB,WAAWzB;AAAA,QAC1BjD,EAAQ;AAAA,QACRyD,EAAU;AAAA,QACVzC;AAAA,MACA,EAAA;AAGJ,QAAI2D,IAA8C;AAAA,MAChD,UAAUT;AAAA,MACV,QAAQ;AAAA,MACR,YAAYM;AAAA,IAAA;AAEd,QAAId,EAAU,SAAS;AACrB,YAAMe,IAASf,EAAU;AACN,MAAAiB,IAAA;AAAA,QACjB,QAAAF;AAAA,QACA,UAAUf,EAAU;AAAA,QACpB,YAAYe,IACRD,IACAA;AAAA,MAAA;AAAA,IACN;AAEiB,MAAAG,EAAA,aACfjB,EAAU,gBAAgB,QAAW1D,CAAO,EAAE,KAAK,GAAG,CAAC,KAAKwE,GAC9DG,EAAiB,WAAW1B;AAAA,QAC1BjD,EAAQ;AAAA,QACR0D,EAAU;AAAA,QACV1C;AAAA,MACA,EAAA;AAGE,UAAA4D,IAAoCjB,EAAW,IAAI,OAAO;AAAA,MAC9D,UAAUO;AAAA,MACV,QAAQ;AAAA,MACR,YAAYM;AAAA,IACZ,EAAA;AACF,aAASK,IAAI,GAAGA,IAAIlB,EAAW,QAAQkB,KAAK;AAEpC,YAAAC,IAAYnB,EAAW,GAAGkB,CAAC;AACjC,UAAIC,EAAU,SAAS;AACrB,cAAML,IAASK,EAAU;AACzB,YAAI,CAACL,EAAc,OAAA,IAAIM,GAA2BD,CAAS;AAC3D,QAAAF,EAAmBC,CAAC,IAAI;AAAA,UACtB,QAAAJ;AAAA,UACA,UAAUK,EAAU;AAAA,UACpB,YAAYL,IACRK,EAAU,gBAAgB,QAAW9E,CAAO,EAAE,KAAK,GAAG,CAAC,KACvDwE,IACAA;AAAA,QAAA;AAAA,MACN;AAGmB,QAAAI,EAAAC,CAAC,EAAG,aACrBC,EAAU,gBAAgB,QAAW9E,CAAO,EAAE,KAAK,GAAG,CAAC,KAAKwE,GAE3CI,EAAAC,CAAC,EAAG,WAAW5B;AAAA,UAChCjD,EAAQ;AAAA,UACR8E,EAAU;AAAA,UACV9D;AAAA,QACA,EAAA;AAAA,IAEN;AAEA,UAAMgE,IAAiB;AAAA,MACrB,QAAQZ;AAAA,MACR,QAAQG;AAAA,MACR,WAAWG;AAAA,MACX,WAAWC;AAAA,MACX,YAAYC;AAAA,MACZ,aAAAhB;AAAA,MACA,aAAAC;AAAA,MACA,iBAAAC;AAAA,MACA,OAAAC;AAAA,IAAA,GAGIkB,IAAY,MAAMjB,EAAahE,EAAQ,QAAQ;AAAA,MACnD,GAAG,KAAK,wBAAwBA,EAAQ,OAAO;AAAA;AAAA,MAE/C,GAAIoD;AAAA,MACJ,SAAApC;AAAA,MACA,MAAM,CAACkE,GAAoBF,CAAc,CAAC;AAAA,IAAA,CAC3C,GACKG,IAAU,MAAMC,GAA0BpF,EAAQ,QAAQ;AAAA,MAC9D,MAAMiF;AAAA,IAAA,CACP,GACKI,IAAkBC,GAAe;AAAA,MACrC,KAAKpC;AAAAA,MACL,WAAW;AAAA,MACX,MAAMiC,EAAQ;AAAA,IAAA,CACf,EAAE,GAAG,CAAC;AACP,QAAII,IAAU;AACd,QAAI,CAACF,EAAuB,OAAA,IAAIG;AAChC,IAAAD,IAAUF,KAAA,gBAAAA,EAAiB,KAAK;AAChC,UAAMI,IAAQ,MAAM,KAAK,UAAUF,CAAO;AAC1C,WAAO,IAAIG,EAAM;AAAA,MACf,IAAIH;AAAA,MACJ,QAAQ/B,EAAO,GAAGiC,EAAM,MAAM;AAAA,MAC9B,QAAQ7D,EAAO,GAAG6D,EAAM,MAAM;AAAA,MAC9B,WAAWhC,EAAU,GAAGgC,EAAM,SAAS;AAAA,MACvC,WAAW/B,EAAU,GAAG+B,EAAM,SAAS;AAAA,MACvC,YAAY9B,EAAW;AAAA,QAAI,CAACmB,GAAWD;AAAA;AAAA,UAErCC,EAAU,GAAGW,EAAM,WAAW,GAAGZ,CAAC,CAAE;AAAA;AAAA,MACtC;AAAA,MACA,aAAaY,EAAM;AAAA,MACnB,aAAaA,EAAM;AAAA,MACnB,iBAAiBA,EAAM;AAAA,MACvB,OAAOA,EAAM;AAAA,IAAA,CACd;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,MAAa,eACXF,GACAI,GACAjH,GACAkH,GACAxG,GACA;AACA,WAAO,MAAM,KAAK;AAAA,MAChB,KAAK,kBAAkBmG,GAASI,GAAajH,GAASkH,GAAMxG,CAAM;AAAA,IAAA;AAAA,EAEtE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,MAAa,kBACXmG,GACAI,GACAE,GACAD,GACAxG,GACA;;AACA,UAAM,EAAE,SAAA2C,GAAS,QAAAD,EAAO,IAAI,MAAMgE;AAAAA,MAChC,KAAK;AAAA,MACL;AAAA,QACE,GAAG7C;AAAA,UACD,KAAK;AAAA,UACL,KAAK;AAAA,YACL/C,IAAAd,KAAA,gBAAAA,EAAQ,UAAR,gBAAAc,EAAe,QAAMd,KAAA,gBAAAA,EAAQ;AAAA,QAC/B;AAAA,QACA,MAAM,CAACmG,GAASI,GAAaE,GAAUD,CAAI;AAAA,QAC3C,GAAG,KAAK,wBAAwB;AAAA;AAAA,QAEhC,GAAIxG;AAAA,MACN;AAAA,IAAA;AAGK,WAAA,EAAE,MADI,MAAM2G,EAA6B,KAAK,SAAShE,CAAO,GACtD,QAAAD;EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeA,MAAa,kBACXyD,GACAI,GACAE,GACAD,GACAI,GACA5G,GACA;AACA,WAAO,MAAM,KAAK;AAAA,MAChB,KAAK;AAAA,QACHmG;AAAA,QACAI;AAAA,QACAE;AAAA,QACAD;AAAA,QACAI;AAAA,QACA5G;AAAA,MACF;AAAA,IAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeA,MAAa,qBACXmG,GACAI,GACAE,GACAD,GACAI,GACA5G,GACA;;AACA,UAAM,EAAE,SAAA2C,GAAS,QAAAD,EAAO,IAAI,MAAMmE;AAAAA,MAChC,KAAK;AAAA,MACL;AAAA,QACE,GAAGhD;AAAA,UACD,KAAK;AAAA,UACL,KAAK;AAAA,YACL/C,IAAAd,KAAA,gBAAAA,EAAQ,UAAR,gBAAAc,EAAe,QAAMd,KAAA,gBAAAA,EAAQ;AAAA,QAC/B;AAAA,QACA,MAAM,CAACmG,GAASI,GAAaE,GAAUD,GAAMI,CAAQ;AAAA,QACrD,GAAG,KAAK,wBAAwB;AAAA;AAAA,QAEhC,GAAI5G;AAAA,MACN;AAAA,IAAA;AAGK,WAAA,EAAE,MADI,MAAM8G,GAAgC,KAAK,SAASnE,CAAO,GACzD,QAAAD;EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAa,UACXqE,GACA/G,GACA;AACO,WAAA,MAAMgH,GAAsB,KAAK,SAAS;AAAA,MAC/C,SAAS,KAAK,mBAAmB;AAAA,MACjC,MAAM,CAACD,CAAE;AAAA,MACT,GAAG,KAAK,wBAAwB;AAAA;AAAA,MAEhC,GAAI/G;AAAA,IAAA,CACL;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAa,SACXiH,GACAjH,GACA;AACI,QAAA+G;AACA,IAAA,OAAOE,KAAQ,WACjBF,IAAK,OAAOE,CAAG,IACLF,IAAAE;AACN,UAAA;AAAA,MACJ,aAAAzC;AAAA,MACA,aAAAC;AAAA,MACA,iBAAAC;AAAA,MACA,OAAAC;AAAA,MACA,GAAGuC;AAAA,IACD,IAAA,MAAM,KAAK,UAAUH,GAAI/G,CAAM,GAC7BY,IAA6B;AAAA,MACjC,QAAQ,KAAK;AAAA,MACb,SAAS,KAAK;AAAA,IAAA,GAEV,CAAC4B,GAAQ4B,GAAQC,GAAWC,GAAWC,CAAU,IACrD,MAAM,QAAQ,IAAI;AAAA,MAChB4C,GAAkBvG,GAASsG,EAAa,MAAM;AAAA,MAC9CE,GAAkBxG,GAASsG,EAAa,MAAM;AAAA,MAC9CG,GAAqBzG,GAASsG,EAAa,SAAS;AAAA,MACpDI,GAAqB1G,GAASsG,EAAa,SAAS;AAAA,MACpD,QAAQ;AAAA,QACNA,EAAa,WAAW;AAAA,UAAI,CAACK,MAC3BC,GAAqB5G,GAAS2G,CAAgB;AAAA,QAChD;AAAA,MACF;AAAA,IAAA,CACD;AACH,WAAO,IAAIjB,EAAM;AAAA,MACf,IAAAS;AAAA,MACA,QAAAvE;AAAA,MACA,QAAA4B;AAAA,MACA,WAAAC;AAAA,MACA,WAAAC;AAAA,MACA,YAAAC;AAAA,MACA,aAAAC;AAAA,MACA,aAAAC;AAAA,MACA,iBAAAC;AAAA,MACA,OAAAC;AAAA,IAAA,CACD;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAa,cACX3E,GACA;AACO,WAAA,MAAMyH,GAA2B,KAAK,SAAS;AAAA,MACpD,GAAG5D;AAAA,QACD,KAAK;AAAA,QACL,KAAK;AAAA,QACL7D,KAAA,gBAAAA,EAAQ;AAAA,MACV;AAAA,MACA,MAAM,CAAC;AAAA,MACP,GAAG,KAAK,wBAAwB;AAAA;AAAA,MAEhC,GAAIA;AAAA,IAAA,CACL;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MAAa,aACXV,GACAU,GAEA;AACA,UAAM0H,IAAO,MAAM,KAAK,gBAAgB1H,CAAM;AACvC,WAAA2H,GAAsB,KAAK,SAAS;AAAA,MACzC,SAASD;AAAA,MACT,MAAM,CAACpI,CAAO;AAAA,MACd,GAAG,KAAK,wBAAwB;AAAA;AAAA,MAEhC,GAAIU;AAAA,IAAA,CACL;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAa,gBACXA,GACA;AACO,WAAA,MAAM4H,GAA6B,KAAK,SAAS;AAAA,MACtD,GAAG/D;AAAA,QACD,KAAK;AAAA,QACL,KAAK;AAAA,QACL7D,KAAA,gBAAAA,EAAQ;AAAA,MACV;AAAA,MACA,MAAM,CAAC;AAAA,MACP,GAAG,KAAK,wBAAwB;AAAA;AAAA,MAEhC,GAAIA;AAAA,IAAA,CACL;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAa,mBACX0H,GACA1H,GACA;AACA,WAAO,MAAM,KAAK;AAAA,MAChB,KAAK,sBAAsB0H,EAAK,sBAAsB;AAAA,QACpD,GAAG1H;AAAA,MAAA,CACJ;AAAA,IAAA;AAAA,EAEL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAa,sBACXV,GACAU,GACA;AACA,UAAM,EAAE,SAAA2C,GAAS,QAAAD,EAAO,IAAI,MAAMmF;AAAAA,MAChC,KAAK;AAAA,MACL;AAAA,QACE,GAAGhE;AAAA,UACD,KAAK;AAAA,UACL,KAAK;AAAA,UACL7D,KAAA,gBAAAA,EAAQ;AAAA,QACV;AAAA,QACA,MAAM,CAACV,CAAO;AAAA,QACd,GAAG,KAAK,wBAAwB;AAAA;AAAA,QAEhC,GAAIU;AAAA,MACN;AAAA,IAAA;AAGK,WAAA,EAAE,MADI,MAAM8H,GAAiC,KAAK,SAASnF,CAAO,GAC1D,QAAAD;EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAa,YACX1C,GACA;AACO,WAAA,MAAM+H,GAAyB,KAAK,SAAS;AAAA,MAClD,GAAGlE;AAAA,QACD,KAAK;AAAA,QACL,KAAK;AAAA,QACL7D,KAAA,gBAAAA,EAAQ;AAAA,MACV;AAAA,MACA,MAAM,CAAC;AAAA,MACP,GAAG,KAAK,wBAAwB;AAAA;AAAA,MAEhC,GAAIA;AAAA,IAAA,CACL;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAa,oBACXA,GACA;AACO,WAAA,MAAMgI,GAAiC,KAAK,SAAS;AAAA,MAC1D,GAAGnE;AAAA,QACD,KAAK;AAAA,QACL,KAAK;AAAA,QACL7D,KAAA,gBAAAA,EAAQ;AAAA,MACV;AAAA,MACA,MAAM,CAAC;AAAA,MACP,GAAG,KAAK,wBAAwB;AAAA;AAAA,MAEhC,GAAIA;AAAA,IAAA,CACL;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAa,qBACXV,GACAU,GACA;AACA,WAAO,MAAM,KAAK;AAAA,MAChB,KAAK,wBAAwBV,GAAS;AAAA,QACpC,GAAGU;AAAA,MAAA,CACJ;AAAA,IAAA;AAAA,EAEL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAa,wBACXV,GACAU,GACA;AACA,UAAM,EAAE,SAAA2C,GAAS,QAAAD,EAAO,IAAI,MAAMuF;AAAAA,MAChC,KAAK;AAAA,MACL;AAAA,QACE,GAAGpE;AAAA,UACD,KAAK;AAAA,UACL,KAAK;AAAA,UACL7D,KAAA,gBAAAA,EAAQ;AAAA,QACV;AAAA,QACA,MAAM,CAACV,CAAO;AAAA,QACd,GAAG,KAAK,wBAAwB;AAAA;AAAA,QAEhC,GAAIU;AAAA,MACN;AAAA,IAAA;AAMK,WAAA,EAAE,MAJI,MAAMkI;AAAAA,MACjB,KAAK;AAAA,MACLvF;AAAA,IAAA,GAEa,QAAAD;EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAa,SAAS1C,GAAsD;AACnE,WAAA,MAAMmI,GAAsB,KAAK,SAAS;AAAA,MAC/C,GAAGtE;AAAA,QACD,KAAK;AAAA,QACL,KAAK;AAAA,QACL7D,KAAA,gBAAAA,EAAQ;AAAA,MACV;AAAA,MACA,MAAM,CAAC;AAAA,MACP,GAAG,KAAK,wBAAwB;AAAA;AAAA,MAEhC,GAAIA;AAAA,IAAA,CACL;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAa,YACXoI,GACApI,GACA;AACA,WAAO,MAAM,KAAK,YAAY,KAAK,eAAeoI,GAAUpI,CAAM,CAAC;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAa,eACXoI,GACApI,GACA;AACA,UAAM,EAAE,SAAA2C,GAAS,QAAAD,EAAO,IAAI,MAAM2F;AAAAA,MAChC,KAAK;AAAA,MACL;AAAA,QACE,GAAGxE;AAAA,UACD,KAAK;AAAA,UACL,KAAK;AAAA,UACL7D,KAAA,gBAAAA,EAAQ;AAAA,QACV;AAAA,QACA,MAAM,CAACoI,CAAQ;AAAA,QACf,GAAG,KAAK,wBAAwB;AAAA;AAAA,QAEhC,GAAIpI;AAAA,MACN;AAAA,IAAA;AAGK,WAAA,EAAE,MADI,MAAMsI,GAA0B,KAAK,SAAS3F,CAAO,GACnD,QAAAD;EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,gBAAgBpD,GAAmB;AACjC,WAAO,IAAIiJ;AAAA,MACT,EAAE,QAAQ,KAAK,SAAS,SAAS,KAAK,SAAS;AAAA,MAC/CjJ;AAAA,IAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiCA,YACEsB,GACAyE,GACA;AACA,WAAO,IAAImD;AAAA,MACT,EAAE,QAAQ,KAAK,SAAS,SAAS,KAAK,SAAS;AAAA,MAC/C5H;AAAA,MACAyE;AAAA,IAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkCA,cAAcA,GAAkB;AAC9B,WAAO,IAAIoD;AAAA,MACT,EAAE,QAAQ,KAAK,SAAS,SAAS,KAAK,SAAS;AAAA,MAC/C;AAAA,MACApD;AAAA,IAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,gBACEzE,GACAyE,GACA;AACA,WAAO,IAAIqD;AAAA,MACT,EAAE,QAAQ,KAAK,SAAS,SAAS,KAAK,SAAS;AAAA,MAC/C9H;AAAA,MACAyE;AAAA,IAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,eACEzE,GACAyE,GACA;AACA,WAAO,IAAIsD;AAAA,MACT,EAAE,QAAQ,KAAK,SAAS,SAAS,KAAK,SAAS;AAAA,MAC/C/H;AAAA,MACAyE;AAAA,IAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA6BA,cAAczE,GAA2D;AACvE,WAAO,IAAIgI;AAAA,MACT,EAAE,QAAQ,KAAK,SAAS,SAAS,KAAK,SAAS;AAAA,MAC/ChI;AAAA,IAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA6BA,mBAAmBA,GAAoC;AACrD,WAAO,IAAIiI;AAAA,MACT,EAAE,QAAQ,KAAK,SAAS,SAAS,KAAK,SAAS;AAAA,MAC/CjI;AAAA,IAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,cAAcA,GAA+B;AAC3C,WAAO,IAAIkI;AAAA,MACT,EAAE,QAAQ,KAAK,SAAS,SAAS,KAAK,SAAS;AAAA,MAC/ClI;AAAA,IAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,eAAeA,GAAgC;AAC7C,WAAO,IAAImI;AAAA,MACT,EAAE,QAAQ,KAAK,SAAS,SAAS,KAAK,SAAS;AAAA,MAC/CnI;AAAA,IAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA+BA,gBAAgBA,GAAiC;AAC/C,WAAO,IAAIoI;AAAA,MACT,EAAE,QAAQ,KAAK,SAAS,SAAS,KAAK,SAAS;AAAA,MAC/CpI;AAAA,IAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,gBACEA,GACAyE,GACA;AACA,WAAO,IAAI4D;AAAA,MACT,EAAE,QAAQ,KAAK,SAAS,SAAS,KAAK,SAAS;AAAA,MAC/CrI;AAAA,MACAyE;AAAA,IAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,uBACEzE,GACAyE,GACA;AACA,WAAO,IAAI6D;AAAA,MACT,EAAE,QAAQ,KAAK,SAAS,SAAS,KAAK,SAAS;AAAA,MAC/CtI;AAAA,MACAyE;AAAA,IAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUgB,gBACd8D,GACAC,GACyB;AACzB,UAAM,CAACnF,GAASrD,CAAO,IAAI,KAAK;AAAA,MAC9BuI;AAAA,MACAC;AAAA,IAAA;AAEK,WAAA;AAAA,MACL,KAAKtF;AAAAA,MACL,UAAAuF;AAAA,MACA,MAAMpF;AAAA,MACN,GAAG,KAAK,wBAAwBrD,EAAQ,OAAO;AAAA,IAAA;AAAA,EAEnD;AACF;AApmCE+C,EAAgB,YAAqCH;AAXhD,IAAM8F,IAAN3F;","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10]}
1
+ {"version":3,"file":"BoostCore.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./generated-CMQ6ZC2_.cjs"),A=require("viem"),g=require("./deployments-Ho4PnGCS.cjs"),_=require("./Deployable/Deployable.cjs"),t=require("./utils.cjs"),I="0x6080604052348015600e575f80fd5b50611b4e8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610086575f3560e01c8063acc83fc811610059578063acc83fc81461014a578063d12dd4811461017a578063f166879214610196578063fd97064b146101c657610086565b806301ffc9a71461008a5780633aaf1626146100ba578063792aa01c146100ea57806383f388591461011a575b5f80fd5b6100a4600480360381019061009f9190610e0e565b6101f6565b6040516100b19190610e53565b60405180910390f35b6100d460048036038101906100cf9190610e9f565b61025f565b6040516100e191906110a7565b60405180910390f35b61010460048036038101906100ff91906110f1565b610471565b60405161011191906111d3565b60405180910390f35b610134600480360381019061012f9190610e9f565b610504565b6040516101419190611202565b60405180910390f35b610164600480360381019061015f919061129f565b6105ac565b6040516101719190611332565b60405180910390f35b610194600480360381019061018f919061134b565b6105ee565b005b6101b060048036038101906101ab91906113bc565b610818565b6040516101bd9190611332565b60405180910390f35b6101e060048036038101906101db919061146e565b610854565b6040516101ed9190611202565b60405180910390f35b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610267610d4e565b60015f8381526020019081526020015f206040518060800160405290815f82015f9054906101000a900460ff1660048111156102a6576102a5610eca565b5b60048111156102b8576102b7610eca565b5b81526020015f820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820180546103769061153e565b80601f01602080910402602001604051908101604052809291908181526020018280546103a29061153e565b80156103ed5780601f106103c4576101008083540402835291602001916103ed565b820191905f5260205f20905b8154815290600101906020018083116103d057829003601f168201915b50505050508152505090505f73ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff160361046c57816040517f8cc00d160000000000000000000000000000000000000000000000000000000081526004016104639190611332565b60405180910390fd5b919050565b606060025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208054806020026020016040519081016040528092919081815260200182805480156104f857602002820191905f5260205f20905b8154815260200190600101908083116104e4575b50505050509050919050565b5f805f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105a757816040517f8cc00d1600000000000000000000000000000000000000000000000000000000815260040161059e9190611332565b60405180910390fd5b919050565b5f6105e386868686866040516020016105c894939291906115ef565b60405160208183030381529060405280519060200120610c1c565b905095945050505050565b808073ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f6ab67a0d000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016106489190611638565b602060405180830381865afa158015610663573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610687919061167b565b6106c857806040517f903b13fd0000000000000000000000000000000000000000000000000000000081526004016106bf91906116b5565b60405180910390fd5b5f6106d4868686610818565b90505f73ffffffffffffffffffffffffffffffffffffffff165f808381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107775785816040517f96b5684c00000000000000000000000000000000000000000000000000000000815260040161076e9291906116dd565b60405180910390fd5b825f808381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808660048111156107d9576107d8610eca565b5b7f660d31df25c96b8a337fcf12a56b7363e5a997639db853d5dbaec7c01f31bd808560405161080891906116b5565b60405180910390a3505050505050565b5f61084b848484604051602001610830929190611704565b60405160208183030381529060405280519060200120610c1c565b90509392505050565b5f3068929eee149b4bd2126854036108735763ab143c065f526004601cfd5b3068929eee149b4bd212685561091b878787873360405160200161089b959493929190611750565b6040516020818303038152906040528051906020012084848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050508873ffffffffffffffffffffffffffffffffffffffff16610c4e9092919063ffffffff16565b90505f61092b88883389896105ac565b90505f73ffffffffffffffffffffffffffffffffffffffff1660015f8381526020019081526020015f205f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d25787816040517f96b5684c0000000000000000000000000000000000000000000000000000000081526004016109c99291906116dd565b60405180910390fd5b60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f20015f90919091909150556040518060800160405280896004811115610a5157610a50610eca565b5b81526020018373ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff16815260200187878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081525060015f8381526020019081526020015f205f820151815f015f6101000a81548160ff02191690836004811115610b0e57610b0d610eca565b5b02179055506020820151815f0160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816002019081610bb49190611965565b5090505080886004811115610bcc57610bcb610eca565b5b7f2348fcdb9847b17a183e53aa32c0c5c76afdef8fcb14bb51f216c6611701ab1a8985604051610bfd929190611a34565b60405180910390a3503868929eee149b4bd21268559695505050505050565b5f8282604051602001610c30929190611a7b565b60405160208183030381529060405280519060200120905092915050565b5f610c78838573ffffffffffffffffffffffffffffffffffffffff16610ce790919063ffffffff16565b90508073ffffffffffffffffffffffffffffffffffffffff1663439fab91836040518263ffffffff1660e01b8152600401610cb39190611af8565b5f604051808303815f87803b158015610cca575f80fd5b505af1158015610cdc573d5f803e3d5ffd5b505050509392505050565b5f610cf35f8484610cfb565b905092915050565b5f6c5af43d3d93803e602a57fd5bf36021528260145273602c3d8160093d39f33d3d3d3d363d3d37363d735f52816035600c86f5905080610d435763301164255f526004601cfd5b5f6021529392505050565b60405180608001604052805f6004811115610d6c57610d6b610eca565b5b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610ded81610db9565b8114610df7575f80fd5b50565b5f81359050610e0881610de4565b92915050565b5f60208284031215610e2357610e22610db1565b5b5f610e3084828501610dfa565b91505092915050565b5f8115159050919050565b610e4d81610e39565b82525050565b5f602082019050610e665f830184610e44565b92915050565b5f819050919050565b610e7e81610e6c565b8114610e88575f80fd5b50565b5f81359050610e9981610e75565b92915050565b5f60208284031215610eb457610eb3610db1565b5b5f610ec184828501610e8b565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60058110610f0857610f07610eca565b5b50565b5f819050610f1882610ef7565b919050565b5f610f2782610f0b565b9050919050565b610f3781610f1d565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f610f7f610f7a610f7584610f3d565b610f5c565b610f3d565b9050919050565b5f610f9082610f65565b9050919050565b5f610fa182610f86565b9050919050565b610fb181610f97565b82525050565b5f610fc182610f3d565b9050919050565b610fd181610fb7565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61101982610fd7565b6110238185610fe1565b9350611033818560208601610ff1565b61103c81610fff565b840191505092915050565b5f608083015f83015161105c5f860182610f2e565b50602083015161106f6020860182610fa8565b5060408301516110826040860182610fc8565b506060830151848203606086015261109a828261100f565b9150508091505092915050565b5f6020820190508181035f8301526110bf8184611047565b905092915050565b6110d081610fb7565b81146110da575f80fd5b50565b5f813590506110eb816110c7565b92915050565b5f6020828403121561110657611105610db1565b5b5f611113848285016110dd565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61114e81610e6c565b82525050565b5f61115f8383611145565b60208301905092915050565b5f602082019050919050565b5f6111818261111c565b61118b8185611126565b935061119683611136565b805f5b838110156111c65781516111ad8882611154565b97506111b88361116b565b925050600181019050611199565b5085935050505092915050565b5f6020820190508181035f8301526111eb8184611177565b905092915050565b6111fc81610f97565b82525050565b5f6020820190506112155f8301846111f3565b92915050565b60058110611227575f80fd5b50565b5f813590506112388161121b565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261125f5761125e61123e565b5b8235905067ffffffffffffffff81111561127c5761127b611242565b5b60208301915083600182028301111561129857611297611246565b5b9250929050565b5f805f805f608086880312156112b8576112b7610db1565b5b5f6112c58882890161122a565b95505060206112d6888289016110dd565b94505060406112e7888289016110dd565b935050606086013567ffffffffffffffff81111561130857611307610db5565b5b6113148882890161124a565b92509250509295509295909350565b61132c81610e6c565b82525050565b5f6020820190506113455f830184611323565b92915050565b5f805f806060858703121561136357611362610db1565b5b5f6113708782880161122a565b945050602085013567ffffffffffffffff81111561139157611390610db5565b5b61139d8782880161124a565b935093505060406113b0878288016110dd565b91505092959194509250565b5f805f604084860312156113d3576113d2610db1565b5b5f6113e08682870161122a565b935050602084013567ffffffffffffffff81111561140157611400610db5565b5b61140d8682870161124a565b92509250509250925092565b5f8083601f84011261142e5761142d61123e565b5b8235905067ffffffffffffffff81111561144b5761144a611242565b5b60208301915083600182028301111561146757611466611246565b5b9250929050565b5f805f805f806080878903121561148857611487610db1565b5b5f61149589828a0161122a565b96505060206114a689828a016110dd565b955050604087013567ffffffffffffffff8111156114c7576114c6610db5565b5b6114d389828a0161124a565b9450945050606087013567ffffffffffffffff8111156114f6576114f5610db5565b5b61150289828a01611419565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061155557607f821691505b60208210810361156857611567611511565b5b50919050565b5f8160601b9050919050565b5f6115848261156e565b9050919050565b5f6115958261157a565b9050919050565b6115ad6115a882610fb7565b61158b565b82525050565b5f81905092915050565b828183375f83830152505050565b5f6115d683856115b3565b93506115e38385846115bd565b82840190509392505050565b5f6115fa828761159c565b60148201915061160a828661159c565b60148201915061161b8284866115cb565b915081905095945050505050565b61163281610db9565b82525050565b5f60208201905061164b5f830184611629565b92915050565b61165a81610e39565b8114611664575f80fd5b50565b5f8151905061167581611651565b92915050565b5f602082840312156116905761168f610db1565b5b5f61169d84828501611667565b91505092915050565b6116af81610fb7565b82525050565b5f6020820190506116c85f8301846116a6565b92915050565b6116d781610f1d565b82525050565b5f6040820190506116f05f8301856116ce565b6116fd6020830184611323565b9392505050565b5f6117108284866115cb565b91508190509392505050565b5f8160f81b9050919050565b5f6117328261171c565b9050919050565b61174a61174582610f1d565b611728565b82525050565b5f61175b8288611739565b60018201915061176b828761159c565b60148201915061177c8285876115cb565b9150611788828461159c565b6014820191508190509695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026118247fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826117e9565b61182e86836117e9565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61186961186461185f84611846565b610f5c565b611846565b9050919050565b5f819050919050565b6118828361184f565b61189661188e82611870565b8484546117f5565b825550505050565b5f90565b6118aa61189e565b6118b5818484611879565b505050565b5b818110156118d8576118cd5f826118a2565b6001810190506118bb565b5050565b601f82111561191d576118ee816117c8565b6118f7846117da565b81016020851015611906578190505b61191a611912856117da565b8301826118ba565b50505b505050565b5f82821c905092915050565b5f61193d5f1984600802611922565b1980831691505092915050565b5f611955838361192e565b9150826002028217905092915050565b61196e82610fd7565b67ffffffffffffffff8111156119875761198661179b565b5b611991825461153e565b61199c8282856118dc565b5f60209050601f8311600181146119cd575f84156119bb578287015190505b6119c5858261194a565b865550611a2c565b601f1984166119db866117c8565b5f5b82811015611a02578489015182556001820191506020850194506020810190506119dd565b86831015611a1f5784890151611a1b601f89168261192e565b8355505b6001600288020188555050505b505050505050565b5f604082019050611a475f8301856116a6565b611a5460208301846111f3565b9392505050565b5f819050919050565b611a75611a7082610e6c565b611a5b565b82525050565b5f611a868285611739565b600182019150611a968284611a64565b6020820191508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611aca82611aa6565b611ad48185611ab0565b9350611ae4818560208601610ff1565b611aed81610fff565b840191505092915050565b5f6020820190508181035f830152611b108184611ac0565b90509291505056fea264697066735822122025f4776dcf1b8b255da8b7c765bbdfb9d9a4cef371cc795f8b3c6c9c53de402f64736f6c634300081a0033",R=g.BoostRegistry[11155111],o={...g.BoostRegistry,31337:void 0};function S(i){return i.address&&A.isAddress(i.address)}function w(i){return i.address===null}const l=class l extends _.Deployable{get addresses(){return this.constructor.addresses}constructor({config:e,account:f,...b}){if(S(b)&&b.address)super({account:f,config:e},b.address);else if(w(b))super({account:f,config:e},[]);else{const{address:d}=t.assertValidAddressByChainId(e,o);super({account:f,config:e},d)}}async register(e,f,b,d){return await this.awaitResult(this.registerRaw(e,f,b,d))}async registerRaw(e,f,b,d){var n;const{request:a,result:s}=await c.Mc(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,((n=d==null?void 0:d.chain)==null?void 0:n.id)||(d==null?void 0:d.chainId)),args:[e,f,b],...this.optionallyAttachAccount(),...d});return{hash:await c.Ic(this._config,a),result:s}}initialize(e,f,b){return this.clone(e,f,b)}async clone(e,f,b){const d=await this.deployClone(e,f,b);return f.at(d)}async deployClone(e,f,b){return await this.awaitResult(this.deployCloneRaw(e,f,b))}async deployCloneRaw(e,f,b){var u,y;const d=f.buildParameters(void 0,{config:this._config,account:this._account}),{address:a}=t.assertValidAddressByChainId(this._config,f.bases,((u=b==null?void 0:b.chain)==null?void 0:u.id)||(b==null?void 0:b.chainId)),{request:s,result:r}=await c.gc(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,((y=b==null?void 0:b.chain)==null?void 0:y.id)||(b==null?void 0:b.chainId)),args:[f.registryType,a,e,d.args[0]],...this.optionallyAttachAccount(),...b});return{hash:await c.hc(this._config,s),result:r}}async getBaseImplementation(e,f){return await c.mc(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[e],...this.optionallyAttachAccount(),...f})}async getClone(e,f){return await c.mc(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[e],...this.optionallyAttachAccount(),...f})}async getClones(e,f){return await c.wc(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[e],...this.optionallyAttachAccount(),...f})}async getCloneIdentifier(e,f,b,d,a){return await c.fc(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,a==null?void 0:a.chainId),args:[e,f,b,d],...this.optionallyAttachAccount(),...a})}async getIdentifier(e,f,b){return await c.fc(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,b==null?void 0:b.chainId),args:[e,f],...this.optionallyAttachAccount(),...b})}buildParameters(e,f){const[,b]=this.validateDeploymentConfig([],f);return{abi:c.ne,bytecode:I,args:[],...this.optionallyAttachAccount(b.account)}}};l.addresses=o;let h=l;exports.BOOST_REGISTRY_ADDRESS=R;exports.BOOST_REGISTRY_ADDRESSES=o;exports.BoostRegistry=h;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./generated-B0tk-c9b.cjs"),A=require("viem"),g=require("./deployments-CMdF5uEC.cjs"),_=require("./Deployable/Deployable.cjs"),t=require("./utils.cjs"),I="0x6080604052348015600e575f80fd5b50611b4e8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610086575f3560e01c8063acc83fc811610059578063acc83fc81461014a578063d12dd4811461017a578063f166879214610196578063fd97064b146101c657610086565b806301ffc9a71461008a5780633aaf1626146100ba578063792aa01c146100ea57806383f388591461011a575b5f80fd5b6100a4600480360381019061009f9190610e0e565b6101f6565b6040516100b19190610e53565b60405180910390f35b6100d460048036038101906100cf9190610e9f565b61025f565b6040516100e191906110a7565b60405180910390f35b61010460048036038101906100ff91906110f1565b610471565b60405161011191906111d3565b60405180910390f35b610134600480360381019061012f9190610e9f565b610504565b6040516101419190611202565b60405180910390f35b610164600480360381019061015f919061129f565b6105ac565b6040516101719190611332565b60405180910390f35b610194600480360381019061018f919061134b565b6105ee565b005b6101b060048036038101906101ab91906113bc565b610818565b6040516101bd9190611332565b60405180910390f35b6101e060048036038101906101db919061146e565b610854565b6040516101ed9190611202565b60405180910390f35b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610267610d4e565b60015f8381526020019081526020015f206040518060800160405290815f82015f9054906101000a900460ff1660048111156102a6576102a5610eca565b5b60048111156102b8576102b7610eca565b5b81526020015f820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820180546103769061153e565b80601f01602080910402602001604051908101604052809291908181526020018280546103a29061153e565b80156103ed5780601f106103c4576101008083540402835291602001916103ed565b820191905f5260205f20905b8154815290600101906020018083116103d057829003601f168201915b50505050508152505090505f73ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff160361046c57816040517f8cc00d160000000000000000000000000000000000000000000000000000000081526004016104639190611332565b60405180910390fd5b919050565b606060025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208054806020026020016040519081016040528092919081815260200182805480156104f857602002820191905f5260205f20905b8154815260200190600101908083116104e4575b50505050509050919050565b5f805f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105a757816040517f8cc00d1600000000000000000000000000000000000000000000000000000000815260040161059e9190611332565b60405180910390fd5b919050565b5f6105e386868686866040516020016105c894939291906115ef565b60405160208183030381529060405280519060200120610c1c565b905095945050505050565b808073ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f6ab67a0d000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016106489190611638565b602060405180830381865afa158015610663573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610687919061167b565b6106c857806040517f903b13fd0000000000000000000000000000000000000000000000000000000081526004016106bf91906116b5565b60405180910390fd5b5f6106d4868686610818565b90505f73ffffffffffffffffffffffffffffffffffffffff165f808381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107775785816040517f96b5684c00000000000000000000000000000000000000000000000000000000815260040161076e9291906116dd565b60405180910390fd5b825f808381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808660048111156107d9576107d8610eca565b5b7f660d31df25c96b8a337fcf12a56b7363e5a997639db853d5dbaec7c01f31bd808560405161080891906116b5565b60405180910390a3505050505050565b5f61084b848484604051602001610830929190611704565b60405160208183030381529060405280519060200120610c1c565b90509392505050565b5f3068929eee149b4bd2126854036108735763ab143c065f526004601cfd5b3068929eee149b4bd212685561091b878787873360405160200161089b959493929190611750565b6040516020818303038152906040528051906020012084848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050508873ffffffffffffffffffffffffffffffffffffffff16610c4e9092919063ffffffff16565b90505f61092b88883389896105ac565b90505f73ffffffffffffffffffffffffffffffffffffffff1660015f8381526020019081526020015f205f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d25787816040517f96b5684c0000000000000000000000000000000000000000000000000000000081526004016109c99291906116dd565b60405180910390fd5b60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f20015f90919091909150556040518060800160405280896004811115610a5157610a50610eca565b5b81526020018373ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff16815260200187878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081525060015f8381526020019081526020015f205f820151815f015f6101000a81548160ff02191690836004811115610b0e57610b0d610eca565b5b02179055506020820151815f0160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816002019081610bb49190611965565b5090505080886004811115610bcc57610bcb610eca565b5b7f2348fcdb9847b17a183e53aa32c0c5c76afdef8fcb14bb51f216c6611701ab1a8985604051610bfd929190611a34565b60405180910390a3503868929eee149b4bd21268559695505050505050565b5f8282604051602001610c30929190611a7b565b60405160208183030381529060405280519060200120905092915050565b5f610c78838573ffffffffffffffffffffffffffffffffffffffff16610ce790919063ffffffff16565b90508073ffffffffffffffffffffffffffffffffffffffff1663439fab91836040518263ffffffff1660e01b8152600401610cb39190611af8565b5f604051808303815f87803b158015610cca575f80fd5b505af1158015610cdc573d5f803e3d5ffd5b505050509392505050565b5f610cf35f8484610cfb565b905092915050565b5f6c5af43d3d93803e602a57fd5bf36021528260145273602c3d8160093d39f33d3d3d3d363d3d37363d735f52816035600c86f5905080610d435763301164255f526004601cfd5b5f6021529392505050565b60405180608001604052805f6004811115610d6c57610d6b610eca565b5b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610ded81610db9565b8114610df7575f80fd5b50565b5f81359050610e0881610de4565b92915050565b5f60208284031215610e2357610e22610db1565b5b5f610e3084828501610dfa565b91505092915050565b5f8115159050919050565b610e4d81610e39565b82525050565b5f602082019050610e665f830184610e44565b92915050565b5f819050919050565b610e7e81610e6c565b8114610e88575f80fd5b50565b5f81359050610e9981610e75565b92915050565b5f60208284031215610eb457610eb3610db1565b5b5f610ec184828501610e8b565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60058110610f0857610f07610eca565b5b50565b5f819050610f1882610ef7565b919050565b5f610f2782610f0b565b9050919050565b610f3781610f1d565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f610f7f610f7a610f7584610f3d565b610f5c565b610f3d565b9050919050565b5f610f9082610f65565b9050919050565b5f610fa182610f86565b9050919050565b610fb181610f97565b82525050565b5f610fc182610f3d565b9050919050565b610fd181610fb7565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61101982610fd7565b6110238185610fe1565b9350611033818560208601610ff1565b61103c81610fff565b840191505092915050565b5f608083015f83015161105c5f860182610f2e565b50602083015161106f6020860182610fa8565b5060408301516110826040860182610fc8565b506060830151848203606086015261109a828261100f565b9150508091505092915050565b5f6020820190508181035f8301526110bf8184611047565b905092915050565b6110d081610fb7565b81146110da575f80fd5b50565b5f813590506110eb816110c7565b92915050565b5f6020828403121561110657611105610db1565b5b5f611113848285016110dd565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61114e81610e6c565b82525050565b5f61115f8383611145565b60208301905092915050565b5f602082019050919050565b5f6111818261111c565b61118b8185611126565b935061119683611136565b805f5b838110156111c65781516111ad8882611154565b97506111b88361116b565b925050600181019050611199565b5085935050505092915050565b5f6020820190508181035f8301526111eb8184611177565b905092915050565b6111fc81610f97565b82525050565b5f6020820190506112155f8301846111f3565b92915050565b60058110611227575f80fd5b50565b5f813590506112388161121b565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261125f5761125e61123e565b5b8235905067ffffffffffffffff81111561127c5761127b611242565b5b60208301915083600182028301111561129857611297611246565b5b9250929050565b5f805f805f608086880312156112b8576112b7610db1565b5b5f6112c58882890161122a565b95505060206112d6888289016110dd565b94505060406112e7888289016110dd565b935050606086013567ffffffffffffffff81111561130857611307610db5565b5b6113148882890161124a565b92509250509295509295909350565b61132c81610e6c565b82525050565b5f6020820190506113455f830184611323565b92915050565b5f805f806060858703121561136357611362610db1565b5b5f6113708782880161122a565b945050602085013567ffffffffffffffff81111561139157611390610db5565b5b61139d8782880161124a565b935093505060406113b0878288016110dd565b91505092959194509250565b5f805f604084860312156113d3576113d2610db1565b5b5f6113e08682870161122a565b935050602084013567ffffffffffffffff81111561140157611400610db5565b5b61140d8682870161124a565b92509250509250925092565b5f8083601f84011261142e5761142d61123e565b5b8235905067ffffffffffffffff81111561144b5761144a611242565b5b60208301915083600182028301111561146757611466611246565b5b9250929050565b5f805f805f806080878903121561148857611487610db1565b5b5f61149589828a0161122a565b96505060206114a689828a016110dd565b955050604087013567ffffffffffffffff8111156114c7576114c6610db5565b5b6114d389828a0161124a565b9450945050606087013567ffffffffffffffff8111156114f6576114f5610db5565b5b61150289828a01611419565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061155557607f821691505b60208210810361156857611567611511565b5b50919050565b5f8160601b9050919050565b5f6115848261156e565b9050919050565b5f6115958261157a565b9050919050565b6115ad6115a882610fb7565b61158b565b82525050565b5f81905092915050565b828183375f83830152505050565b5f6115d683856115b3565b93506115e38385846115bd565b82840190509392505050565b5f6115fa828761159c565b60148201915061160a828661159c565b60148201915061161b8284866115cb565b915081905095945050505050565b61163281610db9565b82525050565b5f60208201905061164b5f830184611629565b92915050565b61165a81610e39565b8114611664575f80fd5b50565b5f8151905061167581611651565b92915050565b5f602082840312156116905761168f610db1565b5b5f61169d84828501611667565b91505092915050565b6116af81610fb7565b82525050565b5f6020820190506116c85f8301846116a6565b92915050565b6116d781610f1d565b82525050565b5f6040820190506116f05f8301856116ce565b6116fd6020830184611323565b9392505050565b5f6117108284866115cb565b91508190509392505050565b5f8160f81b9050919050565b5f6117328261171c565b9050919050565b61174a61174582610f1d565b611728565b82525050565b5f61175b8288611739565b60018201915061176b828761159c565b60148201915061177c8285876115cb565b9150611788828461159c565b6014820191508190509695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026118247fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826117e9565b61182e86836117e9565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61186961186461185f84611846565b610f5c565b611846565b9050919050565b5f819050919050565b6118828361184f565b61189661188e82611870565b8484546117f5565b825550505050565b5f90565b6118aa61189e565b6118b5818484611879565b505050565b5b818110156118d8576118cd5f826118a2565b6001810190506118bb565b5050565b601f82111561191d576118ee816117c8565b6118f7846117da565b81016020851015611906578190505b61191a611912856117da565b8301826118ba565b50505b505050565b5f82821c905092915050565b5f61193d5f1984600802611922565b1980831691505092915050565b5f611955838361192e565b9150826002028217905092915050565b61196e82610fd7565b67ffffffffffffffff8111156119875761198661179b565b5b611991825461153e565b61199c8282856118dc565b5f60209050601f8311600181146119cd575f84156119bb578287015190505b6119c5858261194a565b865550611a2c565b601f1984166119db866117c8565b5f5b82811015611a02578489015182556001820191506020850194506020810190506119dd565b86831015611a1f5784890151611a1b601f89168261192e565b8355505b6001600288020188555050505b505050505050565b5f604082019050611a475f8301856116a6565b611a5460208301846111f3565b9392505050565b5f819050919050565b611a75611a7082610e6c565b611a5b565b82525050565b5f611a868285611739565b600182019150611a968284611a64565b6020820191508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611aca82611aa6565b611ad48185611ab0565b9350611ae4818560208601610ff1565b611aed81610fff565b840191505092915050565b5f6020820190508181035f830152611b108184611ac0565b90509291505056fea264697066735822122072804537eed515463718e40a409974931303991920c5bbf276314028cc3ef6e764736f6c634300081a0033",R=g.BoostRegistry[11155111],o={...g.BoostRegistry,31337:void 0};function S(i){return i.address&&A.isAddress(i.address)}function w(i){return i.address===null}const l=class l extends _.Deployable{get addresses(){return this.constructor.addresses}constructor({config:e,account:f,...b}){if(S(b)&&b.address)super({account:f,config:e},b.address);else if(w(b))super({account:f,config:e},[]);else{const{address:d}=t.assertValidAddressByChainId(e,o);super({account:f,config:e},d)}}async register(e,f,b,d){return await this.awaitResult(this.registerRaw(e,f,b,d))}async registerRaw(e,f,b,d){var n;const{request:a,result:s}=await c.Oc(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,((n=d==null?void 0:d.chain)==null?void 0:n.id)||(d==null?void 0:d.chainId)),args:[e,f,b],...this.optionallyAttachAccount(),...d});return{hash:await c.hc(this._config,a),result:s}}initialize(e,f,b){return this.clone(e,f,b)}async clone(e,f,b){const d=await this.deployClone(e,f,b);return f.at(d)}async deployClone(e,f,b){return await this.awaitResult(this.deployCloneRaw(e,f,b))}async deployCloneRaw(e,f,b){var u,y;const d=f.buildParameters(void 0,{config:this._config,account:this._account}),{address:a}=t.assertValidAddressByChainId(this._config,f.bases,((u=b==null?void 0:b.chain)==null?void 0:u.id)||(b==null?void 0:b.chainId)),{request:s,result:r}=await c.gc(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,((y=b==null?void 0:b.chain)==null?void 0:y.id)||(b==null?void 0:b.chainId)),args:[f.registryType,a,e,d.args[0]],...this.optionallyAttachAccount(),...b});return{hash:await c.Ic(this._config,s),result:r}}async getBaseImplementation(e,f){return await c.mc(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[e],...this.optionallyAttachAccount(),...f})}async getClone(e,f){return await c.mc(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[e],...this.optionallyAttachAccount(),...f})}async getClones(e,f){return await c.vc(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[e],...this.optionallyAttachAccount(),...f})}async getCloneIdentifier(e,f,b,d,a){return await c.fc(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,a==null?void 0:a.chainId),args:[e,f,b,d],...this.optionallyAttachAccount(),...a})}async getIdentifier(e,f,b){return await c.fc(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,b==null?void 0:b.chainId),args:[e,f],...this.optionallyAttachAccount(),...b})}buildParameters(e,f){const[,b]=this.validateDeploymentConfig([],f);return{abi:c.ae,bytecode:I,args:[],...this.optionallyAttachAccount(b.account)}}};l.addresses=o;let h=l;exports.BOOST_REGISTRY_ADDRESS=R;exports.BOOST_REGISTRY_ADDRESSES=o;exports.BoostRegistry=h;
2
2
  //# sourceMappingURL=BoostRegistry.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"BoostRegistry.cjs","sources":["../src/BoostRegistry.ts"],"sourcesContent":["import {\n boostRegistryAbi,\n readBoostRegistryGetBaseImplementation,\n readBoostRegistryGetCloneIdentifier,\n readBoostRegistryGetClones,\n simulateBoostRegistryDeployClone,\n simulateBoostRegistryRegister,\n writeBoostRegistryDeployClone,\n writeBoostRegistryRegister,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/BoostRegistry.sol/BoostRegistry.json';\nimport {\n type Address,\n type ContractEventName,\n type Hex,\n isAddress,\n} from 'viem';\nimport { BoostRegistry as BoostRegistryBases } from '../dist/deployments.json';\nimport {\n Deployable,\n type DeployableOptions,\n type GenericDeployableParams,\n} from './Deployable/Deployable';\nimport type { DeployableTarget } from './Deployable/DeployableTarget';\nimport {\n type GenericLog,\n type HashAndSimulatedResult,\n type ReadParams,\n type RegistryType,\n type WriteParams,\n assertValidAddressByChainId,\n} from './utils';\n\n/**\n * The address of the deployed `BoostRegistry` instance. In prerelease mode, this will be its sepolia address\n *\n * @type {Address}\n */\nexport const BOOST_REGISTRY_ADDRESS = (\n BoostRegistryBases as Record<string, Address>\n)[__DEFAULT_CHAIN_ID__];\n\n/**\n * The fixed addresses for the deployed Boost Registry.\n * By default, `new BoostRegistry` will use the address deployed to the currently connected chain, or `BOOST_REGISTRY_ADDRESS` if not provided.\n *\n * @type {Record<number, Address>}\n */\nexport const BOOST_REGISTRY_ADDRESSES: Record<number, Address> = {\n ...(BoostRegistryBases as Record<number, Address>),\n 31337: import.meta.env.VITE_BOOST_REGISTRY_ADDRESS,\n};\n\n/**\n * A record of `BoostRegistry` event names to `AbiEvent` objects for use with `getLogs`\n *\n * @export\n * @typedef {BoostRegistryLog}\n * @template {ContractEventName<typeof boostRegistryAbi>} [event=ContractEventName<\n * typeof boostRegistryAbi\n * >]\n */\nexport type BoostRegistryLog<\n event extends ContractEventName<typeof boostRegistryAbi> = ContractEventName<\n typeof boostRegistryAbi\n >,\n> = GenericLog<typeof boostRegistryAbi, event>;\n\n/**\n * Instantiation options for a previously deployed Boost Registry\n *\n * @export\n * @interface BoostRegistryDeployedOptions\n * @typedef {BoostRegistryDeployedOptions}\n * @extends {DeployableOptions}\n */\nexport interface BoostRegistryDeployedOptions extends DeployableOptions {\n /**\n * The address for a Boost Registry, if different than `BOOST_REGISTRY_ADDRESS`\n *\n * @type {?Address}\n */\n address?: Address;\n}\n\n/**\n * A typeguard to determine if instantiation is using a custom address.\n *\n * @param {*} opts\n * @returns {opts is BoostRegistryDeployedOptions}\n */\nfunction isBoostRegistryDeployed(\n // biome-ignore lint/suspicious/noExplicitAny: type guard\n opts: any,\n): opts is BoostRegistryDeployedOptions {\n return opts.address && isAddress(opts.address);\n}\n\n/**\n * The Boost Registry does not take any construction arguments, so if you'd like to deploy a new Boost Registry, pass an explicit null to the `address` field.\n *\n * @export\n * @interface BoostRegistryOptionsWithPayload\n * @typedef {BoostRegistryOptionsWithPayload}\n * @extends {DeployableOptions}\n */\nexport interface BoostRegistryOptionsWithPayload extends DeployableOptions {\n /**\n *\n * @type {null}\n */\n address: null;\n}\n\n/**\n * A typeguard to determine if the user is intending to deploy a new Boost Registry before usage\n *\n * @param {*} opts\n * @returns {opts is BoostRegistryOptionsWithPayload}\n */\nfunction isBoostRegistryDeployable(\n // biome-ignore lint/suspicious/noExplicitAny: type guard\n opts: any,\n): opts is BoostRegistryOptionsWithPayload {\n return opts.address === null;\n}\n\n/**\n * Instantiation options for a Boost Registry.\n *\n * @example\n * To target Boost's Registry, omit the address field.\n * Otherwise, supply a custom address to a previously deployed custom Boost Registry.\n * You can also pass `{ address: null }` if you are intending to deploy a new Boost Registry.\n * ```ts\n * let registry = new BoostRegistry({ config, account })\n * // or\n * registry = new BoostRegistry({ config, account, address: CUSTOM_ADDRESS })\n * // or\n * registry = new BoostRegistry({ config, account, address: null })\n * await registry.deploy()\n * ```\n *\n * @export\n * @typedef {BoostRegistryConfig}\n */\nexport type BoostRegistryConfig =\n | BoostRegistryDeployedOptions\n | BoostRegistryOptionsWithPayload;\n\n/**\n * Constructs a new Boost Registry. A registry for base implementations and cloned instances.\n * This contract is used to register base implementations and deploy new instances of those implementations for use within the Boost protocol.\n *\n * @see {@link BoostRegistryConfig}\n * @export\n * @class BoostRegistry\n * @typedef {BoostRegistry}\n * @extends {Deployable<never[]>}\n */\nexport class BoostRegistry extends Deployable<\n never[],\n typeof boostRegistryAbi\n> {\n /**\n * A static property representing a map of stringified chain ID's to the address of the deployed implementation on chain\n *\n * @static\n * @readonly\n * @type {Record<string, Address>}\n */\n static readonly addresses: Record<number, Address> = BOOST_REGISTRY_ADDRESSES;\n\n /**\n * A getter that will return Boost registry's static addresses by numerical chain ID\n *\n * @public\n * @readonly\n * @type {Record<number, Address>}\n */\n public get addresses(): Record<number, Address> {\n return (this.constructor as typeof BoostRegistry).addresses;\n }\n\n /**\n * Creates an instance of BoostRegistry.\n *\n * @see {@link BoostRegistryConfig}\n * @constructor\n * @param {BoostRegistryConfig} param0\n * @param {Config} param0.config - [Wagmi Configuration](https://wagmi.sh/core/api/createConfig)\n * @param {?Account} [param0.account] - [Viem Local Account](https://viem.sh/docs/accounts/local)\n * @param {({ address?: Address; } | {})} param0....options\n */\n constructor({ config, account, ...options }: BoostRegistryConfig) {\n if (isBoostRegistryDeployed(options) && options.address) {\n super({ account, config }, options.address);\n } else if (isBoostRegistryDeployable(options)) {\n super({ account, config }, []);\n } else {\n const { address } = assertValidAddressByChainId(\n config,\n BOOST_REGISTRY_ADDRESSES,\n );\n super({ account, config }, address);\n }\n }\n\n /**\n * Register a new base implementation of a given type\n *\n * @public\n * @async\n * @param {RegistryType} registryType - The base type for the implementation\n * @param {string} name - A name for the implementation (must be unique within the given type)\n * @param {Address} implementation - The address of the implementation contract\n * @param {?WriteParams<typeof boostRegistryAbi, 'register'>} [params] - Optional params to provide the underlying Viem contract call\n * @returns {unknown}\n * @example\n * ```ts\n * await registry.register(ContractAction.registryType, 'ContractAction', ContractAction.base)\n * ```\n */\n public async register(\n registryType: RegistryType,\n name: string,\n implementation: Address,\n params?: WriteParams<typeof boostRegistryAbi, 'register'>,\n ) {\n return await this.awaitResult(\n this.registerRaw(registryType, name, implementation, params),\n );\n }\n\n /**\n * @see {@link register}\n * @public\n * @async\n * @param {RegistryType} registryType\n * @param {string} name\n * @param {Address} implementation\n * @param {?WriteParams<typeof boostRegistryAbi, 'register'>} [params]\n * @returns {unknown}\n */\n public async registerRaw(\n registryType: RegistryType,\n name: string,\n implementation: Address,\n params?: WriteParams<typeof boostRegistryAbi, 'register'>,\n ) {\n const { request, result } = await simulateBoostRegistryRegister(\n this._config,\n {\n ...assertValidAddressByChainId(\n this._config,\n this.addresses,\n params?.chain?.id || params?.chainId,\n ),\n args: [registryType, name, implementation],\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 writeBoostRegistryRegister(this._config, request);\n return { hash, result };\n }\n\n /**\n * Initialize a new instance of a registered base implementation, returning the provided target with a new address set on it.\n * This method is the same as `clone`, but serves to make its function more obvious as to why you'd need to use it.\n *\n * @public\n * @async\n * @template {DeployableTarget} Target\n * @param {string} displayName - The display name for the clone\n * @param {Target} target - An instance of a target contract to clone and initialize\n * @param {?WriteParams<typeof boostRegistryAbi, 'deployClone'>} [params]\n * @returns {Target} - The provided instance, but with a new address attached.\n * biome-ignore lint/suspicious/noExplicitAny: any deployable target will suffice\n */\n public initialize<Target extends DeployableTarget<any, any>>(\n displayName: string,\n target: Target,\n params?: WriteParams<typeof boostRegistryAbi, 'deployClone'>,\n ): Promise<Target> {\n return this.clone(displayName, target, params);\n }\n\n /**\n * Deploy a new instance of a registered base implementation, returning the provided target with a new address set on it.\n *\n * @public\n * @async\n * @template {DeployableTarget} Target\n * @param {string} displayName - The display name for the clone\n * @param {Target} target - An instance of a target contract to clone and initialize\n * @param {?WriteParams<typeof boostRegistryAbi, 'deployClone'>} [params]\n * @returns {Target} - The provided instance, but with a new address attached.\n * biome-ignore lint/suspicious/noExplicitAny: any deployable target will suffice\n */\n public async clone<Target extends DeployableTarget<any, any>>(\n displayName: string,\n target: Target,\n params?: WriteParams<typeof boostRegistryAbi, 'deployClone'>,\n ): Promise<Target> {\n const instance = await this.deployClone(displayName, target, params);\n return target.at(instance);\n }\n\n /**\n *\n * @see {@link clone}\n * @public\n * @async\n * @template {DeployableTarget} Target\n * @param {string} displayName\n * @param {Target} target\n * @param {?WriteParams<typeof boostRegistryAbi, 'deployClone'>} [params]\n * @returns {Target}\n * biome-ignore lint/suspicious/noExplicitAny: any deployable target will suffice\n */\n public async deployClone<Target extends DeployableTarget<any, any>>(\n displayName: string,\n target: Target,\n params?: WriteParams<typeof boostRegistryAbi, 'deployClone'>,\n ): Promise<Address> {\n return await this.awaitResult(\n this.deployCloneRaw(displayName, target, params),\n );\n }\n\n /**\n * @see {@link clone}\n * @public\n * @async\n * @param {string} displayName\n * @param {DeployableTarget} target\n * @param {?WriteParams<typeof boostRegistryAbi, 'deployClone'>} [params]\n * @returns {unknown} - The transaction hash\n * biome-ignore lint/suspicious/noExplicitAny: any deployable target will suffice\n */\n public async deployCloneRaw<Target extends DeployableTarget<any, any>>(\n displayName: string,\n target: Target,\n params?: WriteParams<typeof boostRegistryAbi, 'deployClone'>,\n ): Promise<HashAndSimulatedResult<Address>> {\n const payload = target.buildParameters(undefined, {\n config: this._config,\n account: this._account,\n });\n const { address: baseAddress } = assertValidAddressByChainId(\n this._config,\n target.bases,\n params?.chain?.id || params?.chainId,\n );\n const { request, result } = await simulateBoostRegistryDeployClone(\n this._config,\n {\n ...assertValidAddressByChainId(\n this._config,\n this.addresses,\n params?.chain?.id || params?.chainId,\n ),\n args: [target.registryType, baseAddress, displayName, payload.args[0]],\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 writeBoostRegistryDeployClone(this._config, request);\n return { hash, result };\n }\n\n /**\n * Get the address of a registered base implementation.\n * This function will revert if the implementation is not registered\n *\n * @public\n * @async\n * @param {Hex} identifier - The unique identifier for the implementation (see {getIdentifier})\n * @param {?ReadParams<typeof boostRegistryAbi, 'getBaseImplementation'>} [params]\n * @returns {unknown} - The address of the implementation\n */\n public async getBaseImplementation(\n identifier: Hex,\n params?: ReadParams<typeof boostRegistryAbi, 'getBaseImplementation'>,\n ) {\n return await readBoostRegistryGetBaseImplementation(this._config, {\n ...assertValidAddressByChainId(\n this._config,\n this.addresses,\n params?.chainId,\n ),\n args: [identifier],\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 * Get the address of a deployed clone by its identifier\n *\n * @public\n * @async\n * @param {Hex} identifier - The unique identifier for the deployed clone (see {getCloneIdentifier})\n * @param {?ReadParams<typeof boostRegistryAbi, 'getClone'>} [params]\n * @returns {Promise<Address>} - The address of the deployed clone\n */\n public async getClone(\n identifier: Hex,\n params?: ReadParams<typeof boostRegistryAbi, 'getClone'>,\n ) {\n return await readBoostRegistryGetBaseImplementation(this._config, {\n ...assertValidAddressByChainId(\n this._config,\n this.addresses,\n params?.chainId,\n ),\n args: [identifier],\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 * Get the list of identifiers of deployed clones for a given deployer\n *\n * @public\n * @async\n * @param {Address} deployer - The address of the deployer\n * @param {?ReadParams<typeof boostRegistryAbi, 'getClones'>} [params]\n * @returns {Promise<Hex[]>} - The list of deployed clones for the given deployer\n */\n public async getClones(\n deployer: Address,\n params?: ReadParams<typeof boostRegistryAbi, 'getClones'>,\n ) {\n return await readBoostRegistryGetClones(this._config, {\n ...assertValidAddressByChainId(\n this._config,\n this.addresses,\n params?.chainId,\n ),\n args: [deployer],\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 * Build the identifier for a clone of a base implementation\n *\n * @public\n * @async\n * @param {RegistryType} registryType - The base type for the implementation\n * @param {Address} base - The address of the base implementation\n * @param {Address} deployer - The address of the deployer\n * @param {string} displayName - The display name of the clone\n * @param {?ReadParams<typeof boostRegistryAbi, 'getCloneIdentifier'>} [params]\n * @returns {Promise<Hex>} - The unique identifier for the clone\n */\n public async getCloneIdentifier(\n registryType: RegistryType,\n base: Address,\n deployer: Address,\n displayName: string,\n params?: ReadParams<typeof boostRegistryAbi, 'getCloneIdentifier'>,\n ) {\n return await readBoostRegistryGetCloneIdentifier(this._config, {\n ...assertValidAddressByChainId(\n this._config,\n this.addresses,\n params?.chainId,\n ),\n args: [registryType, base, deployer, displayName],\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 * Build the identifier for a base implementation\n *\n * @public\n * @async\n * @param {RegistryType} registryType - The base type for the implementation\n * @param {string} displayName - The name of the implementation\n * @param {?ReadParams<typeof boostRegistryAbi, 'getIdentifier'>} [params]\n * @returns {Promise<Hex>} - The unique identifier for the implementation\n */\n public async getIdentifier(\n registryType: RegistryType,\n displayName: string,\n params?: ReadParams<typeof boostRegistryAbi, 'getIdentifier'>,\n ) {\n return await readBoostRegistryGetCloneIdentifier(this._config, {\n ...assertValidAddressByChainId(\n this._config,\n this.addresses,\n params?.chainId,\n ),\n args: [registryType, displayName],\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 * @inheritdoc\n *\n * @public\n * @param {?never[]} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: never[],\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [, options] = this.validateDeploymentConfig([], _options);\n return {\n abi: boostRegistryAbi,\n bytecode: bytecode as Hex,\n // biome-ignore lint/suspicious/noExplicitAny: Registry doesn't construct or initialize\n args: [] as any,\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n"],"names":["BOOST_REGISTRY_ADDRESS","BoostRegistryBases","BOOST_REGISTRY_ADDRESSES","isBoostRegistryDeployed","opts","isAddress","isBoostRegistryDeployable","_BoostRegistry","Deployable","config","account","options","address","assertValidAddressByChainId","registryType","name","implementation","params","request","result","simulateBoostRegistryRegister","_a","writeBoostRegistryRegister","displayName","target","instance","payload","baseAddress","simulateBoostRegistryDeployClone","_b","writeBoostRegistryDeployClone","identifier","readBoostRegistryGetBaseImplementation","deployer","readBoostRegistryGetClones","base","readBoostRegistryGetCloneIdentifier","_payload","_options","boostRegistryAbi","bytecode","BoostRegistry"],"mappings":"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"}
1
+ {"version":3,"file":"BoostRegistry.cjs","sources":["../src/BoostRegistry.ts"],"sourcesContent":["import {\n boostRegistryAbi,\n readBoostRegistryGetBaseImplementation,\n readBoostRegistryGetCloneIdentifier,\n readBoostRegistryGetClones,\n simulateBoostRegistryDeployClone,\n simulateBoostRegistryRegister,\n writeBoostRegistryDeployClone,\n writeBoostRegistryRegister,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/BoostRegistry.sol/BoostRegistry.json';\nimport {\n type Address,\n type ContractEventName,\n type Hex,\n isAddress,\n} from 'viem';\nimport { BoostRegistry as BoostRegistryBases } from '../dist/deployments.json';\nimport {\n Deployable,\n type DeployableOptions,\n type GenericDeployableParams,\n} from './Deployable/Deployable';\nimport type { DeployableTarget } from './Deployable/DeployableTarget';\nimport {\n type GenericLog,\n type HashAndSimulatedResult,\n type ReadParams,\n type RegistryType,\n type WriteParams,\n assertValidAddressByChainId,\n} from './utils';\n\n/**\n * The address of the deployed `BoostRegistry` instance. In prerelease mode, this will be its sepolia address\n *\n * @type {Address}\n */\nexport const BOOST_REGISTRY_ADDRESS = (\n BoostRegistryBases as Record<string, Address>\n)[__DEFAULT_CHAIN_ID__];\n\n/**\n * The fixed addresses for the deployed Boost Registry.\n * By default, `new BoostRegistry` will use the address deployed to the currently connected chain, or `BOOST_REGISTRY_ADDRESS` if not provided.\n *\n * @type {Record<number, Address>}\n */\nexport const BOOST_REGISTRY_ADDRESSES: Record<number, Address> = {\n ...(BoostRegistryBases as Record<number, Address>),\n 31337: import.meta.env.VITE_BOOST_REGISTRY_ADDRESS,\n};\n\n/**\n * A record of `BoostRegistry` event names to `AbiEvent` objects for use with `getLogs`\n *\n * @export\n * @typedef {BoostRegistryLog}\n * @template {ContractEventName<typeof boostRegistryAbi>} [event=ContractEventName<\n * typeof boostRegistryAbi\n * >]\n */\nexport type BoostRegistryLog<\n event extends ContractEventName<typeof boostRegistryAbi> = ContractEventName<\n typeof boostRegistryAbi\n >,\n> = GenericLog<typeof boostRegistryAbi, event>;\n\n/**\n * Instantiation options for a previously deployed Boost Registry\n *\n * @export\n * @interface BoostRegistryDeployedOptions\n * @typedef {BoostRegistryDeployedOptions}\n * @extends {DeployableOptions}\n */\nexport interface BoostRegistryDeployedOptions extends DeployableOptions {\n /**\n * The address for a Boost Registry, if different than `BOOST_REGISTRY_ADDRESS`\n *\n * @type {?Address}\n */\n address?: Address;\n}\n\n/**\n * A typeguard to determine if instantiation is using a custom address.\n *\n * @param {*} opts\n * @returns {opts is BoostRegistryDeployedOptions}\n */\nfunction isBoostRegistryDeployed(\n // biome-ignore lint/suspicious/noExplicitAny: type guard\n opts: any,\n): opts is BoostRegistryDeployedOptions {\n return opts.address && isAddress(opts.address);\n}\n\n/**\n * The Boost Registry does not take any construction arguments, so if you'd like to deploy a new Boost Registry, pass an explicit null to the `address` field.\n *\n * @export\n * @interface BoostRegistryOptionsWithPayload\n * @typedef {BoostRegistryOptionsWithPayload}\n * @extends {DeployableOptions}\n */\nexport interface BoostRegistryOptionsWithPayload extends DeployableOptions {\n /**\n *\n * @type {null}\n */\n address: null;\n}\n\n/**\n * A typeguard to determine if the user is intending to deploy a new Boost Registry before usage\n *\n * @param {*} opts\n * @returns {opts is BoostRegistryOptionsWithPayload}\n */\nfunction isBoostRegistryDeployable(\n // biome-ignore lint/suspicious/noExplicitAny: type guard\n opts: any,\n): opts is BoostRegistryOptionsWithPayload {\n return opts.address === null;\n}\n\n/**\n * Instantiation options for a Boost Registry.\n *\n * @example\n * To target Boost's Registry, omit the address field.\n * Otherwise, supply a custom address to a previously deployed custom Boost Registry.\n * You can also pass `{ address: null }` if you are intending to deploy a new Boost Registry.\n * ```ts\n * let registry = new BoostRegistry({ config, account })\n * // or\n * registry = new BoostRegistry({ config, account, address: CUSTOM_ADDRESS })\n * // or\n * registry = new BoostRegistry({ config, account, address: null })\n * await registry.deploy()\n * ```\n *\n * @export\n * @typedef {BoostRegistryConfig}\n */\nexport type BoostRegistryConfig =\n | BoostRegistryDeployedOptions\n | BoostRegistryOptionsWithPayload;\n\n/**\n * Constructs a new Boost Registry. A registry for base implementations and cloned instances.\n * This contract is used to register base implementations and deploy new instances of those implementations for use within the Boost protocol.\n *\n * @see {@link BoostRegistryConfig}\n * @export\n * @class BoostRegistry\n * @typedef {BoostRegistry}\n * @extends {Deployable<never[]>}\n */\nexport class BoostRegistry extends Deployable<\n never[],\n typeof boostRegistryAbi\n> {\n /**\n * A static property representing a map of stringified chain ID's to the address of the deployed implementation on chain\n *\n * @static\n * @readonly\n * @type {Record<string, Address>}\n */\n static readonly addresses: Record<number, Address> = BOOST_REGISTRY_ADDRESSES;\n\n /**\n * A getter that will return Boost registry's static addresses by numerical chain ID\n *\n * @public\n * @readonly\n * @type {Record<number, Address>}\n */\n public get addresses(): Record<number, Address> {\n return (this.constructor as typeof BoostRegistry).addresses;\n }\n\n /**\n * Creates an instance of BoostRegistry.\n *\n * @see {@link BoostRegistryConfig}\n * @constructor\n * @param {BoostRegistryConfig} param0\n * @param {Config} param0.config - [Wagmi Configuration](https://wagmi.sh/core/api/createConfig)\n * @param {?Account} [param0.account] - [Viem Local Account](https://viem.sh/docs/accounts/local)\n * @param {({ address?: Address; } | {})} param0....options\n */\n constructor({ config, account, ...options }: BoostRegistryConfig) {\n if (isBoostRegistryDeployed(options) && options.address) {\n super({ account, config }, options.address);\n } else if (isBoostRegistryDeployable(options)) {\n super({ account, config }, []);\n } else {\n const { address } = assertValidAddressByChainId(\n config,\n BOOST_REGISTRY_ADDRESSES,\n );\n super({ account, config }, address);\n }\n }\n\n /**\n * Register a new base implementation of a given type\n *\n * @public\n * @async\n * @param {RegistryType} registryType - The base type for the implementation\n * @param {string} name - A name for the implementation (must be unique within the given type)\n * @param {Address} implementation - The address of the implementation contract\n * @param {?WriteParams} [params] - Optional params to provide the underlying Viem contract call\n * @returns {Promise<void>}\n * @example\n * ```ts\n * await registry.register(ContractAction.registryType, 'ContractAction', ContractAction.base)\n * ```\n */\n public async register(\n registryType: RegistryType,\n name: string,\n implementation: Address,\n params?: WriteParams<typeof boostRegistryAbi, 'register'>,\n ) {\n return await this.awaitResult(\n this.registerRaw(registryType, name, implementation, params),\n );\n }\n\n /**\n * @see {@link register}\n * @public\n * @async\n * @param {RegistryType} registryType\n * @param {string} name\n * @param {Address} implementation\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async registerRaw(\n registryType: RegistryType,\n name: string,\n implementation: Address,\n params?: WriteParams<typeof boostRegistryAbi, 'register'>,\n ) {\n const { request, result } = await simulateBoostRegistryRegister(\n this._config,\n {\n ...assertValidAddressByChainId(\n this._config,\n this.addresses,\n params?.chain?.id || params?.chainId,\n ),\n args: [registryType, name, implementation],\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 writeBoostRegistryRegister(this._config, request);\n return { hash, result };\n }\n\n /**\n * Initialize a new instance of a registered base implementation, returning the provided target with a new address set on it.\n * This method is the same as `clone`, but serves to make its function more obvious as to why you'd need to use it.\n *\n * @public\n * @async\n * @template {DeployableTarget} Target\n * @param {string} displayName - The display name for the clone\n * @param {Target} target - An instance of a target contract to clone and initialize\n * @param {?WriteParams} [params]\n * @returns {Promise<Target>} - The provided instance, but with a new address attached.\n * biome-ignore lint/suspicious/noExplicitAny: any deployable target will suffice\n */\n public initialize<Target extends DeployableTarget<any, any>>(\n displayName: string,\n target: Target,\n params?: WriteParams<typeof boostRegistryAbi, 'deployClone'>,\n ): Promise<Target> {\n return this.clone(displayName, target, params);\n }\n\n /**\n * Deploy a new instance of a registered base implementation, returning the provided target with a new address set on it.\n *\n * @public\n * @async\n * @template {DeployableTarget} Target\n * @param {string} displayName - The display name for the clone\n * @param {Target} target - An instance of a target contract to clone and initialize\n * @param {?WriteParams} [params]\n * @returns {Promise<Target>} - The provided instance, but with a new address attached.\n * biome-ignore lint/suspicious/noExplicitAny: any deployable target will suffice\n */\n public async clone<Target extends DeployableTarget<any, any>>(\n displayName: string,\n target: Target,\n params?: WriteParams<typeof boostRegistryAbi, 'deployClone'>,\n ): Promise<Target> {\n const instance = await this.deployClone(displayName, target, params);\n return target.at(instance);\n }\n\n /**\n *\n * @see {@link clone}\n * @public\n * @async\n * @template {DeployableTarget} Target\n * @param {string} displayName\n * @param {Target} target\n * @param {?WriteParams} [params]\n * @returns {Promise<Address>}\n * biome-ignore lint/suspicious/noExplicitAny: any deployable target will suffice\n */\n public async deployClone<Target extends DeployableTarget<any, any>>(\n displayName: string,\n target: Target,\n params?: WriteParams<typeof boostRegistryAbi, 'deployClone'>,\n ): Promise<Address> {\n return await this.awaitResult(\n this.deployCloneRaw(displayName, target, params),\n );\n }\n\n /**\n * @see {@link clone}\n * @public\n * @async\n * @param {string} displayName\n * @param {DeployableTarget} target\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: Hex, result: Address }>} - The transaction hash\n * biome-ignore lint/suspicious/noExplicitAny: any deployable target will suffice\n */\n public async deployCloneRaw<Target extends DeployableTarget<any, any>>(\n displayName: string,\n target: Target,\n params?: WriteParams<typeof boostRegistryAbi, 'deployClone'>,\n ): Promise<HashAndSimulatedResult<Address>> {\n const payload = target.buildParameters(undefined, {\n config: this._config,\n account: this._account,\n });\n const { address: baseAddress } = assertValidAddressByChainId(\n this._config,\n target.bases,\n params?.chain?.id || params?.chainId,\n );\n const { request, result } = await simulateBoostRegistryDeployClone(\n this._config,\n {\n ...assertValidAddressByChainId(\n this._config,\n this.addresses,\n params?.chain?.id || params?.chainId,\n ),\n args: [target.registryType, baseAddress, displayName, payload.args[0]],\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 writeBoostRegistryDeployClone(this._config, request);\n return { hash, result };\n }\n\n /**\n * Get the address of a registered base implementation.\n * This function will revert if the implementation is not registered\n *\n * @public\n * @async\n * @param {Hex} identifier - The unique identifier for the implementation (see {getIdentifier})\n * @param {?ReadParams} [params]\n * @returns {Promise<Address>} - The address of the implementation\n */\n public async getBaseImplementation(\n identifier: Hex,\n params?: ReadParams<typeof boostRegistryAbi, 'getBaseImplementation'>,\n ) {\n return await readBoostRegistryGetBaseImplementation(this._config, {\n ...assertValidAddressByChainId(\n this._config,\n this.addresses,\n params?.chainId,\n ),\n args: [identifier],\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 * Get the address of a deployed clone by its identifier\n *\n * @public\n * @async\n * @param {Hex} identifier - The unique identifier for the deployed clone (see {getCloneIdentifier})\n * @param {?ReadParams} [params]\n * @returns {Promise<Address>} - The address of the deployed clone\n */\n public async getClone(\n identifier: Hex,\n params?: ReadParams<typeof boostRegistryAbi, 'getClone'>,\n ) {\n return await readBoostRegistryGetBaseImplementation(this._config, {\n ...assertValidAddressByChainId(\n this._config,\n this.addresses,\n params?.chainId,\n ),\n args: [identifier],\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 * Get the list of identifiers of deployed clones for a given deployer\n *\n * @public\n * @async\n * @param {Address} deployer - The address of the deployer\n * @param {?ReadParams} [params]\n * @returns {Promise<Hex[]>} - The list of deployed clones for the given deployer\n */\n public async getClones(\n deployer: Address,\n params?: ReadParams<typeof boostRegistryAbi, 'getClones'>,\n ) {\n return await readBoostRegistryGetClones(this._config, {\n ...assertValidAddressByChainId(\n this._config,\n this.addresses,\n params?.chainId,\n ),\n args: [deployer],\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 * Build the identifier for a clone of a base implementation\n *\n * @public\n * @async\n * @param {RegistryType} registryType - The base type for the implementation\n * @param {Address} base - The address of the base implementation\n * @param {Address} deployer - The address of the deployer\n * @param {string} displayName - The display name of the clone\n * @param {?ReadParams} [params]\n * @returns {Promise<Hex>} - The unique identifier for the clone\n */\n public async getCloneIdentifier(\n registryType: RegistryType,\n base: Address,\n deployer: Address,\n displayName: string,\n params?: ReadParams<typeof boostRegistryAbi, 'getCloneIdentifier'>,\n ) {\n return await readBoostRegistryGetCloneIdentifier(this._config, {\n ...assertValidAddressByChainId(\n this._config,\n this.addresses,\n params?.chainId,\n ),\n args: [registryType, base, deployer, displayName],\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 * Build the identifier for a base implementation\n *\n * @public\n * @async\n * @param {RegistryType} registryType - The base type for the implementation\n * @param {string} displayName - The name of the implementation\n * @param {?ReadParams} [params]\n * @returns {Promise<Hex>} - The unique identifier for the implementation\n */\n public async getIdentifier(\n registryType: RegistryType,\n displayName: string,\n params?: ReadParams<typeof boostRegistryAbi, 'getIdentifier'>,\n ) {\n return await readBoostRegistryGetCloneIdentifier(this._config, {\n ...assertValidAddressByChainId(\n this._config,\n this.addresses,\n params?.chainId,\n ),\n args: [registryType, displayName],\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 * @inheritdoc\n *\n * @public\n * @param {?never[]} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: never[],\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [, options] = this.validateDeploymentConfig([], _options);\n return {\n abi: boostRegistryAbi,\n bytecode: bytecode as Hex,\n // biome-ignore lint/suspicious/noExplicitAny: Registry doesn't construct or initialize\n args: [] as any,\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n"],"names":["BOOST_REGISTRY_ADDRESS","BoostRegistryBases","BOOST_REGISTRY_ADDRESSES","isBoostRegistryDeployed","opts","isAddress","isBoostRegistryDeployable","_BoostRegistry","Deployable","config","account","options","address","assertValidAddressByChainId","registryType","name","implementation","params","request","result","simulateBoostRegistryRegister","_a","writeBoostRegistryRegister","displayName","target","instance","payload","baseAddress","simulateBoostRegistryDeployClone","_b","writeBoostRegistryDeployClone","identifier","readBoostRegistryGetBaseImplementation","deployer","readBoostRegistryGetClones","base","readBoostRegistryGetCloneIdentifier","_payload","_options","boostRegistryAbi","bytecode","BoostRegistry"],"mappings":"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"}
@@ -123,8 +123,8 @@ export declare class BoostRegistry extends Deployable<never[], typeof boostRegis
123
123
  * @param {RegistryType} registryType - The base type for the implementation
124
124
  * @param {string} name - A name for the implementation (must be unique within the given type)
125
125
  * @param {Address} implementation - The address of the implementation contract
126
- * @param {?WriteParams<typeof boostRegistryAbi, 'register'>} [params] - Optional params to provide the underlying Viem contract call
127
- * @returns {unknown}
126
+ * @param {?WriteParams} [params] - Optional params to provide the underlying Viem contract call
127
+ * @returns {Promise<void>}
128
128
  * @example
129
129
  * ```ts
130
130
  * await registry.register(ContractAction.registryType, 'ContractAction', ContractAction.base)
@@ -138,8 +138,8 @@ export declare class BoostRegistry extends Deployable<never[], typeof boostRegis
138
138
  * @param {RegistryType} registryType
139
139
  * @param {string} name
140
140
  * @param {Address} implementation
141
- * @param {?WriteParams<typeof boostRegistryAbi, 'register'>} [params]
142
- * @returns {unknown}
141
+ * @param {?WriteParams} [params]
142
+ * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
143
143
  */
144
144
  registerRaw(registryType: RegistryType, name: string, implementation: Address, params?: WriteParams<typeof boostRegistryAbi, 'register'>): Promise<{
145
145
  hash: `0x${string}`;
@@ -154,8 +154,8 @@ export declare class BoostRegistry extends Deployable<never[], typeof boostRegis
154
154
  * @template {DeployableTarget} Target
155
155
  * @param {string} displayName - The display name for the clone
156
156
  * @param {Target} target - An instance of a target contract to clone and initialize
157
- * @param {?WriteParams<typeof boostRegistryAbi, 'deployClone'>} [params]
158
- * @returns {Target} - The provided instance, but with a new address attached.
157
+ * @param {?WriteParams} [params]
158
+ * @returns {Promise<Target>} - The provided instance, but with a new address attached.
159
159
  * biome-ignore lint/suspicious/noExplicitAny: any deployable target will suffice
160
160
  */
161
161
  initialize<Target extends DeployableTarget<any, any>>(displayName: string, target: Target, params?: WriteParams<typeof boostRegistryAbi, 'deployClone'>): Promise<Target>;
@@ -167,8 +167,8 @@ export declare class BoostRegistry extends Deployable<never[], typeof boostRegis
167
167
  * @template {DeployableTarget} Target
168
168
  * @param {string} displayName - The display name for the clone
169
169
  * @param {Target} target - An instance of a target contract to clone and initialize
170
- * @param {?WriteParams<typeof boostRegistryAbi, 'deployClone'>} [params]
171
- * @returns {Target} - The provided instance, but with a new address attached.
170
+ * @param {?WriteParams} [params]
171
+ * @returns {Promise<Target>} - The provided instance, but with a new address attached.
172
172
  * biome-ignore lint/suspicious/noExplicitAny: any deployable target will suffice
173
173
  */
174
174
  clone<Target extends DeployableTarget<any, any>>(displayName: string, target: Target, params?: WriteParams<typeof boostRegistryAbi, 'deployClone'>): Promise<Target>;
@@ -180,8 +180,8 @@ export declare class BoostRegistry extends Deployable<never[], typeof boostRegis
180
180
  * @template {DeployableTarget} Target
181
181
  * @param {string} displayName
182
182
  * @param {Target} target
183
- * @param {?WriteParams<typeof boostRegistryAbi, 'deployClone'>} [params]
184
- * @returns {Target}
183
+ * @param {?WriteParams} [params]
184
+ * @returns {Promise<Address>}
185
185
  * biome-ignore lint/suspicious/noExplicitAny: any deployable target will suffice
186
186
  */
187
187
  deployClone<Target extends DeployableTarget<any, any>>(displayName: string, target: Target, params?: WriteParams<typeof boostRegistryAbi, 'deployClone'>): Promise<Address>;
@@ -191,8 +191,8 @@ export declare class BoostRegistry extends Deployable<never[], typeof boostRegis
191
191
  * @async
192
192
  * @param {string} displayName
193
193
  * @param {DeployableTarget} target
194
- * @param {?WriteParams<typeof boostRegistryAbi, 'deployClone'>} [params]
195
- * @returns {unknown} - The transaction hash
194
+ * @param {?WriteParams} [params]
195
+ * @returns {Promise<{ hash: Hex, result: Address }>} - The transaction hash
196
196
  * biome-ignore lint/suspicious/noExplicitAny: any deployable target will suffice
197
197
  */
198
198
  deployCloneRaw<Target extends DeployableTarget<any, any>>(displayName: string, target: Target, params?: WriteParams<typeof boostRegistryAbi, 'deployClone'>): Promise<HashAndSimulatedResult<Address>>;
@@ -203,8 +203,8 @@ export declare class BoostRegistry extends Deployable<never[], typeof boostRegis
203
203
  * @public
204
204
  * @async
205
205
  * @param {Hex} identifier - The unique identifier for the implementation (see {getIdentifier})
206
- * @param {?ReadParams<typeof boostRegistryAbi, 'getBaseImplementation'>} [params]
207
- * @returns {unknown} - The address of the implementation
206
+ * @param {?ReadParams} [params]
207
+ * @returns {Promise<Address>} - The address of the implementation
208
208
  */
209
209
  getBaseImplementation(identifier: Hex, params?: ReadParams<typeof boostRegistryAbi, 'getBaseImplementation'>): Promise<`0x${string}`>;
210
210
  /**
@@ -213,7 +213,7 @@ export declare class BoostRegistry extends Deployable<never[], typeof boostRegis
213
213
  * @public
214
214
  * @async
215
215
  * @param {Hex} identifier - The unique identifier for the deployed clone (see {getCloneIdentifier})
216
- * @param {?ReadParams<typeof boostRegistryAbi, 'getClone'>} [params]
216
+ * @param {?ReadParams} [params]
217
217
  * @returns {Promise<Address>} - The address of the deployed clone
218
218
  */
219
219
  getClone(identifier: Hex, params?: ReadParams<typeof boostRegistryAbi, 'getClone'>): Promise<`0x${string}`>;
@@ -223,7 +223,7 @@ export declare class BoostRegistry extends Deployable<never[], typeof boostRegis
223
223
  * @public
224
224
  * @async
225
225
  * @param {Address} deployer - The address of the deployer
226
- * @param {?ReadParams<typeof boostRegistryAbi, 'getClones'>} [params]
226
+ * @param {?ReadParams} [params]
227
227
  * @returns {Promise<Hex[]>} - The list of deployed clones for the given deployer
228
228
  */
229
229
  getClones(deployer: Address, params?: ReadParams<typeof boostRegistryAbi, 'getClones'>): Promise<readonly `0x${string}`[]>;
@@ -236,7 +236,7 @@ export declare class BoostRegistry extends Deployable<never[], typeof boostRegis
236
236
  * @param {Address} base - The address of the base implementation
237
237
  * @param {Address} deployer - The address of the deployer
238
238
  * @param {string} displayName - The display name of the clone
239
- * @param {?ReadParams<typeof boostRegistryAbi, 'getCloneIdentifier'>} [params]
239
+ * @param {?ReadParams} [params]
240
240
  * @returns {Promise<Hex>} - The unique identifier for the clone
241
241
  */
242
242
  getCloneIdentifier(registryType: RegistryType, base: Address, deployer: Address, displayName: string, params?: ReadParams<typeof boostRegistryAbi, 'getCloneIdentifier'>): Promise<`0x${string}`>;
@@ -247,7 +247,7 @@ export declare class BoostRegistry extends Deployable<never[], typeof boostRegis
247
247
  * @async
248
248
  * @param {RegistryType} registryType - The base type for the implementation
249
249
  * @param {string} displayName - The name of the implementation
250
- * @param {?ReadParams<typeof boostRegistryAbi, 'getIdentifier'>} [params]
250
+ * @param {?ReadParams} [params]
251
251
  * @returns {Promise<Hex>} - The unique identifier for the implementation
252
252
  */
253
253
  getIdentifier(registryType: RegistryType, displayName: string, params?: ReadParams<typeof boostRegistryAbi, 'getIdentifier'>): Promise<`0x${string}`>;