@boostxyz/sdk 0.0.0-alpha.14 → 0.0.0-alpha.16
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.
- package/dist/Actions/Action.cjs +1 -1
- package/dist/Actions/Action.js +1 -1
- package/dist/Actions/ContractAction.d.ts.map +1 -1
- package/dist/Actions/ERC721MintAction.d.ts.map +1 -1
- package/dist/Actions/EventAction.cjs +1 -1
- package/dist/Actions/EventAction.cjs.map +1 -1
- package/dist/Actions/EventAction.d.ts.map +1 -1
- package/dist/Actions/EventAction.js +157 -55
- package/dist/Actions/EventAction.js.map +1 -1
- package/dist/AllowLists/AllowList.cjs +1 -1
- package/dist/AllowLists/AllowList.js +2 -2
- package/dist/AllowLists/SimpleAllowList.cjs +1 -1
- package/dist/AllowLists/SimpleAllowList.cjs.map +1 -1
- package/dist/AllowLists/SimpleAllowList.d.ts +9 -0
- package/dist/AllowLists/SimpleAllowList.d.ts.map +1 -1
- package/dist/AllowLists/SimpleAllowList.js +42 -26
- package/dist/AllowLists/SimpleAllowList.js.map +1 -1
- package/dist/AllowLists/SimpleDenyList.cjs +1 -1
- package/dist/AllowLists/SimpleDenyList.d.ts +9 -0
- package/dist/AllowLists/SimpleDenyList.d.ts.map +1 -1
- package/dist/AllowLists/SimpleDenyList.js +2 -2
- package/dist/Auth/PassthroughAuth.cjs +1 -1
- package/dist/Auth/PassthroughAuth.js +1 -1
- package/dist/Boost.js +10 -22
- package/dist/Boost.js.map +1 -1
- package/dist/BoostCore.cjs +2 -2
- package/dist/BoostCore.cjs.map +1 -1
- package/dist/BoostCore.js +120 -106
- package/dist/BoostCore.js.map +1 -1
- package/dist/BoostRegistry.cjs +1 -1
- package/dist/BoostRegistry.cjs.map +1 -1
- package/dist/BoostRegistry.js +12 -12
- package/dist/Budgets/Budget.cjs +1 -1
- package/dist/Budgets/Budget.js +1 -1
- package/dist/Budgets/ManagedBudget.cjs +1 -1
- package/dist/Budgets/ManagedBudget.cjs.map +1 -1
- package/dist/Budgets/ManagedBudget.d.ts.map +1 -1
- package/dist/Budgets/ManagedBudget.js +34 -35
- package/dist/Budgets/ManagedBudget.js.map +1 -1
- package/dist/Budgets/SimpleBudget.d.ts.map +1 -1
- package/dist/Budgets/VestingBudget.d.ts.map +1 -1
- package/dist/Deployable/Contract.cjs.map +1 -1
- package/dist/Deployable/Contract.js +1 -2
- package/dist/Deployable/Contract.js.map +1 -1
- package/dist/Deployable/Deployable.cjs.map +1 -1
- package/dist/Deployable/Deployable.d.ts.map +1 -1
- package/dist/Deployable/Deployable.js +2 -4
- package/dist/Deployable/Deployable.js.map +1 -1
- package/dist/Deployable/DeployableTarget.cjs +1 -1
- package/dist/Deployable/DeployableTarget.cjs.map +1 -1
- package/dist/Deployable/DeployableTarget.d.ts +1 -1
- package/dist/Deployable/DeployableTarget.d.ts.map +1 -1
- package/dist/Deployable/DeployableTarget.js +3 -5
- package/dist/Deployable/DeployableTarget.js.map +1 -1
- package/dist/Incentive-CqX3fYEd.cjs +2 -0
- package/dist/Incentive-CqX3fYEd.cjs.map +1 -0
- package/dist/Incentive-CtuAJAjG.js +299 -0
- package/dist/Incentive-CtuAJAjG.js.map +1 -0
- package/dist/Incentives/AllowListIncentive.cjs +1 -1
- package/dist/Incentives/AllowListIncentive.cjs.map +1 -1
- package/dist/Incentives/AllowListIncentive.d.ts.map +1 -1
- package/dist/Incentives/AllowListIncentive.js +10 -11
- package/dist/Incentives/AllowListIncentive.js.map +1 -1
- package/dist/Incentives/CGDAIncentive.cjs +1 -1
- package/dist/Incentives/CGDAIncentive.cjs.map +1 -1
- package/dist/Incentives/CGDAIncentive.d.ts.map +1 -1
- package/dist/Incentives/CGDAIncentive.js +10 -11
- package/dist/Incentives/CGDAIncentive.js.map +1 -1
- package/dist/Incentives/ERC1155Incentive.d.ts.map +1 -1
- package/dist/Incentives/ERC20Incentive.cjs +1 -1
- package/dist/Incentives/ERC20Incentive.cjs.map +1 -1
- package/dist/Incentives/ERC20Incentive.d.ts.map +1 -1
- package/dist/Incentives/ERC20Incentive.js +18 -19
- package/dist/Incentives/ERC20Incentive.js.map +1 -1
- package/dist/Incentives/ERC20VariableIncentive.d.ts.map +1 -1
- package/dist/Incentives/Incentive.cjs +1 -1
- package/dist/Incentives/Incentive.cjs.map +1 -1
- package/dist/Incentives/Incentive.js +16 -300
- package/dist/Incentives/Incentive.js.map +1 -1
- package/dist/Incentives/PointsIncentive.cjs +1 -1
- package/dist/Incentives/PointsIncentive.cjs.map +1 -1
- package/dist/Incentives/PointsIncentive.d.ts.map +1 -1
- package/dist/Incentives/PointsIncentive.js +8 -9
- package/dist/Incentives/PointsIncentive.js.map +1 -1
- package/dist/{SimpleDenyList-DeJRKD2D.cjs → SimpleDenyList-9UIxZZKP.cjs} +2 -2
- package/dist/SimpleDenyList-9UIxZZKP.cjs.map +1 -0
- package/dist/{SimpleDenyList-C21O9Yfi.js → SimpleDenyList-DGPNc7ov.js} +43 -27
- package/dist/SimpleDenyList-DGPNc7ov.js.map +1 -0
- package/dist/Validators/SignerValidator.cjs +1 -1
- package/dist/Validators/SignerValidator.cjs.map +1 -1
- package/dist/Validators/SignerValidator.d.ts.map +1 -1
- package/dist/Validators/SignerValidator.js +15 -16
- package/dist/Validators/SignerValidator.js.map +1 -1
- package/dist/Validators/Validator.cjs +1 -1
- package/dist/Validators/Validator.js +1 -1
- package/dist/generated-BLg7yPgI.cjs +3 -0
- package/dist/generated-BLg7yPgI.cjs.map +1 -0
- package/dist/{generated-LpgSHrH0.js → generated-DLMdMwD1.js} +379 -359
- package/dist/generated-DLMdMwD1.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +96 -84
- package/dist/index.js.map +1 -1
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.js.map +1 -1
- package/package.json +6 -6
- package/src/Actions/Action.test.ts +4 -4
- package/src/Actions/ContractAction.test.ts +4 -4
- package/src/Actions/ContractAction.ts +1 -3
- package/src/Actions/ERC721MintAction.test.ts +4 -4
- package/src/Actions/ERC721MintAction.ts +1 -3
- package/src/Actions/EventAction.test.ts +7 -7
- package/src/Actions/EventAction.ts +0 -1
- package/src/AllowLists/AllowList.test.ts +2 -2
- package/src/AllowLists/OpenAllowList.test.ts +3 -3
- package/src/AllowLists/SimpleAllowList.test.ts +2 -2
- package/src/AllowLists/SimpleAllowList.ts +21 -1
- package/src/AllowLists/SimpleDenyList.test.ts +2 -2
- package/src/AllowLists/SimpleDenyList.ts +21 -1
- package/src/Auth/PassthroughAuth.test.ts +1 -1
- package/src/BoostCore.test.ts +10 -12
- package/src/Budgets/Budget.test.ts +2 -2
- package/src/Budgets/ManagedBudget.test.ts +6 -6
- package/src/Budgets/ManagedBudget.ts +0 -1
- package/src/Budgets/SimpleBudget.test.ts +5 -5
- package/src/Budgets/SimpleBudget.ts +1 -3
- package/src/Budgets/VestingBudget.test.ts +4 -4
- package/src/Budgets/VestingBudget.ts +1 -3
- package/src/Deployable/DeployableTarget.ts +2 -2
- package/src/Incentives/AllowListIncentive.test.ts +3 -3
- package/src/Incentives/AllowListIncentive.ts +0 -1
- package/src/Incentives/CGDAIncentive.test.ts +3 -3
- package/src/Incentives/CGDAIncentive.ts +0 -1
- package/src/Incentives/ERC1155Incentive.test.ts +3 -3
- package/src/Incentives/ERC1155Incentive.ts +1 -3
- package/src/Incentives/ERC20Incentive.test.ts +3 -3
- package/src/Incentives/ERC20Incentive.ts +0 -1
- package/src/Incentives/ERC20VariableIncentive.test.ts +3 -3
- package/src/Incentives/ERC20VariableIncentive.ts +0 -1
- package/src/Incentives/Incentive.test.ts +1 -1
- package/src/Incentives/PointsIncentive.test.ts +4 -4
- package/src/Incentives/PointsIncentive.ts +0 -1
- package/src/Validators/SignerValidator.test.ts +4 -4
- package/src/Validators/SignerValidator.ts +0 -1
- package/src/Validators/Validator.test.ts +2 -2
- package/src/index.ts +3 -0
- package/src/utils.test.ts +2 -2
- package/dist/SimpleDenyList-C21O9Yfi.js.map +0 -1
- package/dist/SimpleDenyList-DeJRKD2D.cjs.map +0 -1
- package/dist/generated-LpgSHrH0.js.map +0 -1
- package/dist/generated-tq_HLZJ0.cjs +0 -3
- package/dist/generated-tq_HLZJ0.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleAllowList.js","sources":["../../src/AllowLists/SimpleAllowList.ts"],"sourcesContent":["import {\n readSimpleAllowListIsAllowed,\n simpleAllowListAbi,\n simulateSimpleAllowListGrantRoles,\n simulateSimpleAllowListSetAllowed,\n writeSimpleAllowListGrantRoles,\n writeSimpleAllowListSetAllowed,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/allowlists/SimpleAllowList.sol/SimpleAllowList.json';\nimport { getAccount } from '@wagmi/core';\nimport {\n type Address,\n type ContractEventName,\n type Hex,\n encodeAbiParameters,\n zeroAddress,\n zeroHash,\n} from 'viem';\nimport { SimpleAllowList as SimpleAllowListBases } from '../../dist/deployments.json';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport { DeployableTarget } from '../Deployable/DeployableTarget';\nimport { DeployableUnknownOwnerProvidedError } from '../errors';\nimport {\n type GenericLog,\n type ReadParams,\n RegistryType,\n type WriteParams,\n} from '../utils';\n\nexport { simpleAllowListAbi };\n\n/**\n * Object representation of a {@link SimpleAllowList} initialization payload.\n *\n * @export\n * @interface SimpleAllowListPayload\n * @typedef {SimpleAllowListPayload}\n */\nexport interface SimpleAllowListPayload {\n /**\n * The allow list's owner, given the {@link LIST_MANAGER_ROLE} role.\n *\n * @type {Address}\n */\n owner: Address;\n /**\n * List of allowed addresses.\n *\n * @type {Address[]}\n */\n allowed: Address[];\n}\n\n/**\n * A generic `viem.Log` event with support for `SimpleAllowList` event types.\n *\n * @export\n * @typedef {SimpleAllowListLog}\n * @template {ContractEventName<\n * typeof simpleAllowListAbi\n * >} [event=ContractEventName<typeof simpleAllowListAbi>]\n */\nexport type SimpleAllowListLog<\n event extends ContractEventName<\n typeof simpleAllowListAbi\n > = ContractEventName<typeof simpleAllowListAbi>,\n> = GenericLog<typeof simpleAllowListAbi, event>;\n\n/**\n * A constant representing the list manager's role\n *\n * @type {2n}\n */\nexport const LIST_MANAGER_ROLE = 2n;\n/**\n * A simple implementation of an AllowList that checks if a user is authorized based on a list of allowed addresses\n *\n * @export\n * @class SimpleAllowList\n * @typedef {SimpleAllowList}\n * @extends {DeployableTarget<SimpleAllowListPayload>}\n */\nexport class SimpleAllowList extends DeployableTarget<\n SimpleAllowListPayload,\n typeof simpleAllowListAbi\n> {\n public override readonly abi = simpleAllowListAbi;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {Record<number, Address>}\n */\n public static override bases: Record<number, Address> = {\n ...(SimpleAllowListBases as Record<number, Address>),\n 31337: import.meta.env.VITE_SIMPLE_ALLOWLIST_BASE,\n };\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {RegistryType}\n */\n public static override registryType: RegistryType = RegistryType.ALLOW_LIST;\n\n /**\n * Check if a user is authorized.\n *\n * @public\n * @async\n * @param {Address} address - The address of the user\n * @param {?ReadParams<typeof simpleAllowListAbi, 'setAllowed'>} [params]\n * @returns {Promise<boolean>} - True if the user is authorized\n */\n public async isAllowed(\n address: Address,\n params?: ReadParams<typeof simpleAllowListAbi, 'setAllowed'>,\n ): Promise<boolean> {\n return await readSimpleAllowListIsAllowed(this._config, {\n address: this.assertValidAddress(),\n args: [address, zeroHash],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Set the allowed status of a user. The length of the `users_` and `allowed_` arrays must be the same.\n * This function can only be called by the owner\n *\n * @public\n * @async\n * @param {Address[]} addresses - The list of users to update\n * @param {boolean[]} allowed - The allowed status of each user\n * @param {?ReadParams<typeof simpleAllowListAbi, 'setAllowed'>} [params]\n * @returns {Promise<void>}\n */\n public async setAllowed(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams<typeof simpleAllowListAbi, 'setAllowed'>,\n ) {\n return await this.awaitResult(\n this.setAllowedRaw(addresses, allowed, params),\n );\n }\n\n /**\n * Set the allowed status of a user. The length of the `users_` and `allowed_` arrays must be the same.\n * This function can only be called by the owner\n *\n * @public\n * @async\n * @param {Address[]} addresses - The list of users to update\n * @param {boolean[]} allowed - The allowed status of each user\n * @param {?ReadParams<typeof simpleAllowListAbi, 'setAllowed'>} [params]\n * @returns {Promise<void>}\n */\n public async setAllowedRaw(\n addresses: Address[],\n allowed: boolean[],\n params?: ReadParams<typeof simpleAllowListAbi, 'setAllowed'>,\n ) {\n const { request, result } = await simulateSimpleAllowListSetAllowed(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [addresses, allowed],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeSimpleAllowListSetAllowed(this._config, request);\n return { hash, result };\n }\n\n /**\n * Allows the owner to grant `user` `roles`.\n *\n * @public\n * @async\n * @param {Address} address\n * @param {bigint} role\n * @param {?ReadParams<typeof simpleAllowListAbi, 'grantRoles'>} [params]\n * @returns {Promise<void>}\n */\n public async grantRoles(\n address: Address,\n role: bigint,\n params?: WriteParams<typeof simpleAllowListAbi, 'grantRoles'>,\n ) {\n return await this.awaitResult(this.grantRolesRaw(address, role, params));\n }\n\n /**\n * Allows the owner to grant `user` `roles`.\n *\n * @public\n * @async\n * @param {Address} address\n * @param {bigint} role\n * @param {?ReadParams<typeof simpleAllowListAbi, 'grantRoles'>} [params]\n * @returns {Promise<void>}\n */\n public async grantRolesRaw(\n address: Address,\n role: bigint,\n params?: ReadParams<typeof simpleAllowListAbi, 'grantRoles'>,\n ) {\n const { request, result } = await simulateSimpleAllowListGrantRoles(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [address, role],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeSimpleAllowListGrantRoles(this._config, request);\n return { hash, result };\n }\n\n /**\n * @inheritdoc\n *\n * @public\n * @param {?SimpleAllowListPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: SimpleAllowListPayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [payload, options] = this.validateDeploymentConfig(\n _payload,\n _options,\n );\n if (!payload.owner || payload.owner === zeroAddress) {\n const owner = options.account\n ? options.account.address\n : options.config\n ? getAccount(options.config).address\n : this._account?.address;\n if (owner) {\n payload.owner = owner;\n } else {\n throw new DeployableUnknownOwnerProvidedError();\n }\n }\n return {\n abi: simpleAllowListAbi,\n bytecode: bytecode as Hex,\n args: [prepareSimpleAllowListPayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n\n/**\n * Given a {@link SimpleAllowListPayload}, properly encode the initialization payload.\n *\n * @param {SimpleAllowListPayload} param0\n * @param {Address} param0.owner - The allow list's owner, given the {@link LIST_MANAGER_ROLE} role.\n * @param {Address[]} param0.allowed - List of allowed addresses.\n * @returns {Hex}\n */\nexport function prepareSimpleAllowListPayload({\n owner,\n allowed,\n}: SimpleAllowListPayload) {\n return encodeAbiParameters(\n [\n { type: 'address', name: 'owner' },\n { type: 'address[]', name: 'allowed' },\n ],\n [owner, allowed],\n );\n}\n"],"names":["LIST_MANAGER_ROLE","_SimpleAllowList","DeployableTarget","simpleAllowListAbi","address","params","readSimpleAllowListIsAllowed","zeroHash","addresses","allowed","request","result","simulateSimpleAllowListSetAllowed","writeSimpleAllowListSetAllowed","role","simulateSimpleAllowListGrantRoles","writeSimpleAllowListGrantRoles","_payload","_options","payload","options","zeroAddress","owner","getAccount","_a","DeployableUnknownOwnerProvidedError","bytecode","prepareSimpleAllowListPayload","SimpleAllowListBases","RegistryType","SimpleAllowList","encodeAbiParameters"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SimpleAllowList.js","sources":["../../src/AllowLists/SimpleAllowList.ts"],"sourcesContent":["import {\n readSimpleAllowListIsAllowed,\n readSimpleAllowListOwner,\n simpleAllowListAbi,\n simulateSimpleAllowListGrantRoles,\n simulateSimpleAllowListSetAllowed,\n writeSimpleAllowListGrantRoles,\n writeSimpleAllowListSetAllowed,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/allowlists/SimpleAllowList.sol/SimpleAllowList.json';\nimport { getAccount } from '@wagmi/core';\nimport {\n type Address,\n type ContractEventName,\n type Hex,\n encodeAbiParameters,\n zeroAddress,\n zeroHash,\n} from 'viem';\nimport { SimpleAllowList as SimpleAllowListBases } from '../../dist/deployments.json';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport { DeployableTarget } from '../Deployable/DeployableTarget';\nimport { DeployableUnknownOwnerProvidedError } from '../errors';\nimport {\n type GenericLog,\n type ReadParams,\n RegistryType,\n type WriteParams,\n} from '../utils';\n\nexport { simpleAllowListAbi };\n\n/**\n * Object representation of a {@link SimpleAllowList} initialization payload.\n *\n * @export\n * @interface SimpleAllowListPayload\n * @typedef {SimpleAllowListPayload}\n */\nexport interface SimpleAllowListPayload {\n /**\n * The allow list's owner, given the {@link LIST_MANAGER_ROLE} role.\n *\n * @type {Address}\n */\n owner: Address;\n /**\n * List of allowed addresses.\n *\n * @type {Address[]}\n */\n allowed: Address[];\n}\n\n/**\n * A generic `viem.Log` event with support for `SimpleAllowList` event types.\n *\n * @export\n * @typedef {SimpleAllowListLog}\n * @template {ContractEventName<\n * typeof simpleAllowListAbi\n * >} [event=ContractEventName<typeof simpleAllowListAbi>]\n */\nexport type SimpleAllowListLog<\n event extends ContractEventName<\n typeof simpleAllowListAbi\n > = ContractEventName<typeof simpleAllowListAbi>,\n> = GenericLog<typeof simpleAllowListAbi, event>;\n\n/**\n * A constant representing the list manager's role\n *\n * @type {2n}\n */\nexport const LIST_MANAGER_ROLE = 2n;\n/**\n * A simple implementation of an AllowList that checks if a user is authorized based on a list of allowed addresses\n *\n * @export\n * @class SimpleAllowList\n * @typedef {SimpleAllowList}\n * @extends {DeployableTarget<SimpleAllowListPayload>}\n */\nexport class SimpleAllowList extends DeployableTarget<\n SimpleAllowListPayload,\n typeof simpleAllowListAbi\n> {\n public override readonly abi = simpleAllowListAbi;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {Record<number, Address>}\n */\n public static override bases: Record<number, Address> = {\n ...(SimpleAllowListBases as Record<number, Address>),\n };\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {RegistryType}\n */\n public static override registryType: RegistryType = RegistryType.ALLOW_LIST;\n\n /**\n * Retrieves the owner\n *\n * @public\n * @async\n * @param {?ReadParams<typeof simpleAllowListAbi, 'owner'>} [params]\n * @returns {Promise<Address>} - The address of the owner\n */\n public async owner(\n params?: ReadParams<typeof simpleAllowListAbi, 'owner'>,\n ): Promise<Address> {\n return await readSimpleAllowListOwner(this._config, {\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 address: this.assertValidAddress(),\n args: [],\n });\n }\n\n /**\n * Check if a user is authorized.\n *\n * @public\n * @async\n * @param {Address} address - The address of the user\n * @param {?ReadParams<typeof simpleAllowListAbi, 'setAllowed'>} [params]\n * @returns {Promise<boolean>} - True if the user is authorized\n */\n public async isAllowed(\n address: Address,\n params?: ReadParams<typeof simpleAllowListAbi, 'setAllowed'>,\n ): Promise<boolean> {\n return await readSimpleAllowListIsAllowed(this._config, {\n address: this.assertValidAddress(),\n args: [address, zeroHash],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Set the allowed status of a user. The length of the `users_` and `allowed_` arrays must be the same.\n * This function can only be called by the owner\n *\n * @public\n * @async\n * @param {Address[]} addresses - The list of users to update\n * @param {boolean[]} allowed - The allowed status of each user\n * @param {?ReadParams<typeof simpleAllowListAbi, 'setAllowed'>} [params]\n * @returns {Promise<void>}\n */\n public async setAllowed(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams<typeof simpleAllowListAbi, 'setAllowed'>,\n ) {\n return await this.awaitResult(\n this.setAllowedRaw(addresses, allowed, params),\n );\n }\n\n /**\n * Set the allowed status of a user. The length of the `users_` and `allowed_` arrays must be the same.\n * This function can only be called by the owner\n *\n * @public\n * @async\n * @param {Address[]} addresses - The list of users to update\n * @param {boolean[]} allowed - The allowed status of each user\n * @param {?ReadParams<typeof simpleAllowListAbi, 'setAllowed'>} [params]\n * @returns {Promise<void>}\n */\n public async setAllowedRaw(\n addresses: Address[],\n allowed: boolean[],\n params?: ReadParams<typeof simpleAllowListAbi, 'setAllowed'>,\n ) {\n const { request, result } = await simulateSimpleAllowListSetAllowed(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [addresses, allowed],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeSimpleAllowListSetAllowed(this._config, request);\n return { hash, result };\n }\n\n /**\n * Allows the owner to grant `user` `roles`.\n *\n * @public\n * @async\n * @param {Address} address\n * @param {bigint} role\n * @param {?ReadParams<typeof simpleAllowListAbi, 'grantRoles'>} [params]\n * @returns {Promise<void>}\n */\n public async grantRoles(\n address: Address,\n role: bigint,\n params?: WriteParams<typeof simpleAllowListAbi, 'grantRoles'>,\n ) {\n return await this.awaitResult(this.grantRolesRaw(address, role, params));\n }\n\n /**\n * Allows the owner to grant `user` `roles`.\n *\n * @public\n * @async\n * @param {Address} address\n * @param {bigint} role\n * @param {?ReadParams<typeof simpleAllowListAbi, 'grantRoles'>} [params]\n * @returns {Promise<void>}\n */\n public async grantRolesRaw(\n address: Address,\n role: bigint,\n params?: ReadParams<typeof simpleAllowListAbi, 'grantRoles'>,\n ) {\n const { request, result } = await simulateSimpleAllowListGrantRoles(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [address, role],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeSimpleAllowListGrantRoles(this._config, request);\n return { hash, result };\n }\n\n /**\n * @inheritdoc\n *\n * @public\n * @param {?SimpleAllowListPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: SimpleAllowListPayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [payload, options] = this.validateDeploymentConfig(\n _payload,\n _options,\n );\n if (!payload.owner || payload.owner === zeroAddress) {\n const owner = options.account\n ? options.account.address\n : options.config\n ? getAccount(options.config).address\n : this._account?.address;\n if (owner) {\n payload.owner = owner;\n } else {\n throw new DeployableUnknownOwnerProvidedError();\n }\n }\n return {\n abi: simpleAllowListAbi,\n bytecode: bytecode as Hex,\n args: [prepareSimpleAllowListPayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n\n/**\n * Given a {@link SimpleAllowListPayload}, properly encode the initialization payload.\n *\n * @param {SimpleAllowListPayload} param0\n * @param {Address} param0.owner - The allow list's owner, given the {@link LIST_MANAGER_ROLE} role.\n * @param {Address[]} param0.allowed - List of allowed addresses.\n * @returns {Hex}\n */\nexport function prepareSimpleAllowListPayload({\n owner,\n allowed,\n}: SimpleAllowListPayload) {\n return encodeAbiParameters(\n [\n { type: 'address', name: 'owner' },\n { type: 'address[]', name: 'allowed' },\n ],\n [owner, allowed],\n );\n}\n"],"names":["LIST_MANAGER_ROLE","_SimpleAllowList","DeployableTarget","simpleAllowListAbi","params","readSimpleAllowListOwner","address","readSimpleAllowListIsAllowed","zeroHash","addresses","allowed","request","result","simulateSimpleAllowListSetAllowed","writeSimpleAllowListSetAllowed","role","simulateSimpleAllowListGrantRoles","writeSimpleAllowListGrantRoles","_payload","_options","payload","options","zeroAddress","owner","getAccount","_a","DeployableUnknownOwnerProvidedError","bytecode","prepareSimpleAllowListPayload","SimpleAllowListBases","RegistryType","SimpleAllowList","encodeAbiParameters"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../generated-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../generated-BLg7yPgI.cjs"),e=require("../SimpleDenyList-9UIxZZKP.cjs");require("@wagmi/core");require("viem");require("../deployments-Ho4PnGCS.cjs");require("../Deployable/DeployableTarget.cjs");require("../errors.cjs");require("../utils.cjs");exports.simpleDenyListAbi=r.S;exports.SimpleDenyList=e.SimpleDenyList;exports.prepareSimpleDenyListPayload=e.prepareSimpleDenyListPayload;
|
|
2
2
|
//# sourceMappingURL=SimpleDenyList.cjs.map
|
|
@@ -278,6 +278,15 @@ export declare class SimpleDenyList<Payload = SimpleDenyListPayload> extends Dep
|
|
|
278
278
|
* @type {RegistryType}
|
|
279
279
|
*/
|
|
280
280
|
static registryType: RegistryType;
|
|
281
|
+
/**
|
|
282
|
+
* Retrieves the owner
|
|
283
|
+
*
|
|
284
|
+
* @public
|
|
285
|
+
* @async
|
|
286
|
+
* @param {?ReadParams<typeof simpleDenyListAbi, 'owner'>} [params]
|
|
287
|
+
* @returns {Promise<Address>} - The address of the owner
|
|
288
|
+
*/
|
|
289
|
+
owner(params?: ReadParams<typeof simpleDenyListAbi, 'owner'>): Promise<Address>;
|
|
281
290
|
/**
|
|
282
291
|
* Check if a user is authorized (i.e. not denied)
|
|
283
292
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleDenyList.d.ts","sourceRoot":"","sources":["../../src/AllowLists/SimpleDenyList.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"SimpleDenyList.d.ts","sourceRoot":"","sources":["../../src/AllowLists/SimpleDenyList.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,iBAAiB,EAGlB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,iBAAiB,EAKvB,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EACf,YAAY,EACZ,KAAK,WAAW,EACjB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,KAAK,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,MAAM,EAAE,OAAO,EAAE,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,iBAAiB,CAC3B,KAAK,SAAS,iBAAiB,CAAC,OAAO,iBAAiB,CAAC,GAAG,iBAAiB,CAC3E,OAAO,iBAAiB,CACzB,IACC,UAAU,CAAC,OAAO,iBAAiB,EAAE,KAAK,CAAC,CAAC;AAEhD;;;;;;;GAOG;AACH,qBAAa,cAAc,CACzB,OAAO,GAAG,qBAAqB,CAC/B,SAAQ,gBAAgB,CAAC,OAAO,GAAG,SAAS,EAAE,OAAO,iBAAiB,CAAC;IACvE,SAAyB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAqB;IACjD;;;;;;OAMG;IACH,OAAuB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEnD;IACF;;;;;;OAMG;IACH,OAAuB,YAAY,EAAE,YAAY,CAA2B;IAE5E;;;;;;;OAOG;IACU,KAAK,CAChB,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,iBAAiB,EAAE,OAAO,CAAC,GACrD,OAAO,CAAC,OAAO,CAAC;IAUnB;;;;;;;;OAQG;IACU,SAAS,CACpB,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,iBAAiB,EAAE,WAAW,CAAC,GACzD,OAAO,CAAC,OAAO,CAAC;IAUnB;;;;;;;;;OASG;IACU,SAAS,CACpB,SAAS,EAAE,OAAO,EAAE,EACpB,OAAO,EAAE,OAAO,EAAE,EAClB,MAAM,CAAC,EAAE,WAAW,CAAC,OAAO,iBAAiB,EAAE,WAAW,CAAC;IAO7D;;;;;;;;;OASG;IACU,YAAY,CACvB,SAAS,EAAE,OAAO,EAAE,EACpB,OAAO,EAAE,OAAO,EAAE,EAClB,MAAM,CAAC,EAAE,WAAW,CAAC,OAAO,iBAAiB,EAAE,WAAW,CAAC;;;;IAgB7D;;;;;;;OAOG;IACa,eAAe,CAC7B,QAAQ,CAAC,EAAE,OAAO,EAClB,QAAQ,CAAC,EAAE,iBAAiB,GAC3B,uBAAuB;CAsB3B;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,EAC3C,KAAK,EACL,MAAM,GACP,EAAE,qBAAqB,iBAQvB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { S as a } from "../generated-
|
|
2
|
-
import { S as y, p as S } from "../SimpleDenyList-
|
|
1
|
+
import { S as a } from "../generated-DLMdMwD1.js";
|
|
2
|
+
import { S as y, p as S } from "../SimpleDenyList-DGPNc7ov.js";
|
|
3
3
|
import "@wagmi/core";
|
|
4
4
|
import "viem";
|
|
5
5
|
import "../deployments-BvFcK_eR.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("../generated-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("../generated-BLg7yPgI.cjs"),a=require("../Deployable/Deployable.cjs"),s="0x6080604052348015600e575f80fd5b506101598061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063fe9fbb801461002d575b5f80fd5b610047600480360381019061004291906100c5565b61005d565b604051610054919061010a565b60405180910390f35b5f60019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100948261006b565b9050919050565b6100a48161008a565b81146100ae575f80fd5b50565b5f813590506100bf8161009b565b92915050565b5f602082840312156100da576100d9610067565b5b5f6100e7848285016100b1565b91505092915050565b5f8115159050919050565b610104816100f0565b82525050565b5f60208201905061011d5f8301846100fb565b9291505056fea2646970667358221220d69fb5c3af806c7aa7833655670f5929f23f7d101298880775d4b9c7c8d0e62f64736f6c634300081a0033";class d extends a.Deployable{constructor(){super(...arguments),this.abi=f.ze}async isAuthorized(b,e){return await f.AA(this._config,{address:this.assertValidAddress(),args:[b],...e})}buildParameters(b,e){const[o,t]=this.validateDeploymentConfig({},e);return{abi:f.ze,bytecode:s,args:[],...this.optionallyAttachAccount(t.account)}}}exports.passthroughAuthAbi=f.ze;exports.PassthroughAuth=d;
|
|
2
2
|
//# sourceMappingURL=PassthroughAuth.cjs.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { z as a,
|
|
1
|
+
import { z as a, k as s } from "../generated-DLMdMwD1.js";
|
|
2
2
|
import { Deployable as e } from "../Deployable/Deployable.js";
|
|
3
3
|
const d = "0x6080604052348015600e575f80fd5b506101598061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063fe9fbb801461002d575b5f80fd5b610047600480360381019061004291906100c5565b61005d565b604051610054919061010a565b60405180910390f35b5f60019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100948261006b565b9050919050565b6100a48161008a565b81146100ae575f80fd5b50565b5f813590506100bf8161009b565b92915050565b5f602082840312156100da576100d9610067565b5b5f6100e7848285016100b1565b91505092915050565b5f8115159050919050565b610104816100f0565b82525050565b5f60208201905061011d5f8301846100fb565b9291505056fea2646970667358221220d69fb5c3af806c7aa7833655670f5929f23f7d101298880775d4b9c7c8d0e62f64736f6c634300081a0033";
|
|
4
4
|
class n extends e {
|
package/dist/Boost.js
CHANGED
|
@@ -21,13 +21,11 @@ var O = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : ty
|
|
|
21
21
|
return parseInt(t.substr(r, 2), 16);
|
|
22
22
|
}
|
|
23
23
|
function L(t) {
|
|
24
|
-
for (var r = [], e = 0; e < t.length; e += 2)
|
|
25
|
-
r.push(m(t, e));
|
|
24
|
+
for (var r = [], e = 0; e < t.length; e += 2) r.push(m(t, e));
|
|
26
25
|
return r;
|
|
27
26
|
}
|
|
28
27
|
function P(t) {
|
|
29
|
-
for (var r = "0x", e = 0; e < t.length; r += b(t[e++]))
|
|
30
|
-
;
|
|
28
|
+
for (var r = "0x", e = 0; e < t.length; r += b(t[e++])) ;
|
|
31
29
|
return r;
|
|
32
30
|
}
|
|
33
31
|
c.flzCompress = function(t) {
|
|
@@ -39,34 +37,25 @@ var O = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : ty
|
|
|
39
37
|
return 2654435769 * d >> 19 & 8191;
|
|
40
38
|
}
|
|
41
39
|
function R(d, j) {
|
|
42
|
-
for (; d >= 32; )
|
|
43
|
-
|
|
44
|
-
i[s++] = r[j++];
|
|
45
|
-
if (d)
|
|
46
|
-
for (i[s++] = d - 1; d--; )
|
|
47
|
-
i[s++] = r[j++];
|
|
40
|
+
for (; d >= 32; ) for (i[s++] = 31, f = 32; f--; d--) i[s++] = r[j++];
|
|
41
|
+
if (d) for (i[s++] = d - 1; d--; ) i[s++] = r[j++];
|
|
48
42
|
}
|
|
49
43
|
for (; o < e - 9; ) {
|
|
50
44
|
do
|
|
51
45
|
F = n[S = B(v = A(o))] || 0, z = (p = (n[S] = o) - F) < 8192 ? A(F) : 16777216;
|
|
52
46
|
while (o < e - 9 && o++ && v != z);
|
|
53
|
-
if (o >= e - 9)
|
|
54
|
-
|
|
55
|
-
for (
|
|
56
|
-
D *= r[Z + u] === r[T + u];
|
|
57
|
-
for (o += u, --p; u > 262; u -= 262)
|
|
58
|
-
i[s++] = 224 + (p >> 8), i[s++] = 253, i[s++] = p & 255;
|
|
47
|
+
if (o >= e - 9) break;
|
|
48
|
+
for (--o > a && R(o - a, a), u = 0, Z = F + 3, T = o + 3, D = e - T; u < D; u++) D *= r[Z + u] === r[T + u];
|
|
49
|
+
for (o += u, --p; u > 262; u -= 262) i[s++] = 224 + (p >> 8), i[s++] = 253, i[s++] = p & 255;
|
|
59
50
|
u < 7 ? (i[s++] = (u << 5) + (p >> 8), i[s++] = p & 255) : (i[s++] = 224 + (p >> 8), i[s++] = u - 7, i[s++] = p & 255), n[B(A(o))] = o++, n[B(A(o))] = o++, a = o;
|
|
60
51
|
}
|
|
61
52
|
return R(e + 4 - a, a), P(i);
|
|
62
53
|
}, c.flzDecompress = function(t) {
|
|
63
54
|
for (var r = L(x(t)), e = 0, n = 0, i, a, o, s, f = []; e < r.length; )
|
|
64
55
|
if (o = r[e] >> 5)
|
|
65
|
-
for (a = 256 * (r[e] & 31) + r[e + 2 - (o = o < 7)], i = o ? 2 + (r[e] >> 5) : 9 + r[e + 1], e = e + 3 - o, s = n - a - 1; i--; )
|
|
66
|
-
f[n++] = f[s++];
|
|
56
|
+
for (a = 256 * (r[e] & 31) + r[e + 2 - (o = o < 7)], i = o ? 2 + (r[e] >> 5) : 9 + r[e + 1], e = e + 3 - o, s = n - a - 1; i--; ) f[n++] = f[s++];
|
|
67
57
|
else
|
|
68
|
-
for (i = 1 + r[e++]; i--; )
|
|
69
|
-
f[n++] = r[e++];
|
|
58
|
+
for (i = 1 + r[e++]; i--; ) f[n++] = r[e++];
|
|
70
59
|
return P(f);
|
|
71
60
|
}, c.cdCompress = function(t) {
|
|
72
61
|
t = x(t);
|
|
@@ -93,8 +82,7 @@ var O = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : ty
|
|
|
93
82
|
t = x(t);
|
|
94
83
|
for (var r = "0x", e = 0, n, i, a; e < t.length; ) {
|
|
95
84
|
if (i = (e < 4 * 2) * 255 ^ m(t, e), e += 2, !i) {
|
|
96
|
-
for (i = (e < 4 * 2) * 255 ^ m(t, e), a = (i & 127) + 1, e += 2, n = 0; n < a; ++n)
|
|
97
|
-
r += b((i >> 7 && n < 32) * 255);
|
|
85
|
+
for (i = (e < 4 * 2) * 255 ^ m(t, e), a = (i & 127) + 1, e += 2, n = 0; n < a; ++n) r += b((i >> 7 && n < 32) * 255);
|
|
98
86
|
continue;
|
|
99
87
|
}
|
|
100
88
|
r += b(i);
|
package/dist/Boost.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Boost.js","sources":["../../../node_modules/.pnpm/solady@0.0.208/node_modules/solady/js/solady.js","../src/Boost.ts"],"sourcesContent":["/**\n * Accompanying JavaScript library for Solady.\n *\n * To install:\n * \n * ```\n * npm install solady\n * ```\n *\n * Module exports:\n * \n * - `LibZip`\n * - `flzCompress(data)`: Compresses hex encoded data with FastLZ.\n * - `flzDecompress(data)`: Decompresses hex encoded data with FastLZ.\n * - `cdCompress(data)`: Compresses hex encoded calldata.\n * - `cdDecompress(data)`: Decompresses hex encoded calldata.\n * \n * - `ERC1967Factory`\n * - `address`: Canonical address of Solady's ERC1967Factory.\n * - `abi`: ABI of Solady's ERC1967Factory.\n *\n * @module solady\n */\n(function(global, factory) {\n\n \"use strict\";\n\n if (typeof module === \"object\" && typeof module.exports === \"object\") {\n module.exports = factory(global, 1);\n if (typeof exports === \"object\") {\n exports.LibZip = module.exports.LibZip;\n exports.ERC1967Factory = module.exports.ERC1967Factory;\n }\n } else {\n factory(global);\n }\n\n})(typeof window !== \"undefined\" ? window : this, function(window, noGlobal) {\n\n \"use strict\";\n\n var solady = {};\n\n /*============================================================*/\n /* LibZip Operations */\n /*============================================================*/\n\n // See: https://github.com/vectorized/solady/blob/main/src/utils/LibZip.sol\n\n /**\n * FastLZ and calldata compression / decompression functions.\n * @namespace\n * @alias module:solady.LibZip\n */\n var LibZip = {};\n\n solady.LibZip = LibZip;\n\n function hexString(data) {\n if (typeof data === \"string\" || data instanceof String) {\n if (data = data.match(/^[\\s\\uFEFF\\xA0]*(0[Xx])?([0-9A-Fa-f]*)[\\s\\uFEFF\\xA0]*$/)) {\n if (data[2].length % 2) {\n throw new Error(\"Hex string length must be a multiple of 2.\");\n }\n return data[2];\n }\n }\n throw new Error(\"Data must be a hex string.\");\n }\n\n function byteToString(b) {\n return (b | 0x100).toString(16).slice(1);\n }\n\n function parseByte(data, i) {\n return parseInt(data.substr(i, 2), 16);\n }\n\n function hexToBytes(data) {\n var a = [], i = 0;\n for (; i < data.length; i += 2) a.push(parseByte(data, i));\n return a;\n }\n\n function bytesToHex(a) {\n var o = \"0x\", i = 0;\n for (; i < a.length; o += byteToString(a[i++])) ;\n return o;\n }\n\n /**\n * Compresses hex encoded data with the FastLZ LZ77 algorithm.\n * @param {string} data A hex encoded string representing the original data.\n * @returns {string} The compressed result as a hex encoded string.\n */\n LibZip.flzCompress = function(data) {\n var ib = hexToBytes(hexString(data)), b = ib.length - 4;\n var ht = [], ob = [], a = 0, i = 2, o = 0, j, s, h, d, c, l, r, p, q, e;\n\n function u24(i) {\n return ib[i] | (ib[++i] << 8) | (ib[++i] << 16);\n }\n\n function hash(x) {\n return ((2654435769 * x) >> 19) & 8191;\n }\n\n function literals(r, s) {\n while (r >= 32) for (ob[o++] = 31, j = 32; j--; r--) ob[o++] = ib[s++];\n if (r) for (ob[o++] = r - 1; r--; ) ob[o++] = ib[s++];\n }\n\n while (i < b - 9) {\n do {\n r = ht[h = hash(s = u24(i))] || 0;\n c = (d = (ht[h] = i) - r) < 8192 ? u24(r) : 0x1000000;\n } while (i < b - 9 && i++ && s != c);\n if (i >= b - 9) break;\n if (--i > a) literals(i - a, a);\n for (l = 0, p = r + 3, q = i + 3, e = b - q; l < e; l++) e *= ib[p + l] === ib[q + l];\n i += l;\n for (--d; l > 262; l -= 262) ob[o++] = 224 + (d >> 8), ob[o++] = 253, ob[o++] = d & 255;\n if (l < 7) ob[o++] = (l << 5) + (d >> 8), ob[o++] = d & 255;\n else ob[o++] = 224 + (d >> 8), ob[o++] = l - 7, ob[o++] = d & 255;\n ht[hash(u24(i))] = i++, ht[hash(u24(i))] = i++, a = i;\n }\n literals(b + 4 - a, a);\n return bytesToHex(ob);\n }\n\n /**\n * Decompresses hex encoded data with the FastLZ LZ77 algorithm.\n * @param {string} data A hex encoded string representing the compressed data.\n * @returns {string} The decompressed result as a hex encoded string.\n */\n LibZip.flzDecompress = function(data) {\n var ib = hexToBytes(hexString(data)), i = 0, o = 0, l, f, t, r, h, ob = [];\n while (i < ib.length) {\n if (!(t = ib[i] >> 5)) {\n for (l = 1 + ib[i++]; l--;) ob[o++] = ib[i++];\n } else {\n f = 256 * (ib[i] & 31) + ib[i + 2 - (t = t < 7)];\n l = t ? 2 + (ib[i] >> 5) : 9 + ib[i + 1];\n i = i + 3 - t;\n r = o - f - 1;\n while (l--) ob[o++] = ob[r++];\n }\n }\n return bytesToHex(ob);\n }\n\n /**\n * Compresses hex encoded calldata.\n * @param {string} data A hex encoded string representing the original data.\n * @returns {string} The compressed result as a hex encoded string.\n */\n LibZip.cdCompress = function(data) {\n data = hexString(data);\n var o = \"0x\", z = 0, y = 0, i = 0, c;\n\n function pushByte(b) {\n o += byteToString(((o.length < 4 * 2 + 2) * 0xff) ^ b);\n }\n\n function rle(v, d) {\n pushByte(0x00);\n pushByte(d - 1 + v * 0x80);\n }\n\n for (; i < data.length; i += 2) {\n c = parseByte(data, i);\n if (!c) {\n if (y) rle(1, y), y = 0;\n if (++z === 0x80) rle(0, 0x80), z = 0;\n continue;\n }\n if (c === 0xff) {\n if (z) rle(0, z), z = 0;\n if (++y === 0x20) rle(1, 0x20), y = 0;\n continue;\n }\n if (y) rle(1, y), y = 0;\n if (z) rle(0, z), z = 0;\n pushByte(c);\n }\n if (y) rle(1, y), y = 0;\n if (z) rle(0, z), z = 0;\n return o;\n }\n\n /**\n * Decompresses hex encoded calldata.\n * @param {string} data A hex encoded string representing the compressed data.\n * @returns {string} The decompressed result as a hex encoded string.\n */\n LibZip.cdDecompress = function(data) {\n data = hexString(data);\n var o = \"0x\", i = 0, j, c, s;\n\n while (i < data.length) {\n c = ((i < 4 * 2) * 0xff) ^ parseByte(data, i);\n i += 2;\n if (!c) {\n c = ((i < 4 * 2) * 0xff) ^ parseByte(data, i);\n s = (c & 0x7f) + 1;\n i += 2;\n for (j = 0; j < s; ++j) o += byteToString((c >> 7 && j < 32) * 0xff);\n continue;\n }\n o += byteToString(c);\n }\n return o;\n }\n\n /*============================================================*/\n /* ERC1967Factory */\n /*============================================================*/\n\n // See: https://github.com/vectorized/solady/blob/main/src/utils/ERC1967Factory.sol\n\n /**\n * ERC1967Factory canonical address and ABI.\n * @namespace\n * @alias module:solady.ERC1967Factory\n */\n var ERC1967Factory = {};\n\n solady.ERC1967Factory = ERC1967Factory;\n\n /**\n * Canonical address of Solady's ERC1967Factory.\n * @type {string}\n */\n ERC1967Factory.address = \"0x0000000000006396FF2a80c067f99B3d2Ab4Df24\";\n\n /**\n * ABI of Solady's ERC1967Factory.\n * @type {Object}\n */\n ERC1967Factory.abi = JSON.parse('[{0:[],1:\"DeploymentFailed\"96\"SaltDoesNotStartWithCaller\"96\"Unauthorized\"96\"UpgradeFailed\",2:3959790,9791],1:\"AdminChanged\",2:10959790,9792,9791],1:\"Deployed\",2:10959790,9792],1:\"Upgraded\",2:10},{0:[{90],1:\"adminOf\",12:[{9199{0:[{90,{91],1:\"changeAdmin\",12:[],13:\"nonpayable\",2:15},{0:[{92,{91],1:\"deploy\",12:[{9098,{0:[{92,{91,{94],1:\"deployAndCall\",12:[{9098,{0:[{92,{91,{93],1:\"deployDeterministic\",12:[{9098,{0:[{92,{91,{93,{94],1:\"deployDeterministicAndCall\",12:[{9098,{0:[],1:\"initCodeHash\",12:[{6:19,1:\"result\",2:19}99{0:[{93],1:\"predictDeterministicAddress\",12:[{6:7,1:\"predicted\",2:7}99{0:[{90,{92],1:\"upgrade\",12:[98,{0:[{90,{92,{94],1:\"upgradeAndCall\",12:[98]'.replace(/9\\d/g, function (m) { return [\"6:7,1:8,2:7}\",\"6:7,1:9,2:7}\",\"6:7,1:11,2:7}\",\"6:19,1:20,2:19}\",\"6:17,1:18,2:17}\",\"},{4:false,0:[\",\",2:3},{0:[],1:\",\"{5:true,\",\"],13:16,2:15}\",\"],13:14,2:15},\"][m-90] }).replace(/\\d+/g, function (m) { return '\"' + (\"inputs,name,type,error,anonymous,indexed,internalType,address,proxy,admin,event,implementation,outputs,stateMutability,view,function,payable,bytes,data,bytes32,salt\".split(\",\")[m]) + '\"' }));\n\n /*--------------------------- END ----------------------------*/\n\n if (typeof define === \"function\" && define.amd) {\n define(\"solady\", [], function() {\n return solady\n });\n }\n\n if (!noGlobal) {\n window.solady = solady;\n }\n\n return solady;\n});\n","import { LibZip } from 'solady';\nimport {\n type Address,\n type Hex,\n encodeAbiParameters,\n parseAbiParameters,\n zeroAddress,\n} from 'viem';\nimport type { Action } from './Actions/Action';\nimport type { AllowList } from './AllowLists/AllowList';\nimport type { Budget } from './Budgets/Budget';\nimport type { Incentive } from './Incentives/Incentive';\nimport type { Validator } from './Validators/Validator';\n\n/**\n * Configuration used to instantiate a `Boost` instance.\n *\n * @export\n * @interface BoostPayload\n * @typedef {BoostPayload}\n */\nexport interface BoostConfig {\n /**\n *\n * @type {bigint}\n */\n id: bigint;\n /**\n *\n * @type {Budget}\n */\n budget: Budget;\n /**\n *\n * @type {Action}\n */\n action: Action;\n /**\n *\n * @type {Validator}\n */\n validator: Validator;\n /**\n *\n * @type {AllowList}\n */\n allowList: AllowList;\n /**\n *\n * @type {Array<Incentive>}\n */\n incentives: Array<Incentive>;\n /**\n *\n * @type {?bigint}\n */\n protocolFee?: bigint;\n /**\n *\n * @type {?bigint}\n */\n referralFee?: bigint;\n /**\n *\n * @type {?bigint}\n */\n maxParticipants?: bigint;\n /**\n *\n * @type {?Address}\n */\n owner?: Address;\n}\n\n/**\n * A struct representing a single Boost. Typically you would not construct this directly, rather get an instance from `BoostCore.createBoost` or `BoostCore.getBoost`\n *\n * @export\n * @class Boost\n * @typedef {Boost}\n */\nexport class Boost {\n /**\n *\n * @readonly\n * @type {bigint}\n */\n readonly id: bigint;\n /**\n *\n * @readonly\n * @type {Budget}\n */\n readonly budget: Budget;\n /**\n *\n * @readonly\n * @type {Action}\n */\n readonly action: Action;\n /**\n *\n * @readonly\n * @type {Validator}\n */\n readonly validator: Validator;\n /**\n *\n * @readonly\n * @type {AllowList}\n */\n readonly allowList: AllowList;\n /**\n *\n * @readonly\n * @type {Array<Incentive>}\n */\n readonly incentives: Array<Incentive>;\n /**\n *\n * @readonly\n * @type {bigint}\n */\n readonly protocolFee: bigint;\n /**\n *\n * @readonly\n * @type {bigint}\n */\n readonly referralFee: bigint;\n /**\n *\n * @readonly\n * @type {bigint}\n */\n readonly maxParticipants: bigint;\n /**\n *\n * @readonly\n * @type {Address}\n */\n readonly owner: Address;\n\n /**\n * Creates an instance of Boost.\n *\n * @constructor\n * @param {BoostConfig} config\n */\n constructor(config: BoostConfig) {\n this.id = config.id;\n this.budget = config.budget;\n this.action = config.action;\n this.validator = config.validator;\n this.allowList = config.allowList;\n this.incentives = config.incentives;\n this.protocolFee = config.protocolFee || 0n;\n this.referralFee = config.referralFee || 0n;\n this.maxParticipants = config.maxParticipants || 0n;\n this.owner = config.owner || zeroAddress;\n }\n}\n\n/**\n * Object representation of `BoostLib.Target` struct. Used for low level Boost creation operations.\n * This is used to pass the base contract and its initialization parameters in an efficient manner\n *\n * @export\n * @typedef {Target}\n */\nexport type Target = {\n isBase: boolean;\n instance: Address;\n parameters: Hex;\n};\n\n/**\n * Object representation of `BoostCore.InitPayload` struct.\n *\n * @export\n * @interface BoostPayload\n * @typedef {BoostPayload}\n */\nexport interface BoostPayload {\n /**\n * Address to valid budget.\n *\n * @type {Address}\n */\n budget: Address;\n /**\n * Target for existing action, or base with initialization payload.\n *\n * @type {Target}\n */\n action: Target;\n /**\n * Target for existing validator, or base with initialization payload.\n *\n * @type {Target}\n */\n validator: Target;\n /**\n * Target for existing allowList, or base with initialization payload.\n *\n * @type {Target}\n */\n allowList: Target;\n /**\n * Targets for new incentives, with initialization payloads.\n *\n * @type {Target[]}\n */\n incentives: Target[];\n /**\n * The base protocol fee (in bps)\n *\n * @type {?bigint}\n */\n protocolFee?: bigint;\n /**\n * The base referral fee (in bps)\n *\n * @type {?bigint}\n */\n referralFee?: bigint;\n /**\n * Optional maximum amount of participants in the Boost.\n *\n * @type {?bigint}\n */\n maxParticipants?: bigint;\n /**\n * The owner of the Boost.\n *\n * @type {Address}\n */\n owner: Address;\n}\n\n/**\n * Given a valid {@link BoostPayload}, properly encode and compress the payload for use with `createBoost`\n *\n * @export\n * @param {BoostPayload} param0\n * @param {Address} param0.budget - Address to valid budget.\n * @param {Target} param0.action - Target for existing action, or base with initialization payload.\n * @param {Target} param0.validator - Target for existing validator, or base with initialization payload.\n * @param {Target} param0.allowList - Target for existing allowList, or base with initialization payload.\n * @param {Target[]} param0.incentives - Targets for new incentives, with initialization payloads.\n * @param {bigint} [param0.protocolFee=0n] - The base protocol fee (in bps)\n * @param {bigint} [param0.referralFee=0n] - The base referral fee (in bps)\n * @param {bigint} [param0.maxParticipants=0n] - Optional maximum amount of participants in the Boost.\n * @param {Address} param0.owner - The owner of the Boost.\n * @returns {Hex}\n */\nexport function prepareBoostPayload({\n budget,\n action,\n validator,\n allowList,\n incentives,\n protocolFee = 0n,\n referralFee = 0n,\n maxParticipants = 0n,\n owner,\n}: BoostPayload): Hex {\n return LibZip.cdCompress(\n encodeAbiParameters(\n parseAbiParameters([\n 'BoostPayload payload',\n 'struct BoostPayload { address budget; Target action; Target validator; Target allowList; Target[] incentives; uint64 protocolFee; uint64 referralFee; uint256 maxParticipants; address owner; }',\n 'struct Target { bool isBase; address instance; bytes parameters; }',\n ]),\n [\n {\n budget,\n action,\n validator,\n allowList,\n incentives,\n protocolFee,\n referralFee,\n maxParticipants,\n owner,\n },\n ],\n ),\n ) as Hex;\n}\n"],"names":["global","factory","module","exports","this","window","noGlobal","solady","LibZip","hexString","data","byteToString","b","parseByte","i","hexToBytes","a","bytesToHex","o","ib","ht","ob","j","s","h","d","c","l","r","p","q","e","u24","hash","x","literals","f","t","z","y","pushByte","rle","v","ERC1967Factory","m","Boost","config","zeroAddress","prepareBoostPayload","budget","action","validator","allowList","incentives","protocolFee","referralFee","maxParticipants","owner","encodeAbiParameters","parseAbiParameters"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"Boost.js","sources":["../../../node_modules/.pnpm/solady@0.0.208/node_modules/solady/js/solady.js","../src/Boost.ts"],"sourcesContent":["/**\n * Accompanying JavaScript library for Solady.\n *\n * To install:\n * \n * ```\n * npm install solady\n * ```\n *\n * Module exports:\n * \n * - `LibZip`\n * - `flzCompress(data)`: Compresses hex encoded data with FastLZ.\n * - `flzDecompress(data)`: Decompresses hex encoded data with FastLZ.\n * - `cdCompress(data)`: Compresses hex encoded calldata.\n * - `cdDecompress(data)`: Decompresses hex encoded calldata.\n * \n * - `ERC1967Factory`\n * - `address`: Canonical address of Solady's ERC1967Factory.\n * - `abi`: ABI of Solady's ERC1967Factory.\n *\n * @module solady\n */\n(function(global, factory) {\n\n \"use strict\";\n\n if (typeof module === \"object\" && typeof module.exports === \"object\") {\n module.exports = factory(global, 1);\n if (typeof exports === \"object\") {\n exports.LibZip = module.exports.LibZip;\n exports.ERC1967Factory = module.exports.ERC1967Factory;\n }\n } else {\n factory(global);\n }\n\n})(typeof window !== \"undefined\" ? window : this, function(window, noGlobal) {\n\n \"use strict\";\n\n var solady = {};\n\n /*============================================================*/\n /* LibZip Operations */\n /*============================================================*/\n\n // See: https://github.com/vectorized/solady/blob/main/src/utils/LibZip.sol\n\n /**\n * FastLZ and calldata compression / decompression functions.\n * @namespace\n * @alias module:solady.LibZip\n */\n var LibZip = {};\n\n solady.LibZip = LibZip;\n\n function hexString(data) {\n if (typeof data === \"string\" || data instanceof String) {\n if (data = data.match(/^[\\s\\uFEFF\\xA0]*(0[Xx])?([0-9A-Fa-f]*)[\\s\\uFEFF\\xA0]*$/)) {\n if (data[2].length % 2) {\n throw new Error(\"Hex string length must be a multiple of 2.\");\n }\n return data[2];\n }\n }\n throw new Error(\"Data must be a hex string.\");\n }\n\n function byteToString(b) {\n return (b | 0x100).toString(16).slice(1);\n }\n\n function parseByte(data, i) {\n return parseInt(data.substr(i, 2), 16);\n }\n\n function hexToBytes(data) {\n var a = [], i = 0;\n for (; i < data.length; i += 2) a.push(parseByte(data, i));\n return a;\n }\n\n function bytesToHex(a) {\n var o = \"0x\", i = 0;\n for (; i < a.length; o += byteToString(a[i++])) ;\n return o;\n }\n\n /**\n * Compresses hex encoded data with the FastLZ LZ77 algorithm.\n * @param {string} data A hex encoded string representing the original data.\n * @returns {string} The compressed result as a hex encoded string.\n */\n LibZip.flzCompress = function(data) {\n var ib = hexToBytes(hexString(data)), b = ib.length - 4;\n var ht = [], ob = [], a = 0, i = 2, o = 0, j, s, h, d, c, l, r, p, q, e;\n\n function u24(i) {\n return ib[i] | (ib[++i] << 8) | (ib[++i] << 16);\n }\n\n function hash(x) {\n return ((2654435769 * x) >> 19) & 8191;\n }\n\n function literals(r, s) {\n while (r >= 32) for (ob[o++] = 31, j = 32; j--; r--) ob[o++] = ib[s++];\n if (r) for (ob[o++] = r - 1; r--; ) ob[o++] = ib[s++];\n }\n\n while (i < b - 9) {\n do {\n r = ht[h = hash(s = u24(i))] || 0;\n c = (d = (ht[h] = i) - r) < 8192 ? u24(r) : 0x1000000;\n } while (i < b - 9 && i++ && s != c);\n if (i >= b - 9) break;\n if (--i > a) literals(i - a, a);\n for (l = 0, p = r + 3, q = i + 3, e = b - q; l < e; l++) e *= ib[p + l] === ib[q + l];\n i += l;\n for (--d; l > 262; l -= 262) ob[o++] = 224 + (d >> 8), ob[o++] = 253, ob[o++] = d & 255;\n if (l < 7) ob[o++] = (l << 5) + (d >> 8), ob[o++] = d & 255;\n else ob[o++] = 224 + (d >> 8), ob[o++] = l - 7, ob[o++] = d & 255;\n ht[hash(u24(i))] = i++, ht[hash(u24(i))] = i++, a = i;\n }\n literals(b + 4 - a, a);\n return bytesToHex(ob);\n }\n\n /**\n * Decompresses hex encoded data with the FastLZ LZ77 algorithm.\n * @param {string} data A hex encoded string representing the compressed data.\n * @returns {string} The decompressed result as a hex encoded string.\n */\n LibZip.flzDecompress = function(data) {\n var ib = hexToBytes(hexString(data)), i = 0, o = 0, l, f, t, r, h, ob = [];\n while (i < ib.length) {\n if (!(t = ib[i] >> 5)) {\n for (l = 1 + ib[i++]; l--;) ob[o++] = ib[i++];\n } else {\n f = 256 * (ib[i] & 31) + ib[i + 2 - (t = t < 7)];\n l = t ? 2 + (ib[i] >> 5) : 9 + ib[i + 1];\n i = i + 3 - t;\n r = o - f - 1;\n while (l--) ob[o++] = ob[r++];\n }\n }\n return bytesToHex(ob);\n }\n\n /**\n * Compresses hex encoded calldata.\n * @param {string} data A hex encoded string representing the original data.\n * @returns {string} The compressed result as a hex encoded string.\n */\n LibZip.cdCompress = function(data) {\n data = hexString(data);\n var o = \"0x\", z = 0, y = 0, i = 0, c;\n\n function pushByte(b) {\n o += byteToString(((o.length < 4 * 2 + 2) * 0xff) ^ b);\n }\n\n function rle(v, d) {\n pushByte(0x00);\n pushByte(d - 1 + v * 0x80);\n }\n\n for (; i < data.length; i += 2) {\n c = parseByte(data, i);\n if (!c) {\n if (y) rle(1, y), y = 0;\n if (++z === 0x80) rle(0, 0x80), z = 0;\n continue;\n }\n if (c === 0xff) {\n if (z) rle(0, z), z = 0;\n if (++y === 0x20) rle(1, 0x20), y = 0;\n continue;\n }\n if (y) rle(1, y), y = 0;\n if (z) rle(0, z), z = 0;\n pushByte(c);\n }\n if (y) rle(1, y), y = 0;\n if (z) rle(0, z), z = 0;\n return o;\n }\n\n /**\n * Decompresses hex encoded calldata.\n * @param {string} data A hex encoded string representing the compressed data.\n * @returns {string} The decompressed result as a hex encoded string.\n */\n LibZip.cdDecompress = function(data) {\n data = hexString(data);\n var o = \"0x\", i = 0, j, c, s;\n\n while (i < data.length) {\n c = ((i < 4 * 2) * 0xff) ^ parseByte(data, i);\n i += 2;\n if (!c) {\n c = ((i < 4 * 2) * 0xff) ^ parseByte(data, i);\n s = (c & 0x7f) + 1;\n i += 2;\n for (j = 0; j < s; ++j) o += byteToString((c >> 7 && j < 32) * 0xff);\n continue;\n }\n o += byteToString(c);\n }\n return o;\n }\n\n /*============================================================*/\n /* ERC1967Factory */\n /*============================================================*/\n\n // See: https://github.com/vectorized/solady/blob/main/src/utils/ERC1967Factory.sol\n\n /**\n * ERC1967Factory canonical address and ABI.\n * @namespace\n * @alias module:solady.ERC1967Factory\n */\n var ERC1967Factory = {};\n\n solady.ERC1967Factory = ERC1967Factory;\n\n /**\n * Canonical address of Solady's ERC1967Factory.\n * @type {string}\n */\n ERC1967Factory.address = \"0x0000000000006396FF2a80c067f99B3d2Ab4Df24\";\n\n /**\n * ABI of Solady's ERC1967Factory.\n * @type {Object}\n */\n ERC1967Factory.abi = JSON.parse('[{0:[],1:\"DeploymentFailed\"96\"SaltDoesNotStartWithCaller\"96\"Unauthorized\"96\"UpgradeFailed\",2:3959790,9791],1:\"AdminChanged\",2:10959790,9792,9791],1:\"Deployed\",2:10959790,9792],1:\"Upgraded\",2:10},{0:[{90],1:\"adminOf\",12:[{9199{0:[{90,{91],1:\"changeAdmin\",12:[],13:\"nonpayable\",2:15},{0:[{92,{91],1:\"deploy\",12:[{9098,{0:[{92,{91,{94],1:\"deployAndCall\",12:[{9098,{0:[{92,{91,{93],1:\"deployDeterministic\",12:[{9098,{0:[{92,{91,{93,{94],1:\"deployDeterministicAndCall\",12:[{9098,{0:[],1:\"initCodeHash\",12:[{6:19,1:\"result\",2:19}99{0:[{93],1:\"predictDeterministicAddress\",12:[{6:7,1:\"predicted\",2:7}99{0:[{90,{92],1:\"upgrade\",12:[98,{0:[{90,{92,{94],1:\"upgradeAndCall\",12:[98]'.replace(/9\\d/g, function (m) { return [\"6:7,1:8,2:7}\",\"6:7,1:9,2:7}\",\"6:7,1:11,2:7}\",\"6:19,1:20,2:19}\",\"6:17,1:18,2:17}\",\"},{4:false,0:[\",\",2:3},{0:[],1:\",\"{5:true,\",\"],13:16,2:15}\",\"],13:14,2:15},\"][m-90] }).replace(/\\d+/g, function (m) { return '\"' + (\"inputs,name,type,error,anonymous,indexed,internalType,address,proxy,admin,event,implementation,outputs,stateMutability,view,function,payable,bytes,data,bytes32,salt\".split(\",\")[m]) + '\"' }));\n\n /*--------------------------- END ----------------------------*/\n\n if (typeof define === \"function\" && define.amd) {\n define(\"solady\", [], function() {\n return solady\n });\n }\n\n if (!noGlobal) {\n window.solady = solady;\n }\n\n return solady;\n});\n","import { LibZip } from 'solady';\nimport {\n type Address,\n type Hex,\n encodeAbiParameters,\n parseAbiParameters,\n zeroAddress,\n} from 'viem';\nimport type { Action } from './Actions/Action';\nimport type { AllowList } from './AllowLists/AllowList';\nimport type { Budget } from './Budgets/Budget';\nimport type { Incentive } from './Incentives/Incentive';\nimport type { Validator } from './Validators/Validator';\n\n/**\n * Configuration used to instantiate a `Boost` instance.\n *\n * @export\n * @interface BoostPayload\n * @typedef {BoostPayload}\n */\nexport interface BoostConfig {\n /**\n *\n * @type {bigint}\n */\n id: bigint;\n /**\n *\n * @type {Budget}\n */\n budget: Budget;\n /**\n *\n * @type {Action}\n */\n action: Action;\n /**\n *\n * @type {Validator}\n */\n validator: Validator;\n /**\n *\n * @type {AllowList}\n */\n allowList: AllowList;\n /**\n *\n * @type {Array<Incentive>}\n */\n incentives: Array<Incentive>;\n /**\n *\n * @type {?bigint}\n */\n protocolFee?: bigint;\n /**\n *\n * @type {?bigint}\n */\n referralFee?: bigint;\n /**\n *\n * @type {?bigint}\n */\n maxParticipants?: bigint;\n /**\n *\n * @type {?Address}\n */\n owner?: Address;\n}\n\n/**\n * A struct representing a single Boost. Typically you would not construct this directly, rather get an instance from `BoostCore.createBoost` or `BoostCore.getBoost`\n *\n * @export\n * @class Boost\n * @typedef {Boost}\n */\nexport class Boost {\n /**\n *\n * @readonly\n * @type {bigint}\n */\n readonly id: bigint;\n /**\n *\n * @readonly\n * @type {Budget}\n */\n readonly budget: Budget;\n /**\n *\n * @readonly\n * @type {Action}\n */\n readonly action: Action;\n /**\n *\n * @readonly\n * @type {Validator}\n */\n readonly validator: Validator;\n /**\n *\n * @readonly\n * @type {AllowList}\n */\n readonly allowList: AllowList;\n /**\n *\n * @readonly\n * @type {Array<Incentive>}\n */\n readonly incentives: Array<Incentive>;\n /**\n *\n * @readonly\n * @type {bigint}\n */\n readonly protocolFee: bigint;\n /**\n *\n * @readonly\n * @type {bigint}\n */\n readonly referralFee: bigint;\n /**\n *\n * @readonly\n * @type {bigint}\n */\n readonly maxParticipants: bigint;\n /**\n *\n * @readonly\n * @type {Address}\n */\n readonly owner: Address;\n\n /**\n * Creates an instance of Boost.\n *\n * @constructor\n * @param {BoostConfig} config\n */\n constructor(config: BoostConfig) {\n this.id = config.id;\n this.budget = config.budget;\n this.action = config.action;\n this.validator = config.validator;\n this.allowList = config.allowList;\n this.incentives = config.incentives;\n this.protocolFee = config.protocolFee || 0n;\n this.referralFee = config.referralFee || 0n;\n this.maxParticipants = config.maxParticipants || 0n;\n this.owner = config.owner || zeroAddress;\n }\n}\n\n/**\n * Object representation of `BoostLib.Target` struct. Used for low level Boost creation operations.\n * This is used to pass the base contract and its initialization parameters in an efficient manner\n *\n * @export\n * @typedef {Target}\n */\nexport type Target = {\n isBase: boolean;\n instance: Address;\n parameters: Hex;\n};\n\n/**\n * Object representation of `BoostCore.InitPayload` struct.\n *\n * @export\n * @interface BoostPayload\n * @typedef {BoostPayload}\n */\nexport interface BoostPayload {\n /**\n * Address to valid budget.\n *\n * @type {Address}\n */\n budget: Address;\n /**\n * Target for existing action, or base with initialization payload.\n *\n * @type {Target}\n */\n action: Target;\n /**\n * Target for existing validator, or base with initialization payload.\n *\n * @type {Target}\n */\n validator: Target;\n /**\n * Target for existing allowList, or base with initialization payload.\n *\n * @type {Target}\n */\n allowList: Target;\n /**\n * Targets for new incentives, with initialization payloads.\n *\n * @type {Target[]}\n */\n incentives: Target[];\n /**\n * The base protocol fee (in bps)\n *\n * @type {?bigint}\n */\n protocolFee?: bigint;\n /**\n * The base referral fee (in bps)\n *\n * @type {?bigint}\n */\n referralFee?: bigint;\n /**\n * Optional maximum amount of participants in the Boost.\n *\n * @type {?bigint}\n */\n maxParticipants?: bigint;\n /**\n * The owner of the Boost.\n *\n * @type {Address}\n */\n owner: Address;\n}\n\n/**\n * Given a valid {@link BoostPayload}, properly encode and compress the payload for use with `createBoost`\n *\n * @export\n * @param {BoostPayload} param0\n * @param {Address} param0.budget - Address to valid budget.\n * @param {Target} param0.action - Target for existing action, or base with initialization payload.\n * @param {Target} param0.validator - Target for existing validator, or base with initialization payload.\n * @param {Target} param0.allowList - Target for existing allowList, or base with initialization payload.\n * @param {Target[]} param0.incentives - Targets for new incentives, with initialization payloads.\n * @param {bigint} [param0.protocolFee=0n] - The base protocol fee (in bps)\n * @param {bigint} [param0.referralFee=0n] - The base referral fee (in bps)\n * @param {bigint} [param0.maxParticipants=0n] - Optional maximum amount of participants in the Boost.\n * @param {Address} param0.owner - The owner of the Boost.\n * @returns {Hex}\n */\nexport function prepareBoostPayload({\n budget,\n action,\n validator,\n allowList,\n incentives,\n protocolFee = 0n,\n referralFee = 0n,\n maxParticipants = 0n,\n owner,\n}: BoostPayload): Hex {\n return LibZip.cdCompress(\n encodeAbiParameters(\n parseAbiParameters([\n 'BoostPayload payload',\n 'struct BoostPayload { address budget; Target action; Target validator; Target allowList; Target[] incentives; uint64 protocolFee; uint64 referralFee; uint256 maxParticipants; address owner; }',\n 'struct Target { bool isBase; address instance; bytes parameters; }',\n ]),\n [\n {\n budget,\n action,\n validator,\n allowList,\n incentives,\n protocolFee,\n referralFee,\n maxParticipants,\n owner,\n },\n ],\n ),\n ) as Hex;\n}\n"],"names":["global","factory","module","exports","this","window","noGlobal","solady","LibZip","hexString","data","byteToString","b","parseByte","i","hexToBytes","a","bytesToHex","o","ib","ht","ob","j","s","h","d","c","l","r","p","q","e","u24","hash","x","literals","f","t","z","y","pushByte","rle","v","ERC1967Factory","m","Boost","config","zeroAddress","prepareBoostPayload","budget","action","validator","allowList","incentives","protocolFee","referralFee","maxParticipants","owner","encodeAbiParameters","parseAbiParameters"],"mappings":"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","x_google_ignoreList":[0]}
|
package/dist/BoostCore.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./generated-tq_HLZJ0.cjs"),$=require("@wagmi/core"),d=require("viem"),W=require("./deployments-Ho4PnGCS.cjs"),bf=require("./Actions/Action.cjs"),tf=require("./Actions/EventAction.cjs"),j=require("./AllowLists/AllowList.cjs"),af=require("./AllowLists/SimpleAllowList.cjs"),cf=require("./SimpleDenyList-DeJRKD2D.cjs"),sf=require("./Auth/PassthroughAuth.cjs"),z=require("./Boost.cjs"),nf=require("./Budgets/Budget.cjs"),df=require("./Budgets/ManagedBudget.cjs"),of=require("./Deployable/Deployable.cjs"),rf=require("./Incentives/AllowListIncentive.cjs"),uf=require("./Incentives/CGDAIncentive.cjs"),lf=require("./Incentives/ERC20Incentive.cjs"),T=require("./Incentives/Incentive.cjs"),hf=require("./Incentives/PointsIncentive.cjs"),gf=require("./Validators/SignerValidator.cjs"),wf=require("./Validators/Validator.cjs"),v=require("./errors.cjs"),h=require("./utils.cjs"),k=require("viem/actions"),G=require("viem/utils"),Af="0x60806040526544364c5bb0006004556103e860055f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506103e8600560086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555034801561006e575f80fd5b506040516135bc3803806135bc8339818101604052810190610090919061029f565b61009f3361012660201b60201c565b8160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506102dd565b61013461020260201b60201c565b156101ac577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561016e57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506101ff565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f90565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102338261020a565b9050919050565b5f61024482610229565b9050919050565b6102548161023a565b811461025e575f80fd5b50565b5f8151905061026f8161024b565b92915050565b61027e81610229565b8114610288575f80fd5b50565b5f8151905061029981610275565b92915050565b5f80604083850312156102b5576102b4610206565b5b5f6102c285828601610261565b92505060206102d38582860161028b565b9150509250929050565b6132d2806102ea5f395ff3fe60806040526004361061014a575f3560e01c8063892b97f8116100b5578063d73792a91161006e578063d73792a9146103d0578063e21ff731146103fa578063eccc19a614610436578063f04e283e1461045e578063f2fde38b1461047a578063fee81cf4146104965761014a565b8063892b97f8146102e45780638da5cb5b1461030c5780638fe4f5231461033657806399d32fc414610352578063a92647dc1461037c578063b0e21e8a146103a65761014a565b806354d1f13d1161010757806354d1f13d146102365780635edb9eb014610240578063715018a61461026a578063730f9c57146102745780637b1039991461029057806384ae2bc6146102ba5761014a565b806313c8e2de1461014e578063256929621461018a5780632e75ab501461019457806339a51be5146101bc57806343bc42d3146101e657806346877b1a1461020e575b5f80fd5b348015610159575f80fd5b50610174600480360381019061016f9190612326565b6104d2565b6040516101819190612617565b60405180910390f35b6101926107ac565b005b34801561019f575f80fd5b506101ba60048036038101906101b59190612326565b6107fd565b005b3480156101c7575f80fd5b506101d061080f565b6040516101dd9190612646565b60405180910390f35b3480156101f1575f80fd5b5061020c60048036038101906102079190612689565b610834565b005b348015610219575f80fd5b50610234600480360381019061022f91906126de565b610867565b005b61023e6108b2565b005b34801561024b575f80fd5b506102546108eb565b6040516102619190612718565b60405180910390f35b6102726108f6565b005b61028e60048036038101906102899190612792565b610909565b005b34801561029b575f80fd5b506102a4610bee565b6040516102b19190612848565b60405180910390f35b3480156102c5575f80fd5b506102ce610c13565b6040516102db9190612870565b60405180910390f35b3480156102ef575f80fd5b5061030a60048036038101906103059190612689565b610c2d565b005b348015610317575f80fd5b50610320610c61565b60405161032d9190612646565b60405180910390f35b610350600480360381019061034b9190612889565b610c89565b005b34801561035d575f80fd5b50610366610c9e565b6040516103739190612718565b60405180910390f35b348015610387575f80fd5b50610390610ca4565b60405161039d919061292d565b60405180910390f35b3480156103b1575f80fd5b506103ba610cc9565b6040516103c79190612870565b60405180910390f35b3480156103db575f80fd5b506103e4610ce2565b6040516103f19190612870565b60405180910390f35b348015610405575f80fd5b50610420600480360381019061041b9190612946565b610ce8565b60405161042d9190612617565b60405180910390f35b348015610441575f80fd5b5061045c600480360381019061045791906126de565b6116a3565b005b610478600480360381019061047391906126de565b6116ee565b005b610494600480360381019061048f91906126de565b61172c565b005b3480156104a1575f80fd5b506104bc60048036038101906104b791906126de565b611755565b6040516104c99190612718565b60405180910390f35b6104da61217a565b5f82815481106104ed576104ec612991565b5b905f5260205f209060080201604051806101200160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600482018054806020026020016040519081016040528092919081815260200182805480156106da57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610691575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016005820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b5f6107b561176e565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b610805611778565b8060048190555050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61083c611778565b8060055f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b61086f611778565b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f8080549050905090565b6108fe611778565b6109075f6117af565b565b3068929eee149b4bd2126854036109275763ab143c065f526004601cfd5b3068929eee149b4bd21268555f80878154811061094757610946612991565b5b905f5260205f20906008020190506004543410156109a2575f346004546040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401610999939291906129be565b60405180910390fd5b6109ac8186611875565b806001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663703b690088888588886040518663ffffffff1660e01b8152600401610a10959493929190612a4d565b6020604051808303815f875af1158015610a2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a509190612ace565b610a86576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806004018681548110610a9c57610a9b612991565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb1757cf8386866040518463ffffffff1660e01b8152600401610b0093929190612af9565b6020604051808303815f875af1158015610b1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b409190612ace565b610b85578184846040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610b7c93929190612af9565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1686887f0f29bbf4ce25d2346bbeb8a898e24e5d6d7d1d19bb895e71faecac833b259547888888604051610bd193929190612af9565b60405180910390a4503868929eee149b4bd2126855505050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560089054906101000a900467ffffffffffffffff1681565b610c35611778565b80600560086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b610c97858585858533610909565b5050505050565b60045481565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055f9054906101000a900467ffffffffffffffff1681565b61271081565b610cf061217a565b335f73ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015610de4575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80826040518263ffffffff1660e01b8152600401610da39190612646565b602060405180830381865afa158015610dbe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de29190612ace565b155b15610e1b576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3068929eee149b4bd212685403610e395763ab143c065f526004601cfd5b3068929eee149b4bd21268555f610e9285858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050506119e3565b806020019051810190610ea59190612f89565b9050610eb3815f0151611a7c565b5f8060018160018154018082558091505003905f5260205f2090600802019050816101000151816007015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550815f0151816003015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160a0015160055f9054906101000a900467ffffffffffffffff16610f849190612ffd565b816005015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160c00151600560089054906101000a900467ffffffffffffffff16610fd39190612ffd565b8160050160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160e00151816006018190555061103a7fe67157950000000000000000000000000000000000000000000000000000000083602001516001611b57565b815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110aa7fe2089f790000000000000000000000000000000000000000000000000000000083606001516001611b57565b816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110fc8260800151835f0151611b79565b816004019080519060200190611113929190612240565b505f73ffffffffffffffffffffffffffffffffffffffff1682604001516020015173ffffffffffffffffffffffffffffffffffffffff16146111845761117f7f5912b89c0000000000000000000000000000000000000000000000000000000083604001516001611b57565b61126d565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f5912b89c000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016111ff9190613072565b602060405180830381865afa15801561121a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061123e9190612ace565b611248575f61126c565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b5b816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660015f80549050611332919061308b565b7f116812d3ad4507d72f2c428b63246d594ca055a1dc119394285504c23d1f34cd8460040180549050856001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876003015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516113d794939291906130be565b60405180910390a480604051806101200160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600482018054806020026020016040519081016040528092919081815260200182805480156115c157602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611578575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016005820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050935050503868929eee149b4bd21268555092915050565b6116ab611778565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6116f6611778565b63389a75e1600c52805f526020600c20805442111561171c57636f5e88185f526004601cfd5b5f815550611729816117af565b50565b611734611778565b8060601b61174957637448fbae5f526004601cfd5b611752816117af565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146117ad576382b429005f526004601cfd5b565b6117b7611f43565b1561181c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611872565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60045403156119df575f60045490505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461193b575f61271067ffffffffffffffff168460050160089054906101000a900467ffffffffffffffff1667ffffffffffffffff166004546118f69190613101565b611900919061316f565b9050808261190e919061308b565b9150611939818473ffffffffffffffffffffffffffffffffffffffff16611f4790919063ffffffff16565b505b61199360028261194b919061316f565b846007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611f4790919063ffffffff16565b6119dd4760035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611f4790919063ffffffff16565b505b5050565b6060815115611a775760405190506020810160048301805184518501811983525b80861015611a5d576001860195508551601f1a80611a4d576001870196508651601f1a5f198652607f8111611a3b57600181013887395b6001607f821601860195505050611a58565b808553600185019450505b611a04565b81835260208501840385525f845260208401604052505050505b919050565b611aa67fea5ad34e0000000000000000000000000000000000000000000000000000000082611f64565b8073ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80336040518263ffffffff1660e01b8152600401611adf9190612646565b602060405180830381865afa158015611afa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b1e9190612ace565b611b54576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b5f611b66848460200151611f64565b611b70838361205b565b90509392505050565b6060825167ffffffffffffffff811115611b9657611b95612b2d565b5b604051908082528060200260200182016040528015611bc45781602001602082028036833780820191505090505b5090505f5b8351811015611f3c57611c1a7f5970a68900000000000000000000000000000000000000000000000000000000858381518110611c0957611c08612991565b5b602002602001015160200151611f64565b838181518110611c2d57611c2c612991565b5b60200260200101515f0151611cb9577f5970a68900000000000000000000000000000000000000000000000000000000848281518110611c7057611c6f612991565b5b6020026020010151602001516040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401611cb092919061319f565b60405180910390fd5b611cfe7f5970a68900000000000000000000000000000000000000000000000000000000858381518110611cf057611cef612991565b5b60200260200101515f611b57565b828281518110611d1157611d10612991565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f828281518110611d5f57611d5e612991565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16634e7165a2868481518110611d9557611d94612991565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401611dbd9190613208565b5f60405180830381865afa158015611dd7573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190611dff9190613228565b90505f815114611e90578373ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1826040518263ffffffff1660e01b8152600401611e429190613208565b6020604051808303815f875af1158015611e5e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e829190612ace565b611e8f57611e8e61326f565b5b5b828281518110611ea357611ea2612991565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663439fab91868481518110611ed957611ed8612991565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401611f019190613208565b5f604051808303815f87803b158015611f18575f80fd5b505af1158015611f2a573d5f803e3d5ffd5b50505050508080600101915050611bc9565b5092915050565b5f90565b5f385f3884865af1611f605763b12d13eb5f526004601cfd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061201357508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a7836040518263ffffffff1660e01b8152600401611fd29190613072565b602060405180830381865afa158015611fed573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120119190612ace565b155b156120575781816040517fe1c4444800000000000000000000000000000000000000000000000000000000815260040161204e92919061319f565b60405180910390fd5b5050565b5f825f015161206e578260200151612092565b612091836020015173ffffffffffffffffffffffffffffffffffffffff16612117565b5b9050825f015180156120a15750815b15612111578073ffffffffffffffffffffffffffffffffffffffff1663439fab9184604001516040518263ffffffff1660e01b81526004016120e39190613208565b5f604051808303815f87803b1580156120fa575f80fd5b505af115801561210c573d5f803e3d5ffd5b505050505b92915050565b5f6121225f83612129565b9050919050565b5f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f09050806121705763301164255f526004601cfd5b5f60215292915050565b6040518061012001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f67ffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b828054828255905f5260205f209081019282156122b6579160200282015b828111156122b5578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019061225e565b5b5090506122c391906122c7565b5090565b5b808211156122de575f815f9055506001016122c8565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b612305816122f3565b811461230f575f80fd5b50565b5f81359050612320816122fc565b92915050565b5f6020828403121561233b5761233a6122eb565b5b5f61234884828501612312565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61239361238e61238984612351565b612370565b612351565b9050919050565b5f6123a482612379565b9050919050565b5f6123b58261239a565b9050919050565b6123c5816123ab565b82525050565b5f6123d58261239a565b9050919050565b6123e5816123cb565b82525050565b5f6123f58261239a565b9050919050565b612405816123eb565b82525050565b5f61241582612379565b9050919050565b5f6124268261240b565b9050919050565b6124368161241c565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f61246f8261239a565b9050919050565b61247f81612465565b82525050565b5f6124908383612476565b60208301905092915050565b5f602082019050919050565b5f6124b28261243c565b6124bc8185612446565b93506124c783612456565b805f5b838110156124f75781516124de8882612485565b97506124e98361249c565b9250506001810190506124ca565b5085935050505092915050565b5f67ffffffffffffffff82169050919050565b61252081612504565b82525050565b61252f816122f3565b82525050565b5f61253f82612351565b9050919050565b61254f81612535565b82525050565b5f61012083015f83015161256b5f8601826123bc565b50602083015161257e60208601826123dc565b50604083015161259160408601826123fc565b5060608301516125a4606086018261242d565b50608083015184820360808601526125bc82826124a8565b91505060a08301516125d160a0860182612517565b5060c08301516125e460c0860182612517565b5060e08301516125f760e0860182612526565b5061010083015161260c610100860182612546565b508091505092915050565b5f6020820190508181035f83015261262f8184612555565b905092915050565b61264081612535565b82525050565b5f6020820190506126595f830184612637565b92915050565b61266881612504565b8114612672575f80fd5b50565b5f813590506126838161265f565b92915050565b5f6020828403121561269e5761269d6122eb565b5b5f6126ab84828501612675565b91505092915050565b6126bd81612535565b81146126c7575f80fd5b50565b5f813590506126d8816126b4565b92915050565b5f602082840312156126f3576126f26122eb565b5b5f612700848285016126ca565b91505092915050565b612712816122f3565b82525050565b5f60208201905061272b5f830184612709565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261275257612751612731565b5b8235905067ffffffffffffffff81111561276f5761276e612735565b5b60208301915083600182028301111561278b5761278a612739565b5b9250929050565b5f805f805f8060a087890312156127ac576127ab6122eb565b5b5f6127b989828a01612312565b96505060206127ca89828a01612312565b95505060406127db89828a016126ca565b945050606087013567ffffffffffffffff8111156127fc576127fb6122ef565b5b61280889828a0161273d565b9350935050608061281b89828a016126ca565b9150509295509295509295565b5f6128328261239a565b9050919050565b61284281612828565b82525050565b5f60208201905061285b5f830184612839565b92915050565b61286a81612504565b82525050565b5f6020820190506128835f830184612861565b92915050565b5f805f805f608086880312156128a2576128a16122eb565b5b5f6128af88828901612312565b95505060206128c088828901612312565b94505060406128d1888289016126ca565b935050606086013567ffffffffffffffff8111156128f2576128f16122ef565b5b6128fe8882890161273d565b92509250509295509295909350565b5f6129178261239a565b9050919050565b6129278161290d565b82525050565b5f6020820190506129405f83018461291e565b92915050565b5f806020838503121561295c5761295b6122eb565b5b5f83013567ffffffffffffffff811115612979576129786122ef565b5b6129858582860161273d565b92509250509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6060820190506129d15f830186612637565b6129de6020830185612709565b6129eb6040830184612709565b949350505050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f612a2c83856129f3565b9350612a39838584612a03565b612a4283612a11565b840190509392505050565b5f608082019050612a605f830188612709565b612a6d6020830187612709565b612a7a6040830186612637565b8181036060830152612a8d818486612a21565b90509695505050505050565b5f8115159050919050565b612aad81612a99565b8114612ab7575f80fd5b50565b5f81519050612ac881612aa4565b92915050565b5f60208284031215612ae357612ae26122eb565b5b5f612af084828501612aba565b91505092915050565b5f604082019050612b0c5f830186612637565b8181036020830152612b1f818486612a21565b9050949350505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612b6382612a11565b810181811067ffffffffffffffff82111715612b8257612b81612b2d565b5b80604052505050565b5f612b946122e2565b9050612ba08282612b5a565b919050565b5f80fd5b5f612bb382612351565b9050919050565b5f612bc482612ba9565b9050919050565b612bd481612bba565b8114612bde575f80fd5b50565b5f81519050612bef81612bcb565b92915050565b5f81519050612c03816126b4565b92915050565b5f80fd5b5f67ffffffffffffffff821115612c2757612c26612b2d565b5b612c3082612a11565b9050602081019050919050565b8281835e5f83830152505050565b5f612c5d612c5884612c0d565b612b8b565b905082815260208101848484011115612c7957612c78612c09565b5b612c84848285612c3d565b509392505050565b5f82601f830112612ca057612c9f612731565b5b8151612cb0848260208601612c4b565b91505092915050565b5f60608284031215612cce57612ccd612b29565b5b612cd86060612b8b565b90505f612ce784828501612aba565b5f830152506020612cfa84828501612bf5565b602083015250604082015167ffffffffffffffff811115612d1e57612d1d612ba5565b5b612d2a84828501612c8c565b60408301525092915050565b5f67ffffffffffffffff821115612d5057612d4f612b2d565b5b602082029050602081019050919050565b5f612d73612d6e84612d36565b612b8b565b90508083825260208201905060208402830185811115612d9657612d95612739565b5b835b81811015612ddd57805167ffffffffffffffff811115612dbb57612dba612731565b5b808601612dc88982612cb9565b85526020850194505050602081019050612d98565b5050509392505050565b5f82601f830112612dfb57612dfa612731565b5b8151612e0b848260208601612d61565b91505092915050565b5f81519050612e228161265f565b92915050565b5f81519050612e36816122fc565b92915050565b5f6101208284031215612e5257612e51612b29565b5b612e5d610120612b8b565b90505f612e6c84828501612be1565b5f83015250602082015167ffffffffffffffff811115612e8f57612e8e612ba5565b5b612e9b84828501612cb9565b602083015250604082015167ffffffffffffffff811115612ebf57612ebe612ba5565b5b612ecb84828501612cb9565b604083015250606082015167ffffffffffffffff811115612eef57612eee612ba5565b5b612efb84828501612cb9565b606083015250608082015167ffffffffffffffff811115612f1f57612f1e612ba5565b5b612f2b84828501612de7565b60808301525060a0612f3f84828501612e14565b60a08301525060c0612f5384828501612e14565b60c08301525060e0612f6784828501612e28565b60e083015250610100612f7c84828501612bf5565b6101008301525092915050565b5f60208284031215612f9e57612f9d6122eb565b5b5f82015167ffffffffffffffff811115612fbb57612fba6122ef565b5b612fc784828501612e3c565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61300782612504565b915061301283612504565b9250828201905067ffffffffffffffff81111561303257613031612fd0565b5b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61306c81613038565b82525050565b5f6020820190506130855f830184613063565b92915050565b5f613095826122f3565b91506130a0836122f3565b92508282039050818111156130b8576130b7612fd0565b5b92915050565b5f6080820190506130d15f830187612709565b6130de6020830186612637565b6130eb6040830185612637565b6130f86060830184612637565b95945050505050565b5f61310b826122f3565b9150613116836122f3565b9250828202613124816122f3565b9150828204841483151761313b5761313a612fd0565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613179826122f3565b9150613184836122f3565b92508261319457613193613142565b5b828204905092915050565b5f6040820190506131b25f830185613063565b6131bf6020830184612637565b9392505050565b5f81519050919050565b5f6131da826131c6565b6131e481856129f3565b93506131f4818560208601612c3d565b6131fd81612a11565b840191505092915050565b5f6020820190508181035f83015261322081846131d0565b905092915050565b5f6020828403121561323d5761323c6122eb565b5b5f82015167ffffffffffffffff81111561325a576132596122ef565b5b61326684828501612c8c565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffdfea2646970667358221220a6183c86da5ac2a94caf1c18f200fbe18347be3f177f19dba5d5253c314dcfe064736f6c634300081a0033";function p(a){const e=a.state.current,f=a.state.connections.get(e),b=f==null?void 0:f.accounts,t=b==null?void 0:b[0],c=a.chains.find(i=>i.id===(f==null?void 0:f.chainId)),s=a.state.status;switch(s){case"connected":return{address:t,addresses:b,chain:c,chainId:f==null?void 0:f.chainId,connector:f==null?void 0:f.connector,isConnected:!0,isConnecting:!1,isDisconnected:!1,isReconnecting:!1,status:s};case"reconnecting":return{address:t,addresses:b,chain:c,chainId:f==null?void 0:f.chainId,connector:f==null?void 0:f.connector,isConnected:!!t,isConnecting:!1,isDisconnected:!1,isReconnecting:!0,status:s};case"connecting":return{address:t,addresses:b,chain:c,chainId:f==null?void 0:f.chainId,connector:f==null?void 0:f.connector,isConnected:!1,isConnecting:!0,isDisconnected:!1,isReconnecting:!1,status:s};case"disconnected":return{address:void 0,addresses:void 0,chain:void 0,chainId:void 0,connector:void 0,isConnected:!1,isConnecting:!1,isDisconnected:!0,isReconnecting:!1,status:s}}}function Cf(a){return a.state.chainId}function Q(a,e,f){const b=a[e.name];if(typeof b=="function")return b;const t=a[f];return typeof t=="function"?t:c=>e(a,c)}const yf="2.13.0",If=()=>`@wagmi/core@${yf}`;var J=function(a,e,f,b){if(f==="a"&&!b)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?a!==e||!b:!e.has(a))throw new TypeError("Cannot read private member from an object whose class did not declare it");return f==="m"?b:f==="a"?b.call(a):b?b.value:e.get(a)},q,K;class I extends Error{get docsBaseUrl(){return"https://wagmi.sh/core"}get version(){return If()}constructor(e,f={}){var c;super(),q.add(this),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"WagmiCoreError"});const b=f.cause instanceof I?f.cause.details:(c=f.cause)!=null&&c.message?f.cause.message:f.details,t=f.cause instanceof I&&f.cause.docsPath||f.docsPath;this.message=[e||"An error occurred.","",...f.metaMessages?[...f.metaMessages,""]:[],...t?[`Docs: ${this.docsBaseUrl}${t}.html${f.docsSlug?`#${f.docsSlug}`:""}`]:[],...b?[`Details: ${b}`]:[],`Version: ${this.version}`].join(`
|
|
2
|
-
`),f.cause&&(this.cause=f.cause),this.details=b,this.docsPath=t,this.metaMessages=f.metaMessages,this.shortMessage=e}walk(e){return J(this,q,"m",K).call(this,this,e)}}q=new WeakSet,K=function a(e,f){return f!=null&&f(e)?e:e.cause?J(this,q,"m",a).call(this,e.cause,f):e};class vf extends I{constructor(){super("Connector not connected."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorNotConnectedError"})}}class Bf extends I{constructor({address:e,connector:f}){super(`Account "${e}" not found for connector "${f.name}".`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorAccountNotFoundError"})}}class _f extends I{constructor({connectionChainId:e,connectorChainId:f}){super(`The current chain of the connector (id: ${f}) does not match the connection's chain (id: ${e}).`,{metaMessages:[`Current Chain ID: ${f}`,`Expected Chain ID: ${e}`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorChainMismatchError"})}}async function X(a,e={}){let f;if(e.connector){const{connector:n}=e,[u,g]=await Promise.all([n.getAccounts(),n.getChainId()]);f={accounts:u,chainId:g,connector:n}}else f=a.state.connections.get(a.state.current);if(!f)throw new vf;const b=e.chainId??f.chainId,t=await f.connector.getChainId();if(t!==f.chainId)throw new _f({connectionChainId:f.chainId,connectorChainId:t});const c=f.connector;if(c.getClient)return c.getClient({chainId:b});const s=G.parseAccount(e.account??f.accounts[0]);s.address=G.getAddress(s.address);const i=a.chains.find(n=>n.id===b),r=await f.connector.getProvider({chainId:b});if(e.account&&!f.accounts.some(n=>n.toLowerCase()===s.address.toLowerCase()))throw new Bf({address:s.address,connector:c});return d.createClient({account:s,chain:i,name:"Connector Client",transport:n=>d.custom(r)({...n,retryCount:0})})}async function Pf(a,e){const{abi:f,chainId:b,connector:t,...c}=e;let s;e.account?s=e.account:s=(await X(a,{chainId:b,connector:t})).account;const i=a.getClient({chainId:b}),r=Q(i,k.simulateContract,"simulateContract"),{result:n,request:u}=await r({...c,abi:f,account:s});return{chainId:i.chain.id,result:n,request:{__mode:"prepared",...u,chainId:b}}}async function U(a,e){const{account:f,chainId:b,connector:t,__mode:c,...s}=e;let i;typeof f=="object"&&f.type==="local"?i=a.getClient({chainId:b}):i=await X(a,{account:f,chainId:b,connector:t});const{connector:r}=p(a);let n;if(c==="prepared"||r!=null&&r.supportsSimulation)n=s;else{const{request:C}=await Pf(a,{...s,account:f,chainId:b});n=C}return await Q(i,k.writeContract,"writeContract")({...n,...f?{account:f}:{},chain:b?{id:b}:null})}function Ef(a){return a.address!==void 0&&typeof a.address=="object"?(e,f)=>{var s;const b=Cf(e),t=p(e);let c;return f.chainId?c=f.chainId:f.account&&f.account===t.address||f.account===void 0?c=t.chainId:c=b,U(e,{...f,...a.functionName?{functionName:a.functionName}:{},address:c?(s=a.address)==null?void 0:s[c]:void 0,abi:a.abi})}:(e,f)=>U(e,{...f,...a.address?{address:a.address}:{},...a.functionName?{functionName:a.functionName}:{},abi:a.abi})}const Rf=d.parseEther("0.000075"),qf=W.BoostCore[11155111],V={...W.BoostCore,31337:"0x0561e8fB1EFD614eb905CB93D548Bb217Ad07B92"};function Ff(a){return a.address}function Df(a){return a.registryAddress&&a.protocolFeeReceiver}const H=class H extends of.Deployable{get addresses(){return this.constructor.addresses}constructor({config:e,account:f,...b}){if(Ff(b)&&b.address)super({account:f,config:e},b.address);else if(Df(b))super({account:f,config:e},[b.registryAddress,b.protocolFeeReceiver]);else{const{address:t}=h.assertValidAddressByChainId(e,V);super({account:f,config:e},t)}this.abi=o.d}async createBoost(e,f){var N,x;const[b,t]=this.validateDeploymentConfig(e,f),c=((N=f==null?void 0:f.chain)==null?void 0:N.id)||(f==null?void 0:f.chainId),{chainId:s,address:i}=h.assertValidAddressByChainId(t.config,this.addresses,c);let{budget:r,action:n,validator:u,allowList:g,incentives:C,protocolFee:F=0n,referralFee:D=0n,maxParticipants:S=0n,owner:y}=b;const Y=Ef({abi:o.d,functionName:"createBoost",address:i});if(!y&&(y=((x=this._account)==null?void 0:x.address)||$.getAccount(t.config).address||d.zeroAddress,y===d.zeroAddress))throw new v.DeployableUnknownOwnerProvidedError;let M=d.zeroAddress;if(r.address){if(M=r.address,!await r.isAuthorized(i))throw new v.BudgetMustAuthorizeBoostCore(i)}else throw new v.MustInitializeBudgetError;let B={instance:d.zeroAddress,isBase:!0,parameters:d.zeroHash};if(n.address){const l=n.isBase;B={isBase:l,instance:n.address,parameters:l&&n.buildParameters(void 0,t).args.at(0)||d.zeroHash}}else B.parameters=n.buildParameters(void 0,t).args.at(0)||d.zeroHash,B.instance=h.assertValidAddressByChainId(t.config,n.bases,s).address;let _={instance:d.zeroAddress,isBase:!0,parameters:d.zeroHash};if(u.address){const l=u.isBase;_={isBase:l,instance:u.address,parameters:l&&u.buildParameters({signers:[y],validatorCaller:i},t).args.at(0)||d.zeroHash}}else _.parameters=u.buildParameters({signers:[y],validatorCaller:i},t).args.at(0)||d.zeroHash,_.instance=h.assertValidAddressByChainId(t.config,u.bases,s).address;let P={instance:d.zeroAddress,isBase:!0,parameters:d.zeroHash};if(g.address){const l=g.isBase;P={isBase:l,instance:g.address,parameters:d.zeroHash}}else P.parameters=g.buildParameters(void 0,t).args.at(0)||d.zeroHash,P.instance=h.assertValidAddressByChainId(t.config,g.bases,s).address;const E=C.map(()=>({instance:d.zeroAddress,isBase:!0,parameters:d.zeroHash}));for(let l=0;l<C.length;l++){const A=C.at(l);if(A.address){const m=A.isBase;if(!m)throw new v.IncentiveNotCloneableError(A);E[l]={isBase:m,instance:A.address,parameters:m&&A.buildParameters(void 0,t).args.at(0)||d.zeroHash}}else E[l].parameters=A.buildParameters(void 0,t).args.at(0)||d.zeroHash,E[l].instance=h.assertValidAddressByChainId(t.config,A.bases,s).address}const Z={budget:M,action:B,validator:_,allowList:P,incentives:E,protocolFee:F,referralFee:D,maxParticipants:S,owner:y},ff=await Y(t.config,{...this.optionallyAttachAccount(t.account),...f,chainId:s,args:[z.prepareBoostPayload(Z)]}),ef=await $.waitForTransactionReceipt(t.config,{hash:ff}),R=d.parseEventLogs({abi:o.d,eventName:"BoostCreated",logs:ef.logs}).at(0);let O=0n;if(!R)throw new v.BoostCoreNoIdentifierEmitted;O=R==null?void 0:R.args.boostIndex;const w=await this.readBoost(O);return new z.Boost({id:O,budget:r.at(w.budget),action:n.at(w.action),validator:u.at(w.validator),allowList:g.at(w.allowList),incentives:C.map((l,A)=>l.at(w.incentives.at(A))),protocolFee:w.protocolFee,referralFee:w.referralFee,maxParticipants:w.maxParticipants,owner:w.owner})}async claimIncentive(e,f,b,t,c){return await this.awaitResult(this.claimIncentiveRaw(e,f,b,t,c))}async claimIncentiveRaw(e,f,b,t,c){var n;const{request:s,result:i}=await o.Wl(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,((n=c==null?void 0:c.chain)==null?void 0:n.id)||(c==null?void 0:c.chainId)),args:[e,f,b,t],...this.optionallyAttachAccount(),...c});return{hash:await o.Hl(this._config,s),result:i}}async claimIncentiveFor(e,f,b,t,c,s){return await this.awaitResult(this.claimIncentiveForRaw(e,f,b,t,c,s))}async claimIncentiveForRaw(e,f,b,t,c,s){var u;const{request:i,result:r}=await o.Ql(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,((u=s==null?void 0:s.chain)==null?void 0:u.id)||(s==null?void 0:s.chainId)),args:[e,f,b,t,c],...this.optionallyAttachAccount(),...s});return{hash:await o.Vl(this._config,i),result:r}}async readBoost(e,f){return await o.gl(this._config,{address:this.assertValidAddress(),args:[e],...this.optionallyAttachAccount(),...f})}async getBoost(e,f){let b;typeof e=="string"?b=BigInt(e):b=e;const{protocolFee:t,referralFee:c,maxParticipants:s,owner:i,...r}=await this.readBoost(b,f),n={config:this._config,account:this._account},[u,g,C,F,D]=await Promise.all([bf.actionFromAddress(n,r.action),nf.budgetFromAddress(n,r.budget),wf.validatorFromAddress(n,r.validator),j.allowListFromAddress(n,r.allowList),Promise.all(r.incentives.map(S=>T.incentiveFromAddress(n,S)))]);return new z.Boost({id:b,action:u,budget:g,validator:C,allowList:F,incentives:D,protocolFee:t,referralFee:c,maxParticipants:s,owner:i})}async getBoostCount(e){return await o.Ml(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[],...this.optionallyAttachAccount(),...e})}async isAuthorized(e,f){const b=await this.createBoostAuth(f);return o.uv(this._config,{address:b,args:[e],...this.optionallyAttachAccount(),...f})}async createBoostAuth(e){return await o.hl(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[],...this.optionallyAttachAccount(),...e})}async setCreateBoostAuth(e,f){return await this.awaitResult(this.setCreateBoostAuthRaw(e.assertValidAddress(),{...f}))}async setCreateBoostAuthRaw(e,f){const{request:b,result:t}=await o.ty(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[e],...this.optionallyAttachAccount(),...f});return{hash:await o.Pl(this._config,b),result:t}}async protocolFee(e){return await o.El(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[],...this.optionallyAttachAccount(),...e})}async protocolFeeReceiver(e){return await o.Rl(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[],...this.optionallyAttachAccount(),...e})}async setProcolFeeReceiver(e,f){return await this.awaitResult(this.setProcolFeeReceiverRaw(e,{...f}))}async setProcolFeeReceiverRaw(e,f){const{request:b,result:t}=await o.ay(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[e],...this.optionallyAttachAccount(),...f});return{hash:await o.Ul(this._config,b),result:t}}async claimFee(e){return await o.Nl(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[],...this.optionallyAttachAccount(),...e})}async setClaimFee(e,f){return await this.awaitResult(this.setClaimFeeRaw(e,f))}async setClaimFeeRaw(e,f){const{request:b,result:t}=await o.ey(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[e],...this.optionallyAttachAccount(),...f});return{hash:await o.Dl(this._config,b),result:t}}PassthroughAuth(e){return new sf.PassthroughAuth({config:this._config,account:this._account},e)}EventAction(e,f){return new tf.EventAction({config:this._config,account:this._account},e,f)}OpenAllowList(e){return new j.OpenAllowList({config:this._config,account:this._account},void 0,e)}SimpleAllowList(e,f){return new af.SimpleAllowList({config:this._config,account:this._account},e,f)}SimpleDenyList(e,f){return new cf.SimpleDenyList({config:this._config,account:this._account},e,f)}ManagedBudget(e){return new df.ManagedBudget({config:this._config,account:this._account},e)}AllowListIncentive(e){return new rf.AllowListIncentive({config:this._config,account:this._account},e)}CGDAIncentive(e){return new uf.CGDAIncentive({config:this._config,account:this._account},e)}ERC20Incentive(e){return new lf.ERC20Incentive({config:this._config,account:this._account},e)}PointsIncentive(e){return new hf.PointsIncentive({config:this._config,account:this._account},e)}SignerValidator(e,f){return new gf.SignerValidator({config:this._config,account:this._account},e,f)}ERC20VariableIncentive(e,f){return new T.ERC20VariableIncentive({config:this._config,account:this._account},e,f)}buildParameters(e,f){const[b,t]=this.validateDeploymentConfig(e,f);return{abi:o.d,bytecode:Af,args:b,...this.optionallyAttachAccount(t.account)}}};H.addresses=V;let L=H;exports.boostCoreAbi=o.d;exports.BOOST_CORE_ADDRESS=qf;exports.BOOST_CORE_ADDRESSES=V;exports.BOOST_CORE_CLAIM_FEE=Rf;exports.BoostCore=L;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./generated-BLg7yPgI.cjs"),x=require("@wagmi/core"),d=require("viem"),U=require("./deployments-Ho4PnGCS.cjs"),tf=require("./Actions/Action.cjs"),af=require("./Actions/EventAction.cjs"),N=require("./AllowLists/AllowList.cjs"),bf=require("./AllowLists/SimpleAllowList.cjs"),cf=require("./SimpleDenyList-9UIxZZKP.cjs"),sf=require("./Auth/PassthroughAuth.cjs"),z=require("./Boost.cjs"),nf=require("./Budgets/Budget.cjs"),df=require("./Budgets/ManagedBudget.cjs"),of=require("./Deployable/Deployable.cjs"),rf=require("./Incentives/AllowListIncentive.cjs"),uf=require("./Incentives/CGDAIncentive.cjs"),lf=require("./Incentives/ERC20Incentive.cjs"),T=require("./Incentive-CqX3fYEd.cjs"),hf=require("./Incentives/PointsIncentive.cjs"),gf=require("./Validators/SignerValidator.cjs"),wf=require("./Validators/Validator.cjs"),I=require("./errors.cjs"),h=require("./utils.cjs"),k=require("viem/actions"),p=require("viem/utils"),yf="0x60806040526544364c5bb0006004556103e860055f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506103e8600560086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555034801561006e575f80fd5b506040516136713803806136718339818101604052810190610090919061029f565b61009f3361012660201b60201c565b8160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506102dd565b61013461020260201b60201c565b156101ac577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561016e57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506101ff565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f90565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102338261020a565b9050919050565b5f61024482610229565b9050919050565b6102548161023a565b811461025e575f80fd5b50565b5f8151905061026f8161024b565b92915050565b61027e81610229565b8114610288575f80fd5b50565b5f8151905061029981610275565b92915050565b5f80604083850312156102b5576102b4610206565b5b5f6102c285828601610261565b92505060206102d38582860161028b565b9150509250929050565b613387806102ea5f395ff3fe60806040526004361061014a575f3560e01c8063892b97f8116100b5578063d73792a91161006e578063d73792a9146103d0578063e21ff731146103fa578063eccc19a614610436578063f04e283e1461045e578063f2fde38b1461047a578063fee81cf4146104965761014a565b8063892b97f8146102e45780638da5cb5b1461030c5780638fe4f5231461033657806399d32fc414610352578063a92647dc1461037c578063b0e21e8a146103a65761014a565b806354d1f13d1161010757806354d1f13d146102365780635edb9eb014610240578063715018a61461026a578063730f9c57146102745780637b1039991461029057806384ae2bc6146102ba5761014a565b806313c8e2de1461014e578063256929621461018a5780632e75ab501461019457806339a51be5146101bc57806343bc42d3146101e657806346877b1a1461020e575b5f80fd5b348015610159575f80fd5b50610174600480360381019061016f91906123db565b6104d2565b60405161018191906126cc565b60405180910390f35b6101926107ac565b005b34801561019f575f80fd5b506101ba60048036038101906101b591906123db565b6107fd565b005b3480156101c7575f80fd5b506101d061080f565b6040516101dd91906126fb565b60405180910390f35b3480156101f1575f80fd5b5061020c6004803603810190610207919061273e565b610834565b005b348015610219575f80fd5b50610234600480360381019061022f9190612793565b610867565b005b61023e6108b2565b005b34801561024b575f80fd5b506102546108eb565b60405161026191906127cd565b60405180910390f35b6102726108f6565b005b61028e60048036038101906102899190612847565b610909565b005b34801561029b575f80fd5b506102a4610bee565b6040516102b191906128fd565b60405180910390f35b3480156102c5575f80fd5b506102ce610c13565b6040516102db9190612925565b60405180910390f35b3480156102ef575f80fd5b5061030a6004803603810190610305919061273e565b610c2d565b005b348015610317575f80fd5b50610320610c61565b60405161032d91906126fb565b60405180910390f35b610350600480360381019061034b919061293e565b610c89565b005b34801561035d575f80fd5b50610366610c9e565b60405161037391906127cd565b60405180910390f35b348015610387575f80fd5b50610390610ca4565b60405161039d91906129e2565b60405180910390f35b3480156103b1575f80fd5b506103ba610cc9565b6040516103c79190612925565b60405180910390f35b3480156103db575f80fd5b506103e4610ce2565b6040516103f19190612925565b60405180910390f35b348015610405575f80fd5b50610420600480360381019061041b91906129fb565b610ce8565b60405161042d91906126cc565b60405180910390f35b348015610441575f80fd5b5061045c60048036038101906104579190612793565b611758565b005b61047860048036038101906104739190612793565b6117a3565b005b610494600480360381019061048f9190612793565b6117e1565b005b3480156104a1575f80fd5b506104bc60048036038101906104b79190612793565b61180a565b6040516104c991906127cd565b60405180910390f35b6104da61222f565b5f82815481106104ed576104ec612a46565b5b905f5260205f209060080201604051806101200160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600482018054806020026020016040519081016040528092919081815260200182805480156106da57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610691575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016005820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b5f6107b5611823565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b61080561182d565b8060048190555050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61083c61182d565b8060055f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b61086f61182d565b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f8080549050905090565b6108fe61182d565b6109075f611864565b565b3068929eee149b4bd2126854036109275763ab143c065f526004601cfd5b3068929eee149b4bd21268555f80878154811061094757610946612a46565b5b905f5260205f20906008020190506004543410156109a2575f346004546040517f5c54305e00000000000000000000000000000000000000000000000000000000815260040161099993929190612a73565b60405180910390fd5b6109ac818661192a565b806001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663703b690088888588886040518663ffffffff1660e01b8152600401610a10959493929190612b02565b6020604051808303815f875af1158015610a2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a509190612b83565b610a86576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806004018681548110610a9c57610a9b612a46565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb1757cf8386866040518463ffffffff1660e01b8152600401610b0093929190612bae565b6020604051808303815f875af1158015610b1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b409190612b83565b610b85578184846040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610b7c93929190612bae565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1686887f0f29bbf4ce25d2346bbeb8a898e24e5d6d7d1d19bb895e71faecac833b259547888888604051610bd193929190612bae565b60405180910390a4503868929eee149b4bd2126855505050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560089054906101000a900467ffffffffffffffff1681565b610c3561182d565b80600560086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b610c97858585858533610909565b5050505050565b60045481565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055f9054906101000a900467ffffffffffffffff1681565b61271081565b610cf061222f565b335f73ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015610de4575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80826040518263ffffffff1660e01b8152600401610da391906126fb565b602060405180830381865afa158015610dbe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de29190612b83565b155b15610e1b576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3068929eee149b4bd212685403610e395763ab143c065f526004601cfd5b3068929eee149b4bd21268555f610e9285858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050611a98565b806020019051810190610ea5919061303e565b9050610eb3815f0151611b31565b5f8060018160018154018082558091505003905f5260205f2090600802019050816101000151816007015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550815f0151816003015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160a0015160055f9054906101000a900467ffffffffffffffff16610f8491906130b2565b816005015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160c00151600560089054906101000a900467ffffffffffffffff16610fd391906130b2565b8160050160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160e00151816006018190555061103a7fe67157950000000000000000000000000000000000000000000000000000000083602001516001611c0c565b815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110aa7fe2089f790000000000000000000000000000000000000000000000000000000083606001516001611c0c565b816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110fc8260800151835f0151611c2e565b8160040190805190602001906111139291906122f5565b505f73ffffffffffffffffffffffffffffffffffffffff1682604001516020015173ffffffffffffffffffffffffffffffffffffffff16146111845761117f7f5912b89c0000000000000000000000000000000000000000000000000000000083604001516001611c0c565b61126d565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f5912b89c000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016111ff9190613127565b602060405180830381865afa15801561121a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061123e9190612b83565b611248575f61126c565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b5b816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff16816001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611363577f5912b89c000000000000000000000000000000000000000000000000000000005f6040517fe1c4444800000000000000000000000000000000000000000000000000000000815260040161135a929190613140565b60405180910390fd5b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660015f805490506113e79190613167565b7f116812d3ad4507d72f2c428b63246d594ca055a1dc119394285504c23d1f34cd8460040180549050856001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876003015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161148c949392919061319a565b60405180910390a480604051806101200160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561167657602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161162d575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016005820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050935050503868929eee149b4bd21268555092915050565b61176061182d565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6117ab61182d565b63389a75e1600c52805f526020600c2080544211156117d157636f5e88185f526004601cfd5b5f8155506117de81611864565b50565b6117e961182d565b8060601b6117fe57637448fbae5f526004601cfd5b61180781611864565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611862576382b429005f526004601cfd5b565b61186c611ff8565b156118d1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611927565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f6004540315611a94575f60045490505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146119f0575f61271067ffffffffffffffff168460050160089054906101000a900467ffffffffffffffff1667ffffffffffffffff166004546119ab91906131dd565b6119b5919061324b565b905080826119c39190613167565b91506119ee818473ffffffffffffffffffffffffffffffffffffffff16611ffc90919063ffffffff16565b505b611a48600282611a00919061324b565b846007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611ffc90919063ffffffff16565b611a924760035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611ffc90919063ffffffff16565b505b5050565b6060815115611b2c5760405190506020810160048301805184518501811983525b80861015611b12576001860195508551601f1a80611b02576001870196508651601f1a5f198652607f8111611af057600181013887395b6001607f821601860195505050611b0d565b808553600185019450505b611ab9565b81835260208501840385525f845260208401604052505050505b919050565b611b5b7fea5ad34e0000000000000000000000000000000000000000000000000000000082612019565b8073ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80336040518263ffffffff1660e01b8152600401611b9491906126fb565b602060405180830381865afa158015611baf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bd39190612b83565b611c09576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b5f611c1b848460200151612019565b611c258383612110565b90509392505050565b6060825167ffffffffffffffff811115611c4b57611c4a612be2565b5b604051908082528060200260200182016040528015611c795781602001602082028036833780820191505090505b5090505f5b8351811015611ff157611ccf7f5970a68900000000000000000000000000000000000000000000000000000000858381518110611cbe57611cbd612a46565b5b602002602001015160200151612019565b838181518110611ce257611ce1612a46565b5b60200260200101515f0151611d6e577f5970a68900000000000000000000000000000000000000000000000000000000848281518110611d2557611d24612a46565b5b6020026020010151602001516040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401611d65929190613140565b60405180910390fd5b611db37f5970a68900000000000000000000000000000000000000000000000000000000858381518110611da557611da4612a46565b5b60200260200101515f611c0c565b828281518110611dc657611dc5612a46565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f828281518110611e1457611e13612a46565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16634e7165a2868481518110611e4a57611e49612a46565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401611e7291906132bd565b5f60405180830381865afa158015611e8c573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190611eb491906132dd565b90505f815114611f45578373ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1826040518263ffffffff1660e01b8152600401611ef791906132bd565b6020604051808303815f875af1158015611f13573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f379190612b83565b611f4457611f43613324565b5b5b828281518110611f5857611f57612a46565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663439fab91868481518110611f8e57611f8d612a46565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401611fb691906132bd565b5f604051808303815f87803b158015611fcd575f80fd5b505af1158015611fdf573d5f803e3d5ffd5b50505050508080600101915050611c7e565b5092915050565b5f90565b5f385f3884865af16120155763b12d13eb5f526004601cfd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806120c857508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a7836040518263ffffffff1660e01b81526004016120879190613127565b602060405180830381865afa1580156120a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120c69190612b83565b155b1561210c5781816040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401612103929190613140565b60405180910390fd5b5050565b5f825f0151612123578260200151612147565b612146836020015173ffffffffffffffffffffffffffffffffffffffff166121cc565b5b9050825f015180156121565750815b156121c6578073ffffffffffffffffffffffffffffffffffffffff1663439fab9184604001516040518263ffffffff1660e01b815260040161219891906132bd565b5f604051808303815f87803b1580156121af575f80fd5b505af11580156121c1573d5f803e3d5ffd5b505050505b92915050565b5f6121d75f836121de565b9050919050565b5f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f09050806122255763301164255f526004601cfd5b5f60215292915050565b6040518061012001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f67ffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b828054828255905f5260205f2090810192821561236b579160200282015b8281111561236a578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190612313565b5b509050612378919061237c565b5090565b5b80821115612393575f815f90555060010161237d565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b6123ba816123a8565b81146123c4575f80fd5b50565b5f813590506123d5816123b1565b92915050565b5f602082840312156123f0576123ef6123a0565b5b5f6123fd848285016123c7565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61244861244361243e84612406565b612425565b612406565b9050919050565b5f6124598261242e565b9050919050565b5f61246a8261244f565b9050919050565b61247a81612460565b82525050565b5f61248a8261244f565b9050919050565b61249a81612480565b82525050565b5f6124aa8261244f565b9050919050565b6124ba816124a0565b82525050565b5f6124ca8261242e565b9050919050565b5f6124db826124c0565b9050919050565b6124eb816124d1565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f6125248261244f565b9050919050565b6125348161251a565b82525050565b5f612545838361252b565b60208301905092915050565b5f602082019050919050565b5f612567826124f1565b61257181856124fb565b935061257c8361250b565b805f5b838110156125ac578151612593888261253a565b975061259e83612551565b92505060018101905061257f565b5085935050505092915050565b5f67ffffffffffffffff82169050919050565b6125d5816125b9565b82525050565b6125e4816123a8565b82525050565b5f6125f482612406565b9050919050565b612604816125ea565b82525050565b5f61012083015f8301516126205f860182612471565b5060208301516126336020860182612491565b50604083015161264660408601826124b1565b50606083015161265960608601826124e2565b5060808301518482036080860152612671828261255d565b91505060a083015161268660a08601826125cc565b5060c083015161269960c08601826125cc565b5060e08301516126ac60e08601826125db565b506101008301516126c16101008601826125fb565b508091505092915050565b5f6020820190508181035f8301526126e4818461260a565b905092915050565b6126f5816125ea565b82525050565b5f60208201905061270e5f8301846126ec565b92915050565b61271d816125b9565b8114612727575f80fd5b50565b5f8135905061273881612714565b92915050565b5f60208284031215612753576127526123a0565b5b5f6127608482850161272a565b91505092915050565b612772816125ea565b811461277c575f80fd5b50565b5f8135905061278d81612769565b92915050565b5f602082840312156127a8576127a76123a0565b5b5f6127b58482850161277f565b91505092915050565b6127c7816123a8565b82525050565b5f6020820190506127e05f8301846127be565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112612807576128066127e6565b5b8235905067ffffffffffffffff811115612824576128236127ea565b5b6020830191508360018202830111156128405761283f6127ee565b5b9250929050565b5f805f805f8060a08789031215612861576128606123a0565b5b5f61286e89828a016123c7565b965050602061287f89828a016123c7565b955050604061289089828a0161277f565b945050606087013567ffffffffffffffff8111156128b1576128b06123a4565b5b6128bd89828a016127f2565b935093505060806128d089828a0161277f565b9150509295509295509295565b5f6128e78261244f565b9050919050565b6128f7816128dd565b82525050565b5f6020820190506129105f8301846128ee565b92915050565b61291f816125b9565b82525050565b5f6020820190506129385f830184612916565b92915050565b5f805f805f60808688031215612957576129566123a0565b5b5f612964888289016123c7565b9550506020612975888289016123c7565b94505060406129868882890161277f565b935050606086013567ffffffffffffffff8111156129a7576129a66123a4565b5b6129b3888289016127f2565b92509250509295509295909350565b5f6129cc8261244f565b9050919050565b6129dc816129c2565b82525050565b5f6020820190506129f55f8301846129d3565b92915050565b5f8060208385031215612a1157612a106123a0565b5b5f83013567ffffffffffffffff811115612a2e57612a2d6123a4565b5b612a3a858286016127f2565b92509250509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f606082019050612a865f8301866126ec565b612a9360208301856127be565b612aa060408301846127be565b949350505050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f612ae18385612aa8565b9350612aee838584612ab8565b612af783612ac6565b840190509392505050565b5f608082019050612b155f8301886127be565b612b2260208301876127be565b612b2f60408301866126ec565b8181036060830152612b42818486612ad6565b90509695505050505050565b5f8115159050919050565b612b6281612b4e565b8114612b6c575f80fd5b50565b5f81519050612b7d81612b59565b92915050565b5f60208284031215612b9857612b976123a0565b5b5f612ba584828501612b6f565b91505092915050565b5f604082019050612bc15f8301866126ec565b8181036020830152612bd4818486612ad6565b9050949350505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612c1882612ac6565b810181811067ffffffffffffffff82111715612c3757612c36612be2565b5b80604052505050565b5f612c49612397565b9050612c558282612c0f565b919050565b5f80fd5b5f612c6882612406565b9050919050565b5f612c7982612c5e565b9050919050565b612c8981612c6f565b8114612c93575f80fd5b50565b5f81519050612ca481612c80565b92915050565b5f81519050612cb881612769565b92915050565b5f80fd5b5f67ffffffffffffffff821115612cdc57612cdb612be2565b5b612ce582612ac6565b9050602081019050919050565b8281835e5f83830152505050565b5f612d12612d0d84612cc2565b612c40565b905082815260208101848484011115612d2e57612d2d612cbe565b5b612d39848285612cf2565b509392505050565b5f82601f830112612d5557612d546127e6565b5b8151612d65848260208601612d00565b91505092915050565b5f60608284031215612d8357612d82612bde565b5b612d8d6060612c40565b90505f612d9c84828501612b6f565b5f830152506020612daf84828501612caa565b602083015250604082015167ffffffffffffffff811115612dd357612dd2612c5a565b5b612ddf84828501612d41565b60408301525092915050565b5f67ffffffffffffffff821115612e0557612e04612be2565b5b602082029050602081019050919050565b5f612e28612e2384612deb565b612c40565b90508083825260208201905060208402830185811115612e4b57612e4a6127ee565b5b835b81811015612e9257805167ffffffffffffffff811115612e7057612e6f6127e6565b5b808601612e7d8982612d6e565b85526020850194505050602081019050612e4d565b5050509392505050565b5f82601f830112612eb057612eaf6127e6565b5b8151612ec0848260208601612e16565b91505092915050565b5f81519050612ed781612714565b92915050565b5f81519050612eeb816123b1565b92915050565b5f6101208284031215612f0757612f06612bde565b5b612f12610120612c40565b90505f612f2184828501612c96565b5f83015250602082015167ffffffffffffffff811115612f4457612f43612c5a565b5b612f5084828501612d6e565b602083015250604082015167ffffffffffffffff811115612f7457612f73612c5a565b5b612f8084828501612d6e565b604083015250606082015167ffffffffffffffff811115612fa457612fa3612c5a565b5b612fb084828501612d6e565b606083015250608082015167ffffffffffffffff811115612fd457612fd3612c5a565b5b612fe084828501612e9c565b60808301525060a0612ff484828501612ec9565b60a08301525060c061300884828501612ec9565b60c08301525060e061301c84828501612edd565b60e08301525061010061303184828501612caa565b6101008301525092915050565b5f60208284031215613053576130526123a0565b5b5f82015167ffffffffffffffff8111156130705761306f6123a4565b5b61307c84828501612ef1565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6130bc826125b9565b91506130c7836125b9565b9250828201905067ffffffffffffffff8111156130e7576130e6613085565b5b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613121816130ed565b82525050565b5f60208201905061313a5f830184613118565b92915050565b5f6040820190506131535f830185613118565b61316060208301846126ec565b9392505050565b5f613171826123a8565b915061317c836123a8565b925082820390508181111561319457613193613085565b5b92915050565b5f6080820190506131ad5f8301876127be565b6131ba60208301866126ec565b6131c760408301856126ec565b6131d460608301846126ec565b95945050505050565b5f6131e7826123a8565b91506131f2836123a8565b9250828202613200816123a8565b9150828204841483151761321757613216613085565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613255826123a8565b9150613260836123a8565b9250826132705761326f61321e565b5b828204905092915050565b5f81519050919050565b5f61328f8261327b565b6132998185612aa8565b93506132a9818560208601612cf2565b6132b281612ac6565b840191505092915050565b5f6020820190508181035f8301526132d58184613285565b905092915050565b5f602082840312156132f2576132f16123a0565b5b5f82015167ffffffffffffffff81111561330f5761330e6123a4565b5b61331b84828501612d41565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffdfea2646970667358221220293a081374329412b0781035680115ad3d69d49956ef2e6e6400ad5d569c0ac764736f6c634300081a0033";function W(b){const e=b.state.current,f=b.state.connections.get(e),t=f==null?void 0:f.accounts,a=t==null?void 0:t[0],c=b.chains.find(i=>i.id===(f==null?void 0:f.chainId)),s=b.state.status;switch(s){case"connected":return{address:a,addresses:t,chain:c,chainId:f==null?void 0:f.chainId,connector:f==null?void 0:f.connector,isConnected:!0,isConnecting:!1,isDisconnected:!1,isReconnecting:!1,status:s};case"reconnecting":return{address:a,addresses:t,chain:c,chainId:f==null?void 0:f.chainId,connector:f==null?void 0:f.connector,isConnected:!!a,isConnecting:!1,isDisconnected:!1,isReconnecting:!0,status:s};case"connecting":return{address:a,addresses:t,chain:c,chainId:f==null?void 0:f.chainId,connector:f==null?void 0:f.connector,isConnected:!1,isConnecting:!0,isDisconnected:!1,isReconnecting:!1,status:s};case"disconnected":return{address:void 0,addresses:void 0,chain:void 0,chainId:void 0,connector:void 0,isConnected:!1,isConnecting:!1,isDisconnected:!0,isReconnecting:!1,status:s}}}function Af(b){return b.state.chainId}function J(b,e,f){const t=b[e.name];if(typeof t=="function")return t;const a=b[f];return typeof a=="function"?a:c=>e(b,c)}const Cf="2.13.8",vf=()=>`@wagmi/core@${Cf}`;var Q=function(b,e,f,t){if(f==="a"&&!t)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?b!==e||!t:!e.has(b))throw new TypeError("Cannot read private member from an object whose class did not declare it");return f==="m"?t:f==="a"?t.call(b):t?t.value:e.get(b)},m,K;class C extends Error{get docsBaseUrl(){return"https://wagmi.sh/core"}get version(){return vf()}constructor(e,f={}){var c;super(),m.add(this),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"WagmiCoreError"});const t=f.cause instanceof C?f.cause.details:(c=f.cause)!=null&&c.message?f.cause.message:f.details,a=f.cause instanceof C&&f.cause.docsPath||f.docsPath;this.message=[e||"An error occurred.","",...f.metaMessages?[...f.metaMessages,""]:[],...a?[`Docs: ${this.docsBaseUrl}${a}.html${f.docsSlug?`#${f.docsSlug}`:""}`]:[],...t?[`Details: ${t}`]:[],`Version: ${this.version}`].join(`
|
|
2
|
+
`),f.cause&&(this.cause=f.cause),this.details=t,this.docsPath=a,this.metaMessages=f.metaMessages,this.shortMessage=e}walk(e){return Q(this,m,"m",K).call(this,this,e)}}m=new WeakSet,K=function b(e,f){return f!=null&&f(e)?e:e.cause?Q(this,m,"m",b).call(this,e.cause,f):e};class If extends C{constructor(){super("Connector not connected."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorNotConnectedError"})}}class _f extends C{constructor({address:e,connector:f}){super(`Account "${e}" not found for connector "${f.name}".`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorAccountNotFoundError"})}}class Bf extends C{constructor({connectionChainId:e,connectorChainId:f}){super(`The current chain of the connector (id: ${f}) does not match the connection's chain (id: ${e}).`,{metaMessages:[`Current Chain ID: ${f}`,`Expected Chain ID: ${e}`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorChainMismatchError"})}}class Pf extends C{constructor({connector:e}){super(`Connector "${e.name}" unavailable while reconnecting.`,{details:["During the reconnection step, the only connector methods guaranteed to be available are: `id`, `name`, `type`, `uuid`.","All other methods are not guaranteed to be available until reconnection completes and connectors are fully restored.","This error commonly occurs for connectors that asynchronously inject after reconnection has already started."].join(" ")}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorUnavailableReconnectingError"})}}async function X(b,e={}){let f;if(e.connector){const{connector:n}=e;if(b.state.status==="reconnecting"&&!n.getAccounts&&!n.getChainId)throw new Pf({connector:n});const[u,g]=await Promise.all([n.getAccounts(),n.getChainId()]);f={accounts:u,chainId:g,connector:n}}else f=b.state.connections.get(b.state.current);if(!f)throw new If;const t=e.chainId??f.chainId,a=await f.connector.getChainId();if(a!==f.chainId)throw new Bf({connectionChainId:f.chainId,connectorChainId:a});const c=f.connector;if(c.getClient)return c.getClient({chainId:t});const s=p.parseAccount(e.account??f.accounts[0]);if(s.address=p.getAddress(s.address),e.account&&!f.accounts.some(n=>n.toLowerCase()===s.address.toLowerCase()))throw new _f({address:s.address,connector:c});const i=b.chains.find(n=>n.id===t),r=await f.connector.getProvider({chainId:t});return d.createClient({account:s,chain:i,name:"Connector Client",transport:n=>d.custom(r)({...n,retryCount:0})})}async function Ef(b,e){const{abi:f,chainId:t,connector:a,...c}=e;let s;e.account?s=e.account:s=(await X(b,{chainId:t,connector:a})).account;const i=b.getClient({chainId:t}),r=J(i,k.simulateContract,"simulateContract"),{result:n,request:u}=await r({...c,abi:f,account:s});return{chainId:i.chain.id,result:n,request:{__mode:"prepared",...u,chainId:t}}}async function G(b,e){const{account:f,chainId:t,connector:a,__mode:c,...s}=e;let i;typeof f=="object"&&f.type==="local"?i=b.getClient({chainId:t}):i=await X(b,{account:f,chainId:t,connector:a});const{connector:r}=W(b);let n;if(c==="prepared"||r!=null&&r.supportsSimulation)n=s;else{const{request:A}=await Ef(b,{...s,account:f,chainId:t});n=A}return await J(i,k.writeContract,"writeContract")({...n,...f?{account:f}:{},chain:t?{id:t}:null})}function Rf(b){return b.address!==void 0&&typeof b.address=="object"?(e,f)=>{var s;const t=Af(e),a=W(e);let c;return f.chainId?c=f.chainId:f.account&&f.account===a.address||f.account===void 0?c=a.chainId:c=t,G(e,{...f,...b.functionName?{functionName:b.functionName}:{},address:c?(s=b.address)==null?void 0:s[c]:void 0,abi:b.abi})}:(e,f)=>G(e,{...f,...b.address?{address:b.address}:{},...b.functionName?{functionName:b.functionName}:{},abi:b.abi})}const mf=d.parseEther("0.000075"),qf=U.BoostCore[11155111],V={...U.BoostCore,31337:void 0};function Ff(b){return b.address}function Of(b){return b.registryAddress&&b.protocolFeeReceiver}const M=class M extends of.Deployable{get addresses(){return this.constructor.addresses}constructor({config:e,account:f,...t}){if(Ff(t)&&t.address)super({account:f,config:e},t.address);else if(Of(t))super({account:f,config:e},[t.registryAddress,t.protocolFeeReceiver]);else{const{address:a}=h.assertValidAddressByChainId(e,V);super({account:f,config:e},a)}this.abi=o.d}async createBoost(e,f){var j,$;const[t,a]=this.validateDeploymentConfig(e,f),c=((j=f==null?void 0:f.chain)==null?void 0:j.id)||(f==null?void 0:f.chainId),{chainId:s,address:i}=h.assertValidAddressByChainId(a.config,this.addresses,c);let{budget:r,action:n,validator:u,allowList:g,incentives:A,protocolFee:q=0n,referralFee:F=0n,maxParticipants:O=0n,owner:v}=t;const Y=Rf({abi:o.d,functionName:"createBoost",address:i});if(!v&&(v=(($=this._account)==null?void 0:$.address)||x.getAccount(a.config).address||d.zeroAddress,v===d.zeroAddress))throw new I.DeployableUnknownOwnerProvidedError;let H=d.zeroAddress;if(r.address){if(H=r.address,!await r.isAuthorized(i))throw new I.BudgetMustAuthorizeBoostCore(i)}else throw new I.MustInitializeBudgetError;let _={instance:d.zeroAddress,isBase:!0,parameters:d.zeroHash};if(n.address){const l=n.isBase;_={isBase:l,instance:n.address,parameters:l&&n.buildParameters(void 0,a).args.at(0)||d.zeroHash}}else _.parameters=n.buildParameters(void 0,a).args.at(0)||d.zeroHash,_.instance=h.assertValidAddressByChainId(a.config,n.bases,s).address;let B={instance:d.zeroAddress,isBase:!0,parameters:d.zeroHash};if(u.address){const l=u.isBase;B={isBase:l,instance:u.address,parameters:l&&u.buildParameters({signers:[v],validatorCaller:i},a).args.at(0)||d.zeroHash}}else B.parameters=u.buildParameters({signers:[v],validatorCaller:i},a).args.at(0)||d.zeroHash,B.instance=h.assertValidAddressByChainId(a.config,u.bases,s).address;let P={instance:d.zeroAddress,isBase:!0,parameters:d.zeroHash};if(g.address){const l=g.isBase;P={isBase:l,instance:g.address,parameters:d.zeroHash}}else P.parameters=g.buildParameters(void 0,a).args.at(0)||d.zeroHash,P.instance=h.assertValidAddressByChainId(a.config,g.bases,s).address;const E=A.map(()=>({instance:d.zeroAddress,isBase:!0,parameters:d.zeroHash}));for(let l=0;l<A.length;l++){const y=A.at(l);if(y.address){const D=y.isBase;if(!D)throw new I.IncentiveNotCloneableError(y);E[l]={isBase:D,instance:y.address,parameters:D&&y.buildParameters(void 0,a).args.at(0)||d.zeroHash}}else E[l].parameters=y.buildParameters(void 0,a).args.at(0)||d.zeroHash,E[l].instance=h.assertValidAddressByChainId(a.config,y.bases,s).address}const Z={budget:H,action:_,validator:B,allowList:P,incentives:E,protocolFee:q,referralFee:F,maxParticipants:O,owner:v},ff=await Y(a.config,{...this.optionallyAttachAccount(a.account),...f,chainId:s,args:[z.prepareBoostPayload(Z)]}),ef=await x.waitForTransactionReceipt(a.config,{hash:ff}),R=d.parseEventLogs({abi:o.d,eventName:"BoostCreated",logs:ef.logs}).at(0);let S=0n;if(!R)throw new I.BoostCoreNoIdentifierEmitted;S=R==null?void 0:R.args.boostIndex;const w=await this.readBoost(S);return new z.Boost({id:S,budget:r.at(w.budget),action:n.at(w.action),validator:u.at(w.validator),allowList:g.at(w.allowList),incentives:A.map((l,y)=>l.at(w.incentives.at(y))),protocolFee:w.protocolFee,referralFee:w.referralFee,maxParticipants:w.maxParticipants,owner:w.owner})}async claimIncentive(e,f,t,a,c){return await this.awaitResult(this.claimIncentiveRaw(e,f,t,a,c))}async claimIncentiveRaw(e,f,t,a,c){var n;const{request:s,result:i}=await o.Ql(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,((n=c==null?void 0:c.chain)==null?void 0:n.id)||(c==null?void 0:c.chainId)),args:[e,f,t,a],...this.optionallyAttachAccount(),...c});return{hash:await o.Vl(this._config,s),result:i}}async claimIncentiveFor(e,f,t,a,c,s){return await this.awaitResult(this.claimIncentiveForRaw(e,f,t,a,c,s))}async claimIncentiveForRaw(e,f,t,a,c,s){var u;const{request:i,result:r}=await o.Jl(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,((u=s==null?void 0:s.chain)==null?void 0:u.id)||(s==null?void 0:s.chainId)),args:[e,f,t,a,c],...this.optionallyAttachAccount(),...s});return{hash:await o._l(this._config,i),result:r}}async readBoost(e,f){return await o.Ml(this._config,{address:this.assertValidAddress(),args:[e],...this.optionallyAttachAccount(),...f})}async getBoost(e,f){let t;typeof e=="string"?t=BigInt(e):t=e;const{protocolFee:a,referralFee:c,maxParticipants:s,owner:i,...r}=await this.readBoost(t,f),n={config:this._config,account:this._account},[u,g,A,q,F]=await Promise.all([tf.actionFromAddress(n,r.action),nf.budgetFromAddress(n,r.budget),wf.validatorFromAddress(n,r.validator),N.allowListFromAddress(n,r.allowList),Promise.all(r.incentives.map(O=>T.incentiveFromAddress(n,O)))]);return new z.Boost({id:t,action:u,budget:g,validator:A,allowList:q,incentives:F,protocolFee:a,referralFee:c,maxParticipants:s,owner:i})}async getBoostCount(e){return await o.Ol(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[],...this.optionallyAttachAccount(),...e})}async isAuthorized(e,f){const t=await this.createBoostAuth(f);return o.lv(this._config,{address:t,args:[e],...this.optionallyAttachAccount(),...f})}async createBoostAuth(e){return await o.gl(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[],...this.optionallyAttachAccount(),...e})}async setCreateBoostAuth(e,f){return await this.awaitResult(this.setCreateBoostAuthRaw(e.assertValidAddress(),{...f}))}async setCreateBoostAuthRaw(e,f){const{request:t,result:a}=await o.ny(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[e],...this.optionallyAttachAccount(),...f});return{hash:await o.ql(this._config,t),result:a}}async protocolFee(e){return await o.Rl(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[],...this.optionallyAttachAccount(),...e})}async protocolFeeReceiver(e){return await o.zl(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[],...this.optionallyAttachAccount(),...e})}async setProcolFeeReceiver(e,f){return await this.awaitResult(this.setProcolFeeReceiverRaw(e,{...f}))}async setProcolFeeReceiverRaw(e,f){const{request:t,result:a}=await o.iy(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[e],...this.optionallyAttachAccount(),...f});return{hash:await o.Gl(this._config,t),result:a}}async claimFee(e){return await o.hl(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[],...this.optionallyAttachAccount(),...e})}async setClaimFee(e,f){return await this.awaitResult(this.setClaimFeeRaw(e,f))}async setClaimFeeRaw(e,f){const{request:t,result:a}=await o.ty(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[e],...this.optionallyAttachAccount(),...f});return{hash:await o.Pl(this._config,t),result:a}}PassthroughAuth(e){return new sf.PassthroughAuth({config:this._config,account:this._account},e)}EventAction(e,f){return new af.EventAction({config:this._config,account:this._account},e,f)}OpenAllowList(e){return new N.OpenAllowList({config:this._config,account:this._account},void 0,e)}SimpleAllowList(e,f){return new bf.SimpleAllowList({config:this._config,account:this._account},e,f)}SimpleDenyList(e,f){return new cf.SimpleDenyList({config:this._config,account:this._account},e,f)}ManagedBudget(e){return new df.ManagedBudget({config:this._config,account:this._account},e)}AllowListIncentive(e){return new rf.AllowListIncentive({config:this._config,account:this._account},e)}CGDAIncentive(e){return new uf.CGDAIncentive({config:this._config,account:this._account},e)}ERC20Incentive(e){return new lf.ERC20Incentive({config:this._config,account:this._account},e)}PointsIncentive(e){return new hf.PointsIncentive({config:this._config,account:this._account},e)}SignerValidator(e,f){return new gf.SignerValidator({config:this._config,account:this._account},e,f)}ERC20VariableIncentive(e,f){return new T.ERC20VariableIncentive({config:this._config,account:this._account},e,f)}buildParameters(e,f){const[t,a]=this.validateDeploymentConfig(e,f);return{abi:o.d,bytecode:yf,args:t,...this.optionallyAttachAccount(a.account)}}};M.addresses=V;let L=M;exports.boostCoreAbi=o.d;exports.BOOST_CORE_ADDRESS=qf;exports.BOOST_CORE_ADDRESSES=V;exports.BOOST_CORE_CLAIM_FEE=mf;exports.BoostCore=L;
|
|
3
3
|
//# sourceMappingURL=BoostCore.cjs.map
|