@boostxyz/sdk 5.3.1 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/dist/Actions/Action.cjs +1 -1
  2. package/dist/Actions/Action.js +3 -3
  3. package/dist/Actions/EventAction.cjs +1 -1
  4. package/dist/Actions/EventAction.cjs.map +1 -1
  5. package/dist/Actions/EventAction.d.ts +13 -3
  6. package/dist/Actions/EventAction.d.ts.map +1 -1
  7. package/dist/Actions/EventAction.js +216 -193
  8. package/dist/Actions/EventAction.js.map +1 -1
  9. package/dist/AllowLists/AllowList.cjs +1 -1
  10. package/dist/AllowLists/AllowList.js +2 -2
  11. package/dist/AllowLists/SimpleAllowList.cjs +1 -1
  12. package/dist/AllowLists/SimpleAllowList.cjs.map +1 -1
  13. package/dist/AllowLists/SimpleAllowList.js +24 -24
  14. package/dist/AllowLists/SimpleAllowList.js.map +1 -1
  15. package/dist/AllowLists/SimpleDenyList.cjs +1 -1
  16. package/dist/AllowLists/SimpleDenyList.js +3 -3
  17. package/dist/Auth/PassthroughAuth.cjs +1 -1
  18. package/dist/Auth/PassthroughAuth.cjs.map +1 -1
  19. package/dist/Auth/PassthroughAuth.js +14 -14
  20. package/dist/Boost.cjs.map +1 -1
  21. package/dist/Boost.js.map +1 -1
  22. package/dist/BoostCore.cjs +2 -2
  23. package/dist/BoostCore.cjs.map +1 -1
  24. package/dist/BoostCore.d.ts +247 -0
  25. package/dist/BoostCore.d.ts.map +1 -1
  26. package/dist/BoostCore.js +421 -259
  27. package/dist/BoostCore.js.map +1 -1
  28. package/dist/BoostRegistry.cjs +1 -1
  29. package/dist/BoostRegistry.cjs.map +1 -1
  30. package/dist/BoostRegistry.js +43 -43
  31. package/dist/BoostRegistry.js.map +1 -1
  32. package/dist/Budget-DMbfdTom.cjs +2 -0
  33. package/dist/{Budget-AoNx7uFd.cjs.map → Budget-DMbfdTom.cjs.map} +1 -1
  34. package/dist/Budget-DO6sGTIR.js +463 -0
  35. package/dist/{Budget-DYIV9iNK.js.map → Budget-DO6sGTIR.js.map} +1 -1
  36. package/dist/Budgets/Budget.cjs +1 -1
  37. package/dist/Budgets/Budget.js +2 -2
  38. package/dist/Budgets/ManagedBudget.cjs +1 -1
  39. package/dist/Budgets/ManagedBudget.cjs.map +1 -1
  40. package/dist/Budgets/ManagedBudget.js +53 -53
  41. package/dist/Budgets/ManagedBudgetWithFees.d.ts +26 -0
  42. package/dist/Budgets/ManagedBudgetWithFees.d.ts.map +1 -1
  43. package/dist/Deployable/DeployableTarget.cjs +1 -1
  44. package/dist/Deployable/DeployableTarget.js +1 -1
  45. package/dist/Deployable/DeployableTargetWithRBAC.cjs +1 -1
  46. package/dist/Deployable/DeployableTargetWithRBAC.js +15 -15
  47. package/dist/Incentive-Boviez4z.js +1036 -0
  48. package/dist/Incentive-Boviez4z.js.map +1 -0
  49. package/dist/Incentive-wM4zizTH.cjs +2 -0
  50. package/dist/Incentive-wM4zizTH.cjs.map +1 -0
  51. package/dist/Incentives/AllowListIncentive.cjs +1 -1
  52. package/dist/Incentives/AllowListIncentive.cjs.map +1 -1
  53. package/dist/Incentives/AllowListIncentive.d.ts +9 -1
  54. package/dist/Incentives/AllowListIncentive.d.ts.map +1 -1
  55. package/dist/Incentives/AllowListIncentive.js +64 -47
  56. package/dist/Incentives/AllowListIncentive.js.map +1 -1
  57. package/dist/Incentives/CGDAIncentive.cjs +1 -1
  58. package/dist/Incentives/CGDAIncentive.cjs.map +1 -1
  59. package/dist/Incentives/CGDAIncentive.d.ts +12 -1
  60. package/dist/Incentives/CGDAIncentive.d.ts.map +1 -1
  61. package/dist/Incentives/CGDAIncentive.js +64 -33
  62. package/dist/Incentives/CGDAIncentive.js.map +1 -1
  63. package/dist/Incentives/ERC20Incentive.cjs +1 -1
  64. package/dist/Incentives/ERC20Incentive.cjs.map +1 -1
  65. package/dist/Incentives/ERC20Incentive.d.ts +37 -1
  66. package/dist/Incentives/ERC20Incentive.d.ts.map +1 -1
  67. package/dist/Incentives/ERC20Incentive.js +73 -49
  68. package/dist/Incentives/ERC20Incentive.js.map +1 -1
  69. package/dist/Incentives/ERC20PeggedIncentive.d.ts +35 -0
  70. package/dist/Incentives/ERC20PeggedIncentive.d.ts.map +1 -1
  71. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentive.d.ts +35 -0
  72. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentive.d.ts.map +1 -1
  73. package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs +1 -1
  74. package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs.map +1 -1
  75. package/dist/Incentives/ERC20VariableCriteriaIncentive.d.ts +25 -0
  76. package/dist/Incentives/ERC20VariableCriteriaIncentive.d.ts.map +1 -1
  77. package/dist/Incentives/ERC20VariableCriteriaIncentive.js +24 -24
  78. package/dist/Incentives/ERC20VariableCriteriaIncentive.js.map +1 -1
  79. package/dist/Incentives/ERC20VariableIncentive.cjs +1 -1
  80. package/dist/Incentives/ERC20VariableIncentive.cjs.map +1 -1
  81. package/dist/Incentives/ERC20VariableIncentive.d.ts +35 -0
  82. package/dist/Incentives/ERC20VariableIncentive.d.ts.map +1 -1
  83. package/dist/Incentives/ERC20VariableIncentive.js +55 -38
  84. package/dist/Incentives/ERC20VariableIncentive.js.map +1 -1
  85. package/dist/Incentives/Incentive.cjs +1 -1
  86. package/dist/Incentives/Incentive.d.ts +25 -0
  87. package/dist/Incentives/Incentive.d.ts.map +1 -1
  88. package/dist/Incentives/Incentive.js +2 -2
  89. package/dist/Incentives/PointsIncentive.cjs +1 -1
  90. package/dist/Incentives/PointsIncentive.cjs.map +1 -1
  91. package/dist/Incentives/PointsIncentive.d.ts +8 -0
  92. package/dist/Incentives/PointsIncentive.d.ts.map +1 -1
  93. package/dist/Incentives/PointsIncentive.js +50 -28
  94. package/dist/Incentives/PointsIncentive.js.map +1 -1
  95. package/dist/SimpleDenyList-CW4RwwRw.js +133 -0
  96. package/dist/{SimpleDenyList-ByAr4X1r.js.map → SimpleDenyList-CW4RwwRw.js.map} +1 -1
  97. package/dist/SimpleDenyList-Cybtz7AK.cjs +2 -0
  98. package/dist/{SimpleDenyList-CsRXJPwm.cjs.map → SimpleDenyList-Cybtz7AK.cjs.map} +1 -1
  99. package/dist/Validators/LimitedSignerValidator.cjs +1 -1
  100. package/dist/Validators/LimitedSignerValidator.cjs.map +1 -1
  101. package/dist/Validators/LimitedSignerValidator.js +33 -33
  102. package/dist/Validators/LimitedSignerValidator.js.map +1 -1
  103. package/dist/Validators/SignerValidator.cjs +1 -1
  104. package/dist/Validators/SignerValidator.cjs.map +1 -1
  105. package/dist/Validators/SignerValidator.js +26 -26
  106. package/dist/Validators/SignerValidator.js.map +1 -1
  107. package/dist/Validators/Validator.cjs +1 -1
  108. package/dist/Validators/Validator.js +3 -3
  109. package/dist/deployments-CIXw_WKk.cjs +2 -0
  110. package/dist/deployments-CIXw_WKk.cjs.map +1 -0
  111. package/dist/{deployments-D0fs26TV.js → deployments-DqjtOTUr.js} +47 -47
  112. package/dist/{deployments-D0fs26TV.js.map → deployments-DqjtOTUr.js.map} +1 -1
  113. package/dist/deployments.json +24 -24
  114. package/dist/generated-DgXPUgXl.cjs +3 -0
  115. package/dist/generated-DgXPUgXl.cjs.map +1 -0
  116. package/dist/{generated-Cyvr_Tjx.js → generated-pJZHmRCK.js} +728 -459
  117. package/dist/generated-pJZHmRCK.js.map +1 -0
  118. package/dist/index.cjs +1 -1
  119. package/dist/index.js +137 -136
  120. package/package.json +1 -1
  121. package/src/Actions/EventAction.ts +108 -27
  122. package/src/BoostCore.test.ts +124 -2
  123. package/src/BoostCore.ts +227 -0
  124. package/src/Incentives/AllowListIncentive.ts +17 -0
  125. package/src/Incentives/CGDAIncentive.ts +31 -0
  126. package/src/Incentives/ERC20Incentive.ts +27 -0
  127. package/src/Incentives/ERC20PeggedIncentive.ts +18 -0
  128. package/src/Incentives/ERC20PeggedVariableCriteriaIncentive.ts +26 -0
  129. package/src/Incentives/ERC20VariableIncentive.ts +18 -0
  130. package/src/Incentives/PointsIncentive.ts +22 -0
  131. package/dist/Budget-AoNx7uFd.cjs +0 -2
  132. package/dist/Budget-DYIV9iNK.js +0 -463
  133. package/dist/Incentive-BbkfwGOb.cjs +0 -2
  134. package/dist/Incentive-BbkfwGOb.cjs.map +0 -1
  135. package/dist/Incentive-qlnv5kQB.js +0 -991
  136. package/dist/Incentive-qlnv5kQB.js.map +0 -1
  137. package/dist/SimpleDenyList-ByAr4X1r.js +0 -133
  138. package/dist/SimpleDenyList-CsRXJPwm.cjs +0 -2
  139. package/dist/deployments-DoIOqxco.cjs +0 -2
  140. package/dist/deployments-DoIOqxco.cjs.map +0 -1
  141. package/dist/generated-Cyvr_Tjx.js.map +0 -1
  142. package/dist/generated-DtYPHhtX.cjs +0 -3
  143. package/dist/generated-DtYPHhtX.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleDenyList-ByAr4X1r.js","sources":["../src/AllowLists/SimpleDenyList.ts"],"sourcesContent":["import {\n readSimpleAllowListOwner,\n readSimpleDenyListIsAllowed,\n simpleDenyListAbi,\n simulateSimpleDenyListSetDenied,\n writeSimpleDenyListSetDenied,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/allowlists/SimpleDenyList.sol/SimpleDenyList.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 { SimpleDenyList as SimpleDenyListBases } from '../../dist/deployments.json';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport { DeployableTargetWithRBAC } from '../Deployable/DeployableTargetWithRBAC';\nimport { DeployableUnknownOwnerProvidedError } from '../errors';\nimport {\n type GenericLog,\n type ReadParams,\n RegistryType,\n type WriteParams,\n} from '../utils';\n\nexport { simpleDenyListAbi };\n\n/**\n * Object representation of a {@link SimpleDenyList} initialization payload.\n *\n * @export\n * @interface SimpleDenyListPayload\n * @typedef {SimpleDenyListPayload}\n */\nexport interface SimpleDenyListPayload {\n /**\n * The allow list's owner\n *\n * @type {Address}\n */\n owner: Address;\n /**\n * List of denied addresses.\n *\n * @type {Address[]}\n */\n denied: Address[];\n}\n\n/**\n * A generic `viem.Log` event with support for `SimpleDenyList` event types.\n *\n * @export\n * @typedef {SimpleDenyListLog}\n * @template {ContractEventName<typeof simpleDenyListAbi>} [event=ContractEventName<\n * typeof simpleDenyListAbi\n * >]\n */\nexport type SimpleDenyListLog<\n event extends ContractEventName<typeof simpleDenyListAbi> = ContractEventName<\n typeof simpleDenyListAbi\n >,\n> = GenericLog<typeof simpleDenyListAbi, event>;\n\n/**\n * A simple implementation of an AllowList that implicitly allows all addresses except those explicitly added to the deny list\n *\n * @export\n * @class SimpleDenyList\n * @typedef {SimpleDenyList}\n * @extends {DeployableTargetWithRBAC<SimpleDenyListPayload>}\n */\nexport class SimpleDenyList<\n Payload = SimpleDenyListPayload,\n> extends DeployableTargetWithRBAC<\n Payload | undefined,\n typeof simpleDenyListAbi\n> {\n public override readonly abi = simpleDenyListAbi;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {Record<number, Address>}\n */\n public static override bases: Record<number, Address> = {\n 31337: import.meta.env.VITE_SIMPLE_DENYLIST_BASE,\n ...(SimpleDenyListBases 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} [params]\n * @returns {Promise<Address>} - The address of the owner\n */\n public async owner(params?: ReadParams): 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 (i.e. not denied)\n *\n * @public\n * @async\n * @param {Address} address - The address of the user\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} - True if the user is authorized\n */\n public async isAllowed(\n address: Address,\n params?: ReadParams,\n ): Promise<boolean> {\n return await readSimpleDenyListIsAllowed(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 denied status of a user. The length of the `users_` and `denied_` arrays must be the same. 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 denied status of each user\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setDenied(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.setDeniedRaw(addresses, allowed, params),\n );\n }\n\n /**\n * Set the denied status of a user. The length of the `users_` and `denied_` arrays must be the same. 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 denied status of each user\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async setDeniedRaw(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams,\n ) {\n const { request, result } = await simulateSimpleDenyListSetDenied(\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 writeSimpleDenyListSetDenied(this._config, request);\n return { hash, result };\n }\n\n /**\n * @inheritdoc\n *\n * @public\n * @param {?SimpleDenyListPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: Payload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [p, options] = this.validateDeploymentConfig(_payload, _options);\n const payload = p as SimpleDenyListPayload;\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: simpleDenyListAbi,\n bytecode: bytecode as Hex,\n args: [prepareSimpleDenyListPayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n\n/**\n * Given a {@link SimpleDenyListPayload}, properly encode the initialization payload.\n *\n * @param {SimpleDenyListPayload} param0\n * @param {Address} param0.owner - The allow list's owner\n * @param {Address[]} param0.denied - List of denied addresses.\n * @returns {Hex}\n */\nexport function prepareSimpleDenyListPayload({\n owner,\n denied,\n}: SimpleDenyListPayload) {\n return encodeAbiParameters(\n [\n { type: 'address', name: 'owner' },\n { type: 'address[]', name: 'denied' },\n ],\n [owner, denied],\n );\n}\n"],"names":["_SimpleDenyList","DeployableTargetWithRBAC","simpleDenyListAbi","params","readSimpleAllowListOwner","address","readSimpleDenyListIsAllowed","zeroHash","addresses","allowed","request","result","simulateSimpleDenyListSetDenied","writeSimpleDenyListSetDenied","_payload","_options","p","options","payload","zeroAddress","owner","getAccount","_a","DeployableUnknownOwnerProvidedError","bytecode","prepareSimpleDenyListPayload","SimpleDenyListBases","RegistryType","SimpleDenyList","denied","encodeAbiParameters"],"mappings":";;;;;;;w4ZA8EaA,IAAN,MAAMA,UAEHC,EAGR;AAAA,EALK,cAAA;AAAA,UAAA,GAAA,SAAA,GAML,KAAyB,MAAMC;AAAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA6B/B,MAAa,MAAMC,GAAuC;AACjD,WAAA,MAAMC,EAAyB,KAAK,SAAS;AAAA,MAClD,GAAG,KAAK,wBAAwB;AAAA;AAAA,MAEhC,GAAID;AAAA,MACJ,SAAS,KAAK,mBAAmB;AAAA,MACjC,MAAM,CAAC;AAAA,IAAA,CACR;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAa,UACXE,GACAF,GACkB;AACX,WAAA,MAAMG,EAA4B,KAAK,SAAS;AAAA,MACrD,SAAS,KAAK,mBAAmB;AAAA,MACjC,MAAM,CAACD,GAASE,CAAQ;AAAA,MACxB,GAAG,KAAK,wBAAwB;AAAA;AAAA,MAEhC,GAAIJ;AAAA,IAAA,CACL;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MAAa,UACXK,GACAC,GACAN,GACA;AACA,WAAO,MAAM,KAAK;AAAA,MAChB,KAAK,aAAaK,GAAWC,GAASN,CAAM;AAAA,IAAA;AAAA,EAEhD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MAAa,aACXK,GACAC,GACAN,GACA;AACA,UAAM,EAAE,SAAAO,GAAS,QAAAC,EAAO,IAAI,MAAMC;AAAAA,MAChC,KAAK;AAAA,MACL;AAAA,QACE,SAAS,KAAK,mBAAmB;AAAA,QACjC,MAAM,CAACJ,GAAWC,CAAO;AAAA,QACzB,GAAG,KAAK,wBAAwB;AAAA;AAAA,QAEhC,GAAIN;AAAA,MACN;AAAA,IAAA;AAGK,WAAA,EAAE,MADI,MAAMU,EAA6B,KAAK,SAASH,CAAO,GACtD,QAAAC;EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUgB,gBACdG,GACAC,GACyB;;AACzB,UAAM,CAACC,GAAGC,CAAO,IAAI,KAAK,yBAAyBH,GAAUC,CAAQ,GAC/DG,IAAUF;AAChB,QAAI,CAACE,EAAQ,SAASA,EAAQ,UAAUC,GAAa;AACnD,YAAMC,IAAQH,EAAQ,UAClBA,EAAQ,QAAQ,UAChBA,EAAQ,SACNI,EAAWJ,EAAQ,MAAM,EAAE,WAC3BK,IAAA,KAAK,aAAL,gBAAAA,EAAe;AACrB,UAAIF;AACF,QAAAF,EAAQ,QAAQE;AAAA;AAEhB,cAAM,IAAIG,EAAoC;AAAA,IAElD;AACO,WAAA;AAAA,MACL,KAAKrB;AAAAA,MACL,UAAAsB;AAAA,MACA,MAAM,CAACC,EAA6BP,CAAO,CAAC;AAAA,MAC5C,GAAG,KAAK,wBAAwBD,EAAQ,OAAO;AAAA,IAAA;AAAA,EAEnD;AACF;AAvIEjB,EAAuB,QAAiC;AAAA,EACtD,OAAO;AAAA,EACP,GAAI0B;AAAA,GASN1B,EAAuB,eAA6B2B,EAAa;AAzB5D,IAAMC,IAAN5B;AA+JA,SAASyB,EAA6B;AAAA,EAC3C,OAAAL;AAAA,EACA,QAAAS;AACF,GAA0B;AACjB,SAAAC;AAAA,IACL;AAAA,MACE,EAAE,MAAM,WAAW,MAAM,QAAQ;AAAA,MACjC,EAAE,MAAM,aAAa,MAAM,SAAS;AAAA,IACtC;AAAA,IACA,CAACV,GAAOS,CAAM;AAAA,EAAA;AAElB;"}
1
+ {"version":3,"file":"SimpleDenyList-CW4RwwRw.js","sources":["../src/AllowLists/SimpleDenyList.ts"],"sourcesContent":["import {\n readSimpleAllowListOwner,\n readSimpleDenyListIsAllowed,\n simpleDenyListAbi,\n simulateSimpleDenyListSetDenied,\n writeSimpleDenyListSetDenied,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/allowlists/SimpleDenyList.sol/SimpleDenyList.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 { SimpleDenyList as SimpleDenyListBases } from '../../dist/deployments.json';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport { DeployableTargetWithRBAC } from '../Deployable/DeployableTargetWithRBAC';\nimport { DeployableUnknownOwnerProvidedError } from '../errors';\nimport {\n type GenericLog,\n type ReadParams,\n RegistryType,\n type WriteParams,\n} from '../utils';\n\nexport { simpleDenyListAbi };\n\n/**\n * Object representation of a {@link SimpleDenyList} initialization payload.\n *\n * @export\n * @interface SimpleDenyListPayload\n * @typedef {SimpleDenyListPayload}\n */\nexport interface SimpleDenyListPayload {\n /**\n * The allow list's owner\n *\n * @type {Address}\n */\n owner: Address;\n /**\n * List of denied addresses.\n *\n * @type {Address[]}\n */\n denied: Address[];\n}\n\n/**\n * A generic `viem.Log` event with support for `SimpleDenyList` event types.\n *\n * @export\n * @typedef {SimpleDenyListLog}\n * @template {ContractEventName<typeof simpleDenyListAbi>} [event=ContractEventName<\n * typeof simpleDenyListAbi\n * >]\n */\nexport type SimpleDenyListLog<\n event extends ContractEventName<typeof simpleDenyListAbi> = ContractEventName<\n typeof simpleDenyListAbi\n >,\n> = GenericLog<typeof simpleDenyListAbi, event>;\n\n/**\n * A simple implementation of an AllowList that implicitly allows all addresses except those explicitly added to the deny list\n *\n * @export\n * @class SimpleDenyList\n * @typedef {SimpleDenyList}\n * @extends {DeployableTargetWithRBAC<SimpleDenyListPayload>}\n */\nexport class SimpleDenyList<\n Payload = SimpleDenyListPayload,\n> extends DeployableTargetWithRBAC<\n Payload | undefined,\n typeof simpleDenyListAbi\n> {\n public override readonly abi = simpleDenyListAbi;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {Record<number, Address>}\n */\n public static override bases: Record<number, Address> = {\n 31337: import.meta.env.VITE_SIMPLE_DENYLIST_BASE,\n ...(SimpleDenyListBases 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} [params]\n * @returns {Promise<Address>} - The address of the owner\n */\n public async owner(params?: ReadParams): 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 (i.e. not denied)\n *\n * @public\n * @async\n * @param {Address} address - The address of the user\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} - True if the user is authorized\n */\n public async isAllowed(\n address: Address,\n params?: ReadParams,\n ): Promise<boolean> {\n return await readSimpleDenyListIsAllowed(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 denied status of a user. The length of the `users_` and `denied_` arrays must be the same. 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 denied status of each user\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setDenied(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.setDeniedRaw(addresses, allowed, params),\n );\n }\n\n /**\n * Set the denied status of a user. The length of the `users_` and `denied_` arrays must be the same. 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 denied status of each user\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async setDeniedRaw(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams,\n ) {\n const { request, result } = await simulateSimpleDenyListSetDenied(\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 writeSimpleDenyListSetDenied(this._config, request);\n return { hash, result };\n }\n\n /**\n * @inheritdoc\n *\n * @public\n * @param {?SimpleDenyListPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: Payload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [p, options] = this.validateDeploymentConfig(_payload, _options);\n const payload = p as SimpleDenyListPayload;\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: simpleDenyListAbi,\n bytecode: bytecode as Hex,\n args: [prepareSimpleDenyListPayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n\n/**\n * Given a {@link SimpleDenyListPayload}, properly encode the initialization payload.\n *\n * @param {SimpleDenyListPayload} param0\n * @param {Address} param0.owner - The allow list's owner\n * @param {Address[]} param0.denied - List of denied addresses.\n * @returns {Hex}\n */\nexport function prepareSimpleDenyListPayload({\n owner,\n denied,\n}: SimpleDenyListPayload) {\n return encodeAbiParameters(\n [\n { type: 'address', name: 'owner' },\n { type: 'address[]', name: 'denied' },\n ],\n [owner, denied],\n );\n}\n"],"names":["_SimpleDenyList","DeployableTargetWithRBAC","simpleDenyListAbi","params","readSimpleAllowListOwner","address","readSimpleDenyListIsAllowed","zeroHash","addresses","allowed","request","result","simulateSimpleDenyListSetDenied","writeSimpleDenyListSetDenied","_payload","_options","p","options","payload","zeroAddress","owner","getAccount","_a","DeployableUnknownOwnerProvidedError","bytecode","prepareSimpleDenyListPayload","SimpleDenyListBases","RegistryType","SimpleDenyList","denied","encodeAbiParameters"],"mappings":";;;;;;;49RA8EaA,IAAN,MAAMA,UAEHC,EAGR;AAAA,EALK,cAAA;AAAA,UAAA,GAAA,SAAA,GAML,KAAyB,MAAMC;AAAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA6B/B,MAAa,MAAMC,GAAuC;AACjD,WAAA,MAAMC,EAAyB,KAAK,SAAS;AAAA,MAClD,GAAG,KAAK,wBAAwB;AAAA;AAAA,MAEhC,GAAID;AAAA,MACJ,SAAS,KAAK,mBAAmB;AAAA,MACjC,MAAM,CAAC;AAAA,IAAA,CACR;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAa,UACXE,GACAF,GACkB;AACX,WAAA,MAAMG,EAA4B,KAAK,SAAS;AAAA,MACrD,SAAS,KAAK,mBAAmB;AAAA,MACjC,MAAM,CAACD,GAASE,CAAQ;AAAA,MACxB,GAAG,KAAK,wBAAwB;AAAA;AAAA,MAEhC,GAAIJ;AAAA,IAAA,CACL;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MAAa,UACXK,GACAC,GACAN,GACA;AACA,WAAO,MAAM,KAAK;AAAA,MAChB,KAAK,aAAaK,GAAWC,GAASN,CAAM;AAAA,IAAA;AAAA,EAEhD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MAAa,aACXK,GACAC,GACAN,GACA;AACA,UAAM,EAAE,SAAAO,GAAS,QAAAC,EAAO,IAAI,MAAMC;AAAAA,MAChC,KAAK;AAAA,MACL;AAAA,QACE,SAAS,KAAK,mBAAmB;AAAA,QACjC,MAAM,CAACJ,GAAWC,CAAO;AAAA,QACzB,GAAG,KAAK,wBAAwB;AAAA;AAAA,QAEhC,GAAIN;AAAA,MACN;AAAA,IAAA;AAGK,WAAA,EAAE,MADI,MAAMU,EAA6B,KAAK,SAASH,CAAO,GACtD,QAAAC;EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUgB,gBACdG,GACAC,GACyB;;AACzB,UAAM,CAACC,GAAGC,CAAO,IAAI,KAAK,yBAAyBH,GAAUC,CAAQ,GAC/DG,IAAUF;AAChB,QAAI,CAACE,EAAQ,SAASA,EAAQ,UAAUC,GAAa;AACnD,YAAMC,IAAQH,EAAQ,UAClBA,EAAQ,QAAQ,UAChBA,EAAQ,SACNI,EAAWJ,EAAQ,MAAM,EAAE,WAC3BK,IAAA,KAAK,aAAL,gBAAAA,EAAe;AACrB,UAAIF;AACF,QAAAF,EAAQ,QAAQE;AAAA;AAEhB,cAAM,IAAIG,EAAoC;AAAA,IAElD;AACO,WAAA;AAAA,MACL,KAAKrB;AAAAA,MACL,UAAAsB;AAAA,MACA,MAAM,CAACC,EAA6BP,CAAO,CAAC;AAAA,MAC5C,GAAG,KAAK,wBAAwBD,EAAQ,OAAO;AAAA,IAAA;AAAA,EAEnD;AACF;AAvIEjB,EAAuB,QAAiC;AAAA,EACtD,OAAO;AAAA,EACP,GAAI0B;AAAA,GASN1B,EAAuB,eAA6B2B,EAAa;AAzB5D,IAAMC,IAAN5B;AA+JA,SAASyB,EAA6B;AAAA,EAC3C,OAAAL;AAAA,EACA,QAAAS;AACF,GAA0B;AACjB,SAAAC;AAAA,IACL;AAAA,MACE,EAAE,MAAM,WAAW,MAAM,QAAQ;AAAA,MACjC,EAAE,MAAM,aAAa,MAAM,SAAS;AAAA,IACtC;AAAA,IACA,CAACV,GAAOS,CAAM;AAAA,EAAA;AAElB;"}
@@ -0,0 +1,2 @@
1
+ "use strict";const a=require("./generated-DgXPUgXl.cjs"),h=require("@wagmi/core"),r=require("viem"),y=require("./deployments-CIXw_WKk.cjs"),p=require("./Deployable/DeployableTargetWithRBAC.cjs"),w=require("./errors.cjs"),g=require("./utils.cjs"),o="0x6080604052348015600e575f80fd5b5060156019565b6078565b63409feecd198054600181161560365763f92ee8a95f526004601cfd5b8160c01c808260011c146073578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b611161806100855f395ff3fe608060405260043610610183575f3560e01c806354d1f13d116100d1578063e3f756de1161007c578063f2fde38b11610057578063f2fde38b14610446578063fe9fbb8014610459578063fee81cf414610478575f80fd5b8063e3f756de146103d8578063ec87621c1461041f578063f04e283e14610433575f80fd5b80638da5cb5b116100ac5780638da5cb5b14610362578063be4994f81461039a578063dcc21361146103b9575f80fd5b806354d1f13d1461033e578063715018a61461034657806375b238fc1461034e575f80fd5b806328d6183b11610131578063439fab911161010c578063439fab91146102d75780634a4ee7b1146102f6578063514e62fc14610309575f80fd5b806328d6183b1461023f5780632de94807146102795780634359d28a146102b8575f80fd5b80631c10893f116101615780631c10893f146101ef5780631cd64df4146102025780632569296214610237575f80fd5b806301ffc9a714610187578063141973b0146101bb578063183a4f6e146101dc575b5f80fd5b348015610192575f80fd5b506101a66101a1366004610d5f565b6104a9565b60405190151581526020015b60405180910390f35b3480156101c6575f80fd5b506101da6101d5366004610ded565b610504565b005b6101da6101ea366004610e59565b610637565b6101da6101fd366004610ea1565b610644565b34801561020d575f80fd5b506101a661021c366004610ea1565b638b78c6d8600c9081525f9290925260209091205481161490565b6101da61065a565b34801561024a575f80fd5b506040517f3d30a22c0000000000000000000000000000000000000000000000000000000081526020016101b2565b348015610284575f80fd5b506102aa610293366004610ecb565b638b78c6d8600c9081525f91909152602090205490565b6040519081526020016101b2565b3480156102c3575f80fd5b506101da6102d2366004610ded565b6106a7565b3480156102e2575f80fd5b506101da6102f1366004610f24565b6107a1565b6101da610304366004610ea1565b6108d0565b348015610314575f80fd5b506101a6610323366004610ea1565b638b78c6d8600c9081525f9290925260209091205416151590565b6101da6108e2565b6101da61091b565b348015610359575f80fd5b506102aa600281565b34801561036d575f80fd5b50638b78c6d8195460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101b2565b3480156103a5575f80fd5b506101da6103b4366004610ded565b61092e565b3480156103c4575f80fd5b506101da6103d3366004610ded565b6109cc565b3480156103e3575f80fd5b506101a66103f2366004610f63565b505073ffffffffffffffffffffffffffffffffffffffff165f9081526020819052604090205460ff161590565b34801561042a575f80fd5b506102aa600181565b6101da610441366004610ecb565b610a6a565b6101da610454366004610ecb565b610aa4565b348015610464575f80fd5b506101a6610473366004610ecb565b610aca565b348015610483575f80fd5b506102aa610492366004610ecb565b63389a75e1600c9081525f91909152602090205490565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f3d30a22c0000000000000000000000000000000000000000000000000000000014806104fe57506104fe82610b29565b92915050565b61050d33610aca565b610543576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82811461057c576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b838110156106305782828281811061059857610598610fb4565b90506020020160208101906105ad9190610fe1565b5f808787858181106105c1576105c1610fb4565b90506020020160208101906105d69190610ecb565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905560010161057e565b5050505050565b6106413382610b7e565b50565b61064c610b89565b6106568282610ba3565b5050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60026106b281610baf565b8382146106eb576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610799575f84848381811061070857610708610fb4565b905060200201602081019061071d9190610fe1565b905080151560010361075f5761075a87878481811061073e5761073e610fb4565b90506020020160208101906107539190610ecb565b6001610ba3565b610790565b61079087878481811061077457610774610fb4565b90506020020160208101906107899190610ecb565b6001610b7e565b506001016106ed565b505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf60113280546003825580156107f25760018160011c14303b106107e95763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f806108018486018661102d565b9150915061080e82610be0565b5f5b81518110156108935760015f8084848151811061082f5761082f610fb4565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff1682528101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101610810565b50505080156108cb576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b6108d8610b89565b6106568282610b7e565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610923610b89565b61092c5f610c28565b565b600261093981610baf565b838214610972576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610799576109c486868381811061099157610991610fb4565b90506020020160208101906109a69190610ecb565b8585848181106109b8576109b8610fb4565b90506020020135610ba3565b600101610974565b60026109d781610baf565b838214610a10576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8481101561079957610a62868683818110610a2f57610a2f610fb4565b9050602002016020810190610a449190610ecb565b858584818110610a5657610a56610fb4565b90506020020135610b7e565b600101610a12565b610a72610b89565b63389a75e1600c52805f526020600c208054421115610a9857636f5e88185f526004601cfd5b5f905561064181610c28565b610aac610b89565b8060601b610ac157637448fbae5f526004601cfd5b61064181610c28565b5f8173ffffffffffffffffffffffffffffffffffffffff16610aef638b78c6d8195490565b73ffffffffffffffffffffffffffffffffffffffff1614806104fe5750638b78c6d8600c9081525f839052602090205460031615156104fe565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fe2089f790000000000000000000000000000000000000000000000000000000014806104fe57506104fe82610c72565b61065682825f610d08565b638b78c6d81954331461092c576382b429005f526004601cfd5b61065682826001610d08565b638b78c6d81954331461064157638b78c6d8600c52335f52806020600c205416610641576382b429005f526004601cfd5b73ffffffffffffffffffffffffffffffffffffffff16638b78c6d819819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b638b78c6d819805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f6ab67a0d0000000000000000000000000000000000000000000000000000000014806104fe57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146104fe565b638b78c6d8600c52825f526020600c20805483811783610d29575080841681185b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f60208284031215610d6f575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610d9e575f80fd5b9392505050565b5f8083601f840112610db5575f80fd5b50813567ffffffffffffffff811115610dcc575f80fd5b6020830191508360208260051b8501011115610de6575f80fd5b9250929050565b5f805f8060408587031215610e00575f80fd5b843567ffffffffffffffff811115610e16575f80fd5b610e2287828801610da5565b909550935050602085013567ffffffffffffffff811115610e41575f80fd5b610e4d87828801610da5565b95989497509550505050565b5f60208284031215610e69575f80fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610641575f80fd5b8035610e9c81610e70565b919050565b5f8060408385031215610eb2575f80fd5b8235610ebd81610e70565b946020939093013593505050565b5f60208284031215610edb575f80fd5b8135610d9e81610e70565b5f8083601f840112610ef6575f80fd5b50813567ffffffffffffffff811115610f0d575f80fd5b602083019150836020828501011115610de6575f80fd5b5f8060208385031215610f35575f80fd5b823567ffffffffffffffff811115610f4b575f80fd5b610f5785828601610ee6565b90969095509350505050565b5f805f60408486031215610f75575f80fd5b8335610f8081610e70565b9250602084013567ffffffffffffffff811115610f9b575f80fd5b610fa786828701610ee6565b9497909650939450505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215610ff1575f80fd5b81358015158114610d9e575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f806040838503121561103e575f80fd5b823561104981610e70565b9150602083013567ffffffffffffffff811115611064575f80fd5b8301601f81018513611074575f80fd5b803567ffffffffffffffff81111561108e5761108e611000565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811067ffffffffffffffff821117156110d9576110d9611000565b6040529182526020818401810192908101888411156110f6575f80fd5b6020850194505b8385101561111c5761110e85610e91565b8152602094850194016110fd565b5080945050505050925092905056fea2646970667358221220693fef5ebd345c6186dd2eca2c237bba8f7f63fbc241dc656400c725c22ef67f64736f6c634300081a0033",t=class t extends p.DeployableTargetWithRBAC{constructor(){super(...arguments),this.abi=a.B}async owner(f){return await a.TP(this._config,{...this.optionallyAttachAccount(),...f,address:this.assertValidAddress(),args:[]})}async isAllowed(f,b){return await a.u_(this._config,{address:this.assertValidAddress(),args:[f,r.zeroHash],...this.optionallyAttachAccount(),...b})}async setDenied(f,b,c){return await this.awaitResult(this.setDeniedRaw(f,b,c))}async setDeniedRaw(f,b,c){const{request:e,result:d}=await a.D_(this._config,{address:this.assertValidAddress(),args:[f,b],...this.optionallyAttachAccount(),...c});return{hash:await a.O_(this._config,e),result:d}}buildParameters(f,b){var s;const[c,e]=this.validateDeploymentConfig(f,b),d=c;if(!d.owner||d.owner===r.zeroAddress){const i=e.account?e.account.address:e.config?h.getAccount(e.config).address:(s=this._account)==null?void 0:s.address;if(i)d.owner=i;else throw new w.DeployableUnknownOwnerProvidedError}return{abi:a.B,bytecode:o,args:[u(d)],...this.optionallyAttachAccount(e.account)}}};t.bases={31337:void 0,...y.SimpleDenyList},t.registryType=g.RegistryType.ALLOW_LIST;let n=t;function u({owner:l,denied:f}){return r.encodeAbiParameters([{type:"address",name:"owner"},{type:"address[]",name:"denied"}],[l,f])}exports.SimpleDenyList=n;exports.bytecode=o;exports.prepareSimpleDenyListPayload=u;
2
+ //# sourceMappingURL=SimpleDenyList-Cybtz7AK.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleDenyList-CsRXJPwm.cjs","sources":["../src/AllowLists/SimpleDenyList.ts"],"sourcesContent":["import {\n readSimpleAllowListOwner,\n readSimpleDenyListIsAllowed,\n simpleDenyListAbi,\n simulateSimpleDenyListSetDenied,\n writeSimpleDenyListSetDenied,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/allowlists/SimpleDenyList.sol/SimpleDenyList.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 { SimpleDenyList as SimpleDenyListBases } from '../../dist/deployments.json';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport { DeployableTargetWithRBAC } from '../Deployable/DeployableTargetWithRBAC';\nimport { DeployableUnknownOwnerProvidedError } from '../errors';\nimport {\n type GenericLog,\n type ReadParams,\n RegistryType,\n type WriteParams,\n} from '../utils';\n\nexport { simpleDenyListAbi };\n\n/**\n * Object representation of a {@link SimpleDenyList} initialization payload.\n *\n * @export\n * @interface SimpleDenyListPayload\n * @typedef {SimpleDenyListPayload}\n */\nexport interface SimpleDenyListPayload {\n /**\n * The allow list's owner\n *\n * @type {Address}\n */\n owner: Address;\n /**\n * List of denied addresses.\n *\n * @type {Address[]}\n */\n denied: Address[];\n}\n\n/**\n * A generic `viem.Log` event with support for `SimpleDenyList` event types.\n *\n * @export\n * @typedef {SimpleDenyListLog}\n * @template {ContractEventName<typeof simpleDenyListAbi>} [event=ContractEventName<\n * typeof simpleDenyListAbi\n * >]\n */\nexport type SimpleDenyListLog<\n event extends ContractEventName<typeof simpleDenyListAbi> = ContractEventName<\n typeof simpleDenyListAbi\n >,\n> = GenericLog<typeof simpleDenyListAbi, event>;\n\n/**\n * A simple implementation of an AllowList that implicitly allows all addresses except those explicitly added to the deny list\n *\n * @export\n * @class SimpleDenyList\n * @typedef {SimpleDenyList}\n * @extends {DeployableTargetWithRBAC<SimpleDenyListPayload>}\n */\nexport class SimpleDenyList<\n Payload = SimpleDenyListPayload,\n> extends DeployableTargetWithRBAC<\n Payload | undefined,\n typeof simpleDenyListAbi\n> {\n public override readonly abi = simpleDenyListAbi;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {Record<number, Address>}\n */\n public static override bases: Record<number, Address> = {\n 31337: import.meta.env.VITE_SIMPLE_DENYLIST_BASE,\n ...(SimpleDenyListBases 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} [params]\n * @returns {Promise<Address>} - The address of the owner\n */\n public async owner(params?: ReadParams): 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 (i.e. not denied)\n *\n * @public\n * @async\n * @param {Address} address - The address of the user\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} - True if the user is authorized\n */\n public async isAllowed(\n address: Address,\n params?: ReadParams,\n ): Promise<boolean> {\n return await readSimpleDenyListIsAllowed(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 denied status of a user. The length of the `users_` and `denied_` arrays must be the same. 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 denied status of each user\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setDenied(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.setDeniedRaw(addresses, allowed, params),\n );\n }\n\n /**\n * Set the denied status of a user. The length of the `users_` and `denied_` arrays must be the same. 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 denied status of each user\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async setDeniedRaw(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams,\n ) {\n const { request, result } = await simulateSimpleDenyListSetDenied(\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 writeSimpleDenyListSetDenied(this._config, request);\n return { hash, result };\n }\n\n /**\n * @inheritdoc\n *\n * @public\n * @param {?SimpleDenyListPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: Payload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [p, options] = this.validateDeploymentConfig(_payload, _options);\n const payload = p as SimpleDenyListPayload;\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: simpleDenyListAbi,\n bytecode: bytecode as Hex,\n args: [prepareSimpleDenyListPayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n\n/**\n * Given a {@link SimpleDenyListPayload}, properly encode the initialization payload.\n *\n * @param {SimpleDenyListPayload} param0\n * @param {Address} param0.owner - The allow list's owner\n * @param {Address[]} param0.denied - List of denied addresses.\n * @returns {Hex}\n */\nexport function prepareSimpleDenyListPayload({\n owner,\n denied,\n}: SimpleDenyListPayload) {\n return encodeAbiParameters(\n [\n { type: 'address', name: 'owner' },\n { type: 'address[]', name: 'denied' },\n ],\n [owner, denied],\n );\n}\n"],"names":["_SimpleDenyList","DeployableTargetWithRBAC","simpleDenyListAbi","params","readSimpleAllowListOwner","address","readSimpleDenyListIsAllowed","zeroHash","addresses","allowed","request","result","simulateSimpleDenyListSetDenied","writeSimpleDenyListSetDenied","_payload","_options","p","options","payload","zeroAddress","owner","getAccount","_a","DeployableUnknownOwnerProvidedError","bytecode","prepareSimpleDenyListPayload","SimpleDenyListBases","RegistryType","SimpleDenyList","denied","encodeAbiParameters"],"mappings":"qnaA8EaA,EAAN,MAAMA,UAEHC,EAAAA,wBAGR,CALK,aAAA,CAAA,MAAA,GAAA,SAAA,EAML,KAAyB,IAAMC,GAAA,CA6B/B,MAAa,MAAMC,EAAuC,CACjD,OAAA,MAAMC,EAAAA,GAAyB,KAAK,QAAS,CAClD,GAAG,KAAK,wBAAwB,EAEhC,GAAID,EACJ,QAAS,KAAK,mBAAmB,EACjC,KAAM,CAAC,CAAA,CACR,CACH,CAWA,MAAa,UACXE,EACAF,EACkB,CACX,OAAA,MAAMG,EAAAA,GAA4B,KAAK,QAAS,CACrD,QAAS,KAAK,mBAAmB,EACjC,KAAM,CAACD,EAASE,UAAQ,EACxB,GAAG,KAAK,wBAAwB,EAEhC,GAAIJ,CAAA,CACL,CACH,CAYA,MAAa,UACXK,EACAC,EACAN,EACA,CACA,OAAO,MAAM,KAAK,YAChB,KAAK,aAAaK,EAAWC,EAASN,CAAM,CAAA,CAEhD,CAYA,MAAa,aACXK,EACAC,EACAN,EACA,CACA,KAAM,CAAE,QAAAO,EAAS,OAAAC,CAAO,EAAI,MAAMC,EAAA,GAChC,KAAK,QACL,CACE,QAAS,KAAK,mBAAmB,EACjC,KAAM,CAACJ,EAAWC,CAAO,EACzB,GAAG,KAAK,wBAAwB,EAEhC,GAAIN,CACN,CAAA,EAGK,MAAA,CAAE,KADI,MAAMU,EAA6B,GAAA,KAAK,QAASH,CAAO,EACtD,OAAAC,EACjB,CAUgB,gBACdG,EACAC,EACyB,OACzB,KAAM,CAACC,EAAGC,CAAO,EAAI,KAAK,yBAAyBH,EAAUC,CAAQ,EAC/DG,EAAUF,EAChB,GAAI,CAACE,EAAQ,OAASA,EAAQ,QAAUC,EAAAA,YAAa,CACnD,MAAMC,EAAQH,EAAQ,QAClBA,EAAQ,QAAQ,QAChBA,EAAQ,OACNI,EAAA,WAAWJ,EAAQ,MAAM,EAAE,SAC3BK,EAAA,KAAK,WAAL,YAAAA,EAAe,QACrB,GAAIF,EACFF,EAAQ,MAAQE,MAEhB,OAAM,IAAIG,EAAoC,mCAElD,CACO,MAAA,CACL,IAAKrB,EAAA,EACL,SAAAsB,EACA,KAAM,CAACC,EAA6BP,CAAO,CAAC,EAC5C,GAAG,KAAK,wBAAwBD,EAAQ,OAAO,CAAA,CAEnD,CACF,EAvIEjB,EAAuB,MAAiC,CACtD,MAAO,OACP,GAAI0B,EAAA,cAAA,EASN1B,EAAuB,aAA6B2B,EAAa,aAAA,WAzB5D,IAAMC,EAAN5B,EA+JA,SAASyB,EAA6B,CAC3C,MAAAL,EACA,OAAAS,CACF,EAA0B,CACjB,OAAAC,EAAA,oBACL,CACE,CAAE,KAAM,UAAW,KAAM,OAAQ,EACjC,CAAE,KAAM,YAAa,KAAM,QAAS,CACtC,EACA,CAACV,EAAOS,CAAM,CAAA,CAElB"}
1
+ {"version":3,"file":"SimpleDenyList-Cybtz7AK.cjs","sources":["../src/AllowLists/SimpleDenyList.ts"],"sourcesContent":["import {\n readSimpleAllowListOwner,\n readSimpleDenyListIsAllowed,\n simpleDenyListAbi,\n simulateSimpleDenyListSetDenied,\n writeSimpleDenyListSetDenied,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/allowlists/SimpleDenyList.sol/SimpleDenyList.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 { SimpleDenyList as SimpleDenyListBases } from '../../dist/deployments.json';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport { DeployableTargetWithRBAC } from '../Deployable/DeployableTargetWithRBAC';\nimport { DeployableUnknownOwnerProvidedError } from '../errors';\nimport {\n type GenericLog,\n type ReadParams,\n RegistryType,\n type WriteParams,\n} from '../utils';\n\nexport { simpleDenyListAbi };\n\n/**\n * Object representation of a {@link SimpleDenyList} initialization payload.\n *\n * @export\n * @interface SimpleDenyListPayload\n * @typedef {SimpleDenyListPayload}\n */\nexport interface SimpleDenyListPayload {\n /**\n * The allow list's owner\n *\n * @type {Address}\n */\n owner: Address;\n /**\n * List of denied addresses.\n *\n * @type {Address[]}\n */\n denied: Address[];\n}\n\n/**\n * A generic `viem.Log` event with support for `SimpleDenyList` event types.\n *\n * @export\n * @typedef {SimpleDenyListLog}\n * @template {ContractEventName<typeof simpleDenyListAbi>} [event=ContractEventName<\n * typeof simpleDenyListAbi\n * >]\n */\nexport type SimpleDenyListLog<\n event extends ContractEventName<typeof simpleDenyListAbi> = ContractEventName<\n typeof simpleDenyListAbi\n >,\n> = GenericLog<typeof simpleDenyListAbi, event>;\n\n/**\n * A simple implementation of an AllowList that implicitly allows all addresses except those explicitly added to the deny list\n *\n * @export\n * @class SimpleDenyList\n * @typedef {SimpleDenyList}\n * @extends {DeployableTargetWithRBAC<SimpleDenyListPayload>}\n */\nexport class SimpleDenyList<\n Payload = SimpleDenyListPayload,\n> extends DeployableTargetWithRBAC<\n Payload | undefined,\n typeof simpleDenyListAbi\n> {\n public override readonly abi = simpleDenyListAbi;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {Record<number, Address>}\n */\n public static override bases: Record<number, Address> = {\n 31337: import.meta.env.VITE_SIMPLE_DENYLIST_BASE,\n ...(SimpleDenyListBases 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} [params]\n * @returns {Promise<Address>} - The address of the owner\n */\n public async owner(params?: ReadParams): 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 (i.e. not denied)\n *\n * @public\n * @async\n * @param {Address} address - The address of the user\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} - True if the user is authorized\n */\n public async isAllowed(\n address: Address,\n params?: ReadParams,\n ): Promise<boolean> {\n return await readSimpleDenyListIsAllowed(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 denied status of a user. The length of the `users_` and `denied_` arrays must be the same. 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 denied status of each user\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setDenied(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.setDeniedRaw(addresses, allowed, params),\n );\n }\n\n /**\n * Set the denied status of a user. The length of the `users_` and `denied_` arrays must be the same. 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 denied status of each user\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async setDeniedRaw(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams,\n ) {\n const { request, result } = await simulateSimpleDenyListSetDenied(\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 writeSimpleDenyListSetDenied(this._config, request);\n return { hash, result };\n }\n\n /**\n * @inheritdoc\n *\n * @public\n * @param {?SimpleDenyListPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: Payload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [p, options] = this.validateDeploymentConfig(_payload, _options);\n const payload = p as SimpleDenyListPayload;\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: simpleDenyListAbi,\n bytecode: bytecode as Hex,\n args: [prepareSimpleDenyListPayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n\n/**\n * Given a {@link SimpleDenyListPayload}, properly encode the initialization payload.\n *\n * @param {SimpleDenyListPayload} param0\n * @param {Address} param0.owner - The allow list's owner\n * @param {Address[]} param0.denied - List of denied addresses.\n * @returns {Hex}\n */\nexport function prepareSimpleDenyListPayload({\n owner,\n denied,\n}: SimpleDenyListPayload) {\n return encodeAbiParameters(\n [\n { type: 'address', name: 'owner' },\n { type: 'address[]', name: 'denied' },\n ],\n [owner, denied],\n );\n}\n"],"names":["_SimpleDenyList","DeployableTargetWithRBAC","simpleDenyListAbi","params","readSimpleAllowListOwner","address","readSimpleDenyListIsAllowed","zeroHash","addresses","allowed","request","result","simulateSimpleDenyListSetDenied","writeSimpleDenyListSetDenied","_payload","_options","p","options","payload","zeroAddress","owner","getAccount","_a","DeployableUnknownOwnerProvidedError","bytecode","prepareSimpleDenyListPayload","SimpleDenyListBases","RegistryType","SimpleDenyList","denied","encodeAbiParameters"],"mappings":"ysSA8EaA,EAAN,MAAMA,UAEHC,EAAAA,wBAGR,CALK,aAAA,CAAA,MAAA,GAAA,SAAA,EAML,KAAyB,IAAMC,GAAA,CA6B/B,MAAa,MAAMC,EAAuC,CACjD,OAAA,MAAMC,EAAAA,GAAyB,KAAK,QAAS,CAClD,GAAG,KAAK,wBAAwB,EAEhC,GAAID,EACJ,QAAS,KAAK,mBAAmB,EACjC,KAAM,CAAC,CAAA,CACR,CACH,CAWA,MAAa,UACXE,EACAF,EACkB,CACX,OAAA,MAAMG,EAAAA,GAA4B,KAAK,QAAS,CACrD,QAAS,KAAK,mBAAmB,EACjC,KAAM,CAACD,EAASE,UAAQ,EACxB,GAAG,KAAK,wBAAwB,EAEhC,GAAIJ,CAAA,CACL,CACH,CAYA,MAAa,UACXK,EACAC,EACAN,EACA,CACA,OAAO,MAAM,KAAK,YAChB,KAAK,aAAaK,EAAWC,EAASN,CAAM,CAAA,CAEhD,CAYA,MAAa,aACXK,EACAC,EACAN,EACA,CACA,KAAM,CAAE,QAAAO,EAAS,OAAAC,CAAO,EAAI,MAAMC,EAAA,GAChC,KAAK,QACL,CACE,QAAS,KAAK,mBAAmB,EACjC,KAAM,CAACJ,EAAWC,CAAO,EACzB,GAAG,KAAK,wBAAwB,EAEhC,GAAIN,CACN,CAAA,EAGK,MAAA,CAAE,KADI,MAAMU,EAA6B,GAAA,KAAK,QAASH,CAAO,EACtD,OAAAC,EACjB,CAUgB,gBACdG,EACAC,EACyB,OACzB,KAAM,CAACC,EAAGC,CAAO,EAAI,KAAK,yBAAyBH,EAAUC,CAAQ,EAC/DG,EAAUF,EAChB,GAAI,CAACE,EAAQ,OAASA,EAAQ,QAAUC,EAAAA,YAAa,CACnD,MAAMC,EAAQH,EAAQ,QAClBA,EAAQ,QAAQ,QAChBA,EAAQ,OACNI,EAAA,WAAWJ,EAAQ,MAAM,EAAE,SAC3BK,EAAA,KAAK,WAAL,YAAAA,EAAe,QACrB,GAAIF,EACFF,EAAQ,MAAQE,MAEhB,OAAM,IAAIG,EAAoC,mCAElD,CACO,MAAA,CACL,IAAKrB,EAAA,EACL,SAAAsB,EACA,KAAM,CAACC,EAA6BP,CAAO,CAAC,EAC5C,GAAG,KAAK,wBAAwBD,EAAQ,OAAO,CAAA,CAEnD,CACF,EAvIEjB,EAAuB,MAAiC,CACtD,MAAO,OACP,GAAI0B,EAAA,cAAA,EASN1B,EAAuB,aAA6B2B,EAAa,aAAA,WAzB5D,IAAMC,EAAN5B,EA+JA,SAASyB,EAA6B,CAC3C,MAAAL,EACA,OAAAS,CACF,EAA0B,CACjB,OAAAC,EAAA,oBACL,CACE,CAAE,KAAM,UAAW,KAAM,OAAQ,EACjC,CAAE,KAAM,YAAa,KAAM,QAAS,CACtC,EACA,CAACV,EAAOS,CAAM,CAAA,CAElB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../generated-DtYPHhtX.cjs"),r=require("viem"),p=require("viem/accounts"),g=require("../deployments-DoIOqxco.cjs"),A=require("../Deployable/DeployableTarget.cjs"),V=require("../utils.cjs"),w="0x610120604052348015610010575f80fd5b503073ffffffffffffffffffffffffffffffffffffffff16608081815250504660a0818152505060608061004861013960201b60201c565b6100635761005a61014160201b60201c565b80925081935050505b5f61007261013960201b60201c565b610083578280519060200120610087565b5f801b5b90505f61009861013960201b60201c565b6100a95782805190602001206100ad565b5f801b5b90508160c081815250508060e081815250505f6100ce61013960201b60201c565b610118576040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815283602082015282604082015246606082015230608082015260a081209150505b80610100818152505050505050506101346101b860201b60201c565b61024d565b5f6001905090565b6060806040518060400160405280601681526020017f4c696d697465645369676e657256616c696461746f720000000000000000000081525091506040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525090509091565b5f6101c761022460201b60201c565b9050805460018116156101e15763f92ee8a95f526004601cfd5b8160c01c808260011c1461021f578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b60805160a05160c05160e0516101005161235761028a5f395f610fda01525f61128101525f61125e01525f6112f001525f61131401526123575ff3fe608060405260043610610113575f3560e01c8063715018a61161009f578063ce5c134f11610063578063ce5c134f14610351578063d3de6e751461037b578063f04e283e146103b7578063f2fde38b146103d3578063fee81cf4146103ef57610113565b8063715018a614610289578063736c0d5b1461029357806384b0196e146102cf5780638da5cb5b146102ff578063a1d2756f1461032957610113565b80632f9e058b116100e65780632f9e058b146101c35780634359d28a146101ff578063439fab911461022757806354d1f13d1461024f578063703b69001461025957610113565b806301ffc9a7146101175780630668e9d414610153578063256929621461018f57806328d6183b14610199575b5f80fd5b348015610122575f80fd5b5061013d60048036038101906101389190611505565b61042b565b60405161014a919061154a565b60405180910390f35b34801561015e575f80fd5b50610179600480360381019061017491906115f0565b6104a4565b6040516101869190611658565b60405180910390f35b6101976104d9565b005b3480156101a4575f80fd5b506101ad61052a565b6040516101ba9190611680565b60405180910390f35b3480156101ce575f80fd5b506101e960048036038101906101e491906116c3565b610551565b6040516101f691906116fd565b60405180910390f35b34801561020a575f80fd5b50610225600480360381019061022091906117cc565b610566565b005b348015610232575f80fd5b5061024d6004803603810190610248919061189f565b61066f565b005b6102576107f1565b005b610273600480360381019061026e91906118ea565b61082a565b604051610280919061154a565b60405180910390f35b61029161088f565b005b34801561029e575f80fd5b506102b960048036038101906102b4919061196e565b6108a2565b6040516102c6919061154a565b60405180910390f35b3480156102da575f80fd5b506102e36108be565b6040516102f69796959493929190611b09565b60405180910390f35b34801561030a575f80fd5b50610313610909565b6040516103209190611b8b565b60405180910390f35b348015610334575f80fd5b5061034f600480360381019061034a919061196e565b610931565b005b34801561035c575f80fd5b5061036561097c565b60405161037291906116fd565b60405180910390f35b348015610386575f80fd5b506103a1600480360381019061039c9190611d02565b610982565b6040516103ae9190611658565b60405180910390f35b6103d160048036038101906103cc919061196e565b6109eb565b005b6103ed60048036038101906103e8919061196e565b610a29565b005b3480156103fa575f80fd5b506104156004803603810190610410919061196e565b610a52565b60405161042291906116fd565b60405180910390f35b5f7fc8ebc758000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061049d575061049c82610a6b565b5b9050919050565b5f8383836040516020016104ba93929190611de7565b6040516020818303038152906040528051906020012090509392505050565b5f6104e2610ae4565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7fc8ebc75800000000000000000000000000000000000000000000000000000000905090565b6001602052805f5260405f205f915090505481565b61056e610aee565b8181905084849050146105ad576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84849050811015610668578282828181106105cd576105cc611e23565b5b90506020020160208101906105e29190611e7a565b5f808787858181106105f7576105f6611e23565b5b905060200201602081019061060c919061196e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506105af565b5050505050565b5f610678610b25565b905080546003825580156106aa5760018160011c14303b106106a15763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f805f85858101906106bd9190611fa0565b9250925092506106e6835f815181106106d9576106d8611e23565b5b6020026020010151610b4e565b806002819055505f5b83518110156107735760015f8086848151811061070f5761070e611e23565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506106ef565b508160045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505080156107ec576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f610836868686610c24565b61087757836040517f059b704500000000000000000000000000000000000000000000000000000000815260040161086e9190611b8b565b60405180910390fd5b6108848686868686610c8b565b905095945050505050565b610897610aee565b6108a05f610e7e565b565b5f602052805f5260405f205f915054906101000a900460ff1681565b5f6060805f805f60607f0f0000000000000000000000000000000000000000000000000000000000000096506108f2610f44565b809650819750505046935030925090919293949596565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b610939610aee565b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60025481565b5f6109e17ffea51d5bd45bcd3c2ecc3679b43a3b80b0bd0923f8c16f822455b8cdecd9852f86868686805190602001206040516020016109c695949392919061201b565b60405160208183030381529060405280519060200120610fbb565b9050949350505050565b6109f3610aee565b63389a75e1600c52805f526020600c208054421115610a1957636f5e88185f526004601cfd5b5f815550610a2681610e7e565b50565b610a31610aee565b8060601b610a4657637448fbae5f526004601cfd5b610a4f81610e7e565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fc8ebc758000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610add5750610adc82611037565b5b9050919050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610b23576382b429005f526004601cfd5b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610b566110b0565b15610bce577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610b9057630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610c21565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f80610c318585856104a4565b90505f6001805f8481526020019081526020015f2054610c519190612099565b9050600254811115610c67575f92505050610c84565b8060015f8481526020019081526020015f20819055506001925050505b9392505050565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d12576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8383810190610d229190612159565b90505f815f0151806020019051810190610d3c91906122b3565b90505f610d53898360400151898660200151610982565b905087826040015160ff1611610da6578160400151886040517f17c66bc7000000000000000000000000000000000000000000000000000000008152600401610d9d9291906122fa565b60405180910390fd5b5f80835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610e28576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e3e818960036110b49092919063ffffffff16565b610e70818360200151845f015173ffffffffffffffffffffffffffffffffffffffff166111199092919063ffffffff16565b935050505095945050505050565b610e866110b0565b15610eeb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610f41565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b6060806040518060400160405280601681526020017f4c696d697465645369676e657256616c696461746f720000000000000000000081525091506040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525090509091565b5f610fc461121c565b15610fd857610fd1611224565b9050611014565b7f000000000000000000000000000000000000000000000000000000000000000090506110036112ec565b1561101357611010611224565b90505b5b6719010000000000005f5280601a5281603a52604260182090505f603a52919050565b5f7fb8ce7b22000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110a957506110a882611344565b5b9050919050565b5f90565b5f633f57fc5c60e01b90505f634de1225a60e01b905060078311156110df57815f528260045260245ffd5b84602052835f5260405f206001841b81541880851c600116600118801561110c57835f528560045260245ffd5b8183555050505050505050565b5f8360601b60601c9350831561121557604051835f5260208301516040526040835103611186576040830151601b8160ff1c016020528060011b60011c6060526020600160805f60015afa805187183d151761118357600193505f60605282604052505050611215565b50505b60418351036111cc5760608301515f1a60205260408301516060526020600160805f60015afa805186183d15176111ca57600192505f606052816040525050611215565b505b5f60605280604052631626ba7e60e01b808252846004830152602482016040815284516020018060448501828860045afa5060208260443d01868b5afa83835114169450505050505b9392505050565b5f6001905090565b5f8061122e61121c565b1561125c575f8061123d610f44565b91509150818051906020012093508080519060200120925050506112a3565b7f000000000000000000000000000000000000000000000000000000000000000091507f000000000000000000000000000000000000000000000000000000000000000090505b6040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815282602082015281604082015246606082015230608082015260a081209250505090565b5f807f000000000000000000000000000000000000000000000000000000000000000090505f7f0000000000000000000000000000000000000000000000000000000000000000905080301482461416159250505090565b5f7f5912b89c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806113b657506113b5826113bd565b5b9050919050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061142f575061142e82611436565b5b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6114e4816114b0565b81146114ee575f80fd5b50565b5f813590506114ff816114db565b92915050565b5f6020828403121561151a576115196114a8565b5b5f611527848285016114f1565b91505092915050565b5f8115159050919050565b61154481611530565b82525050565b5f60208201905061155d5f83018461153b565b92915050565b5f819050919050565b61157581611563565b811461157f575f80fd5b50565b5f813590506115908161156c565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6115bf82611596565b9050919050565b6115cf816115b5565b81146115d9575f80fd5b50565b5f813590506115ea816115c6565b92915050565b5f805f60608486031215611607576116066114a8565b5b5f61161486828701611582565b935050602061162586828701611582565b9250506040611636868287016115dc565b9150509250925092565b5f819050919050565b61165281611640565b82525050565b5f60208201905061166b5f830184611649565b92915050565b61167a816114b0565b82525050565b5f6020820190506116935f830184611671565b92915050565b6116a281611640565b81146116ac575f80fd5b50565b5f813590506116bd81611699565b92915050565b5f602082840312156116d8576116d76114a8565b5b5f6116e5848285016116af565b91505092915050565b6116f781611563565b82525050565b5f6020820190506117105f8301846116ee565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261173757611736611716565b5b8235905067ffffffffffffffff8111156117545761175361171a565b5b6020830191508360208202830111156117705761176f61171e565b5b9250929050565b5f8083601f84011261178c5761178b611716565b5b8235905067ffffffffffffffff8111156117a9576117a861171a565b5b6020830191508360208202830111156117c5576117c461171e565b5b9250929050565b5f805f80604085870312156117e4576117e36114a8565b5b5f85013567ffffffffffffffff811115611801576118006114ac565b5b61180d87828801611722565b9450945050602085013567ffffffffffffffff8111156118305761182f6114ac565b5b61183c87828801611777565b925092505092959194509250565b5f8083601f84011261185f5761185e611716565b5b8235905067ffffffffffffffff81111561187c5761187b61171a565b5b6020830191508360018202830111156118985761189761171e565b5b9250929050565b5f80602083850312156118b5576118b46114a8565b5b5f83013567ffffffffffffffff8111156118d2576118d16114ac565b5b6118de8582860161184a565b92509250509250929050565b5f805f805f60808688031215611903576119026114a8565b5b5f61191088828901611582565b955050602061192188828901611582565b9450506040611932888289016115dc565b935050606086013567ffffffffffffffff811115611953576119526114ac565b5b61195f8882890161184a565b92509250509295509295909350565b5f60208284031215611983576119826114a8565b5b5f611990848285016115dc565b91505092915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6119cd81611999565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611a15826119d3565b611a1f81856119dd565b9350611a2f8185602086016119ed565b611a38816119fb565b840191505092915050565b611a4c816115b5565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611a8481611563565b82525050565b5f611a958383611a7b565b60208301905092915050565b5f602082019050919050565b5f611ab782611a52565b611ac18185611a5c565b9350611acc83611a6c565b805f5b83811015611afc578151611ae38882611a8a565b9750611aee83611aa1565b925050600181019050611acf565b5085935050505092915050565b5f60e082019050611b1c5f83018a6119c4565b8181036020830152611b2e8189611a0b565b90508181036040830152611b428188611a0b565b9050611b5160608301876116ee565b611b5e6080830186611a43565b611b6b60a0830185611649565b81810360c0830152611b7d8184611aad565b905098975050505050505050565b5f602082019050611b9e5f830184611a43565b92915050565b5f60ff82169050919050565b611bb981611ba4565b8114611bc3575f80fd5b50565b5f81359050611bd481611bb0565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611c14826119fb565b810181811067ffffffffffffffff82111715611c3357611c32611bde565b5b80604052505050565b5f611c4561149f565b9050611c518282611c0b565b919050565b5f67ffffffffffffffff821115611c7057611c6f611bde565b5b611c79826119fb565b9050602081019050919050565b828183375f83830152505050565b5f611ca6611ca184611c56565b611c3c565b905082815260208101848484011115611cc257611cc1611bda565b5b611ccd848285611c86565b509392505050565b5f82601f830112611ce957611ce8611716565b5b8135611cf9848260208601611c94565b91505092915050565b5f805f8060808587031215611d1a57611d196114a8565b5b5f611d2787828801611582565b9450506020611d3887828801611bc6565b9350506040611d49878288016115dc565b925050606085013567ffffffffffffffff811115611d6a57611d696114ac565b5b611d7687828801611cd5565b91505092959194509250565b5f819050919050565b611d9c611d9782611563565b611d82565b82525050565b5f8160601b9050919050565b5f611db882611da2565b9050919050565b5f611dc982611dae565b9050919050565b611de1611ddc826115b5565b611dbf565b82525050565b5f611df28286611d8b565b602082019150611e028285611d8b565b602082019150611e128284611dd0565b601482019150819050949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b611e5981611530565b8114611e63575f80fd5b50565b5f81359050611e7481611e50565b92915050565b5f60208284031215611e8f57611e8e6114a8565b5b5f611e9c84828501611e66565b91505092915050565b5f67ffffffffffffffff821115611ebf57611ebe611bde565b5b602082029050602081019050919050565b5f611ee2611edd84611ea5565b611c3c565b90508083825260208201905060208402830185811115611f0557611f0461171e565b5b835b81811015611f2e5780611f1a88826115dc565b845260208401935050602081019050611f07565b5050509392505050565b5f82601f830112611f4c57611f4b611716565b5b8135611f5c848260208601611ed0565b91505092915050565b5f611f6f82611596565b9050919050565b611f7f81611f65565b8114611f89575f80fd5b50565b5f81359050611f9a81611f76565b92915050565b5f805f60608486031215611fb757611fb66114a8565b5b5f84013567ffffffffffffffff811115611fd457611fd36114ac565b5b611fe086828701611f38565b9350506020611ff186828701611f8c565b925050604061200286828701611582565b9150509250925092565b61201581611ba4565b82525050565b5f60a08201905061202e5f830188611649565b61203b60208301876116ee565b612048604083018661200c565b6120556060830185611a43565b6120626080830184611649565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6120a382611563565b91506120ae83611563565b92508282019050808211156120c6576120c561206c565b5b92915050565b5f80fd5b5f80fd5b5f604082840312156120e9576120e86120cc565b5b6120f36040611c3c565b90505f82013567ffffffffffffffff811115612112576121116120d0565b5b61211e84828501611cd5565b5f83015250602082013567ffffffffffffffff811115612141576121406120d0565b5b61214d84828501611cd5565b60208301525092915050565b5f6020828403121561216e5761216d6114a8565b5b5f82013567ffffffffffffffff81111561218b5761218a6114ac565b5b612197848285016120d4565b91505092915050565b5f815190506121ae816115c6565b92915050565b5f6121c66121c184611c56565b611c3c565b9050828152602081018484840111156121e2576121e1611bda565b5b6121ed8482856119ed565b509392505050565b5f82601f83011261220957612208611716565b5b81516122198482602086016121b4565b91505092915050565b5f8151905061223081611bb0565b92915050565b5f6060828403121561224b5761224a6120cc565b5b6122556060611c3c565b90505f612264848285016121a0565b5f83015250602082015167ffffffffffffffff811115612287576122866120d0565b5b612293848285016121f5565b60208301525060406122a784828501612222565b60408301525092915050565b5f602082840312156122c8576122c76114a8565b5b5f82015167ffffffffffffffff8111156122e5576122e46114ac565b5b6122f184828501612236565b91505092915050565b5f60408201905061230d5f83018561200c565b61231a60208301846116ee565b939250505056fea2646970667358221220a6a2f680d6474f5dfa7720a37994a4015b61738d0d41bbea1eee6064131ca86c64736f6c634300081a0033",i=class i extends A.DeployableTarget{constructor(){super(...arguments),this.abi=e.V}async signers(f,b){return await e.iC(this._config,{address:this.assertValidAddress(),args:[f],...b})}async hashSignerData(f,b){return await e.YO(this._config,{address:this.assertValidAddress(),args:[f.boostId,f.incentiveQuantity,f.claimant,f.incentiveData],...b})}async validate(f,b){return await this.awaitResult(this.validateRaw(f,b))}async validateRaw(f,b){const{request:a,result:c}=await e.MC(this._config,{address:this.assertValidAddress(),args:[f.boostId,f.incentiveId,f.claimant,f.claimData],...this.optionallyAttachAccount(),...b});return{hash:await e.bC(this._config,a),result:c}}async setAuthorized(f,b,a){return await this.awaitResult(this.setAuthorizedRaw(f,b,a))}async setAuthorizedRaw(f,b,a){const{request:c,result:t}=await e.IC(this._config,{address:this.assertValidAddress(),args:[f,b],...this.optionallyAttachAccount(),...a});return{hash:await e.dC(this._config,c),result:t}}async setValidatorCallerRaw(f,b){const{request:a,result:c}=await e.hC(this._config,{address:this.assertValidAddress(),args:[f],...this.optionallyAttachAccount(),...b});return{hash:await e.cC(this._config,a),result:c}}async setValidatorCaller(f,b){return await this.awaitResult(this.setValidatorCallerRaw(f,b))}async encodeClaimData(f){return await o({...f,validator:this.assertValidAddress()})}buildParameters(f,b){const[a,c]=this.validateDeploymentConfig(f,b);return{abi:e.V,bytecode:w,args:[u(a)],...this.optionallyAttachAccount(c.account)}}};i.bases={31337:void 0,...g.SignerValidator},i.registryType=V.RegistryType.VALIDATOR;let s=i;async function o({signer:d,incentiveData:f,chainId:b,validator:a,incentiveQuantity:c,claimant:t,boostId:n}){const y={domain:{name:"LimitedSignerValidator",version:"1",chainId:b,verifyingContract:a},types:{SignerValidatorData:[{name:"boostId",type:"uint256"},{name:"incentiveQuantity",type:"uint8"},{name:"claimant",type:"address"},{name:"incentiveData",type:"bytes"}]},primaryType:"SignerValidatorData",message:{boostId:n,incentiveQuantity:c,claimant:t,incentiveData:f}},m=await p.signTypedData({...y,privateKey:d.key}),h=l({signer:d.account,signature:m,incentiveQuantity:c});return r.encodeAbiParameters([{type:"tuple",name:"BoostClaimData",components:[{type:"bytes",name:"validatorData"},{type:"bytes",name:"incentiveData"}]}],[{validatorData:h,incentiveData:f}])}function l({signer:d,signature:f,incentiveQuantity:b}){return r.encodeAbiParameters([{type:"tuple",name:"SignerValidatorInputParams",components:[{type:"address",name:"signer"},{type:"bytes",name:"signature"},{type:"uint8",name:"incentiveQuantity"}]}],[{signer:d,signature:f,incentiveQuantity:b}])}function u({signers:d,validatorCaller:f,maxClaimCount:b}){return r.encodeAbiParameters([{type:"address[]",name:"signers"},{type:"address",name:"validatorCaller"},{type:"uint256",name:"maxClaimCount"}],[d,f,BigInt(b)])}exports.limitedSignerValidatorAbi=e.V;exports.LimitedSignerValidator=s;exports.prepareLimitedSignerValidatorClaimDataPayload=o;exports.prepareLimitedSignerValidatorInputParams=l;exports.prepareLimitedSignerValidatorPayload=u;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../generated-DgXPUgXl.cjs"),r=require("viem"),p=require("viem/accounts"),g=require("../deployments-CIXw_WKk.cjs"),A=require("../Deployable/DeployableTarget.cjs"),w=require("../utils.cjs"),D="0x610120604052348015610010575f80fd5b50306080524660a0525f60c081905260e081905261010052610030610035565b610096565b63409feecd19805460018116156100535763f92ee8a95f526004601cfd5b8160c01c808260011c14610091578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60805160a05160c05160e0516101005161194d6100c45f395f50505f50505f50505f50505f505061194d5ff3fe60806040526004361061013d575f3560e01c8063715018a6116100bb578063ce5c134f11610071578063f04e283e11610057578063f04e283e1461036d578063f2fde38b14610380578063fee81cf414610393575f80fd5b8063ce5c134f14610339578063d3de6e751461034e575f80fd5b806384b0196e116100a157806384b0196e146102a05780638da5cb5b146102c7578063a1d2756f1461031a575f80fd5b8063715018a61461026a578063736c0d5b14610272575f80fd5b80632f9e058b11610110578063439fab91116100f6578063439fab911461023057806354d1f13d1461024f578063703b690014610257575f80fd5b80632f9e058b146101e65780634359d28a14610211575f80fd5b806301ffc9a7146101415780630668e9d41461017557806325692962146101a257806328d6183b146101ac575b5f80fd5b34801561014c575f80fd5b5061016061015b36600461110d565b6103c4565b60405190151581526020015b60405180910390f35b348015610180575f80fd5b5061019461018f36600461116d565b61041f565b60405190815260200161016c565b6101aa610480565b005b3480156101b7575f80fd5b506040517fc8ebc75800000000000000000000000000000000000000000000000000000000815260200161016c565b3480156101f1575f80fd5b506101946102003660046111a3565b60016020525f908152604090205481565b34801561021c575f80fd5b506101aa61022b366004611202565b6104cd565b34801561023b575f80fd5b506101aa61024a3660046112ac565b6105c9565b6101aa61075e565b6101606102653660046112eb565b610797565b6101aa61080d565b34801561027d575f80fd5b5061016061028c366004611350565b5f6020819052908152604090205460ff1681565b3480156102ab575f80fd5b506102b4610820565b60405161016c97969594939291906113b7565b3480156102d2575f80fd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275460405173ffffffffffffffffffffffffffffffffffffffff909116815260200161016c565b348015610325575f80fd5b506101aa610334366004611350565b6108c8565b348015610344575f80fd5b5061019460025481565b348015610359575f80fd5b506101946103683660046115c0565b610917565b6101aa61037b366004611350565b6109aa565b6101aa61038e366004611350565b6109e7565b34801561039e575f80fd5b506101946103ad366004611350565b63389a75e1600c9081525f91909152602090205490565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fc8ebc758000000000000000000000000000000000000000000000000000000001480610419575061041982610a0d565b92915050565b6040805160208101859052908101839052606082811b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016908201525f906074016040516020818303038152906040528051906020012090505b9392505050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b6104d5610a62565b82811461050e576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b838110156105c25782828281811061052a5761052a611628565b905060200201602081019061053f9190611655565b5f8087878581811061055357610553611628565b90506020020160208101906105689190611350565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101610510565b5050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf601132805460038255801561061a5760018160011c14303b106106115763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f808061062a85870187611684565b925092509250610652835f8151811061064557610645611628565b6020026020010151610a97565b60028190555f5b83518110156106dc5760015f8086848151811061067857610678611628565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff1682528101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101610659565b5050600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055508015610759576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f6107a3868686610afa565b6107f6576040517f059b704500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024015b60405180910390fd5b6108038686868686610b54565b9695505050505050565b610815610a62565b61081e5f610cdc565b565b7f0f000000000000000000000000000000000000000000000000000000000000006060805f8080836108b6604080518082018252601681527f4c696d697465645369676e657256616c696461746f72000000000000000000006020808301919091528251808401909352600183527f31000000000000000000000000000000000000000000000000000000000000009083015291565b97989097965046955030945091925090565b6108d0610a62565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b8051602080830191909120604080517ffea51d5bd45bcd3c2ecc3679b43a3b80b0bd0923f8c16f822455b8cdecd9852f93810193909352820186905260ff8516606083015273ffffffffffffffffffffffffffffffffffffffff8416608083015260a08201525f906109a19060c00160405160208183030381529060405280519060200120610d41565b95945050505050565b6109b2610a62565b63389a75e1600c52805f526020600c2080544211156109d857636f5e88185f526004601cfd5b5f90556109e481610cdc565b50565b6109ef610a62565b8060601b610a0457637448fbae5f526004601cfd5b6109e481610cdc565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fc8ebc758000000000000000000000000000000000000000000000000000000001480610419575061041982610d6d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754331461081e576382b429005f526004601cfd5b73ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b5f80610b0785858561041f565b5f8181526001602081905260408220549293509091610b2591611754565b9050600254811115610b3b575f92505050610479565b5f91825260016020819052604090922055949350505050565b6004545f9073ffffffffffffffffffffffffffffffffffffffff163314610ba7576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610bb48385018561178c565b90505f815f0151806020019051810190610bce919061184c565b90505f610be5898360400151898660200151610917565b905087826040015160ff1611610c395760408083015190517f17c66bc700000000000000000000000000000000000000000000000000000000815260ff9091166004820152602481018990526044016107ed565b815173ffffffffffffffffffffffffffffffffffffffff165f9081526020819052604090205460ff16610c98576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ca46003828a610dc2565b60208201518251610ccf9173ffffffffffffffffffffffffffffffffffffffff909116908390610e50565b9998505050505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b5f610d4a610f5a565b6719010000000000005f908152601a91909152603a928352604260182092525090565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fb8ce7b22000000000000000000000000000000000000000000000000000000001480610419575061041982611027565b7f3f57fc5c000000000000000000000000000000000000000000000000000000007f4de1225a000000000000000000000000000000000000000000000000000000006007831115610e1957815f528260045260245ffd5b84602052835f5260405f206001841b81541880851c6001166001188015610e4657835f528560045260245ffd5b5090555050505050565b73ffffffffffffffffffffffffffffffffffffffff909216915f831561047957604051835f5260208301516040526040835103610ec9576040830151601b8160ff1c016020528060011b60011c606052506020600160805f60015afa805186183d1517610ec757505f606052604052506001610479565b505b6041835103610f0c5760608301515f1a60205260408301516060526020600160805f60015afa805186183d1517610f0a57505f606052604052506001610479565b505b5f60605280604052631626ba7e60e01b808252846004830152602482016040815284516020018060448501828860045afa505060208160443d01858a5afa9051909114169150509392505050565b5f805f80610fcc604080518082018252601681527f4c696d697465645369676e657256616c696461746f72000000000000000000006020808301919091528251808401909352600183527f31000000000000000000000000000000000000000000000000000000000000009083015291565b8151602092830120815191830191909120604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8152938401929092529082015246606082015230608082015260a09020949350505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f5912b89c0000000000000000000000000000000000000000000000000000000014806104195750610419825f7fffffffff0000000000000000000000000000000000000000000000000000000082167f6ab67a0d00000000000000000000000000000000000000000000000000000000148061041957507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610419565b5f6020828403121561111d575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610479575f80fd5b73ffffffffffffffffffffffffffffffffffffffff811681146109e4575f80fd5b5f805f6060848603121561117f575f80fd5b833592506020840135915060408401356111988161114c565b809150509250925092565b5f602082840312156111b3575f80fd5b5035919050565b5f8083601f8401126111ca575f80fd5b50813567ffffffffffffffff8111156111e1575f80fd5b6020830191508360208260051b85010111156111fb575f80fd5b9250929050565b5f805f8060408587031215611215575f80fd5b843567ffffffffffffffff81111561122b575f80fd5b611237878288016111ba565b909550935050602085013567ffffffffffffffff811115611256575f80fd5b611262878288016111ba565b95989497509550505050565b5f8083601f84011261127e575f80fd5b50813567ffffffffffffffff811115611295575f80fd5b6020830191508360208285010111156111fb575f80fd5b5f80602083850312156112bd575f80fd5b823567ffffffffffffffff8111156112d3575f80fd5b6112df8582860161126e565b90969095509350505050565b5f805f805f608086880312156112ff575f80fd5b853594506020860135935060408601356113188161114c565b9250606086013567ffffffffffffffff811115611333575f80fd5b61133f8882890161126e565b969995985093965092949392505050565b5f60208284031215611360575f80fd5b81356104798161114c565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b7fff000000000000000000000000000000000000000000000000000000000000008816815260e060208201525f6113f160e083018961136b565b8281036040840152611403818961136b565b6060840188905273ffffffffffffffffffffffffffffffffffffffff8716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b81811015611465578351835260209384019390920191600101611447565b50909b9a5050505050505050505050565b60ff811681146109e4575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156114d4576114d4611484565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561152157611521611484565b604052919050565b5f67ffffffffffffffff82111561154257611542611484565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f82601f83011261157d575f80fd5b813561159061158b82611529565b6114da565b8181528460208386010111156115a4575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f80608085870312156115d3575f80fd5b8435935060208501356115e581611476565b925060408501356115f58161114c565b9150606085013567ffffffffffffffff811115611610575f80fd5b61161c8782880161156e565b91505092959194509250565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215611665575f80fd5b81358015158114610479575f80fd5b803561167f8161114c565b919050565b5f805f60608486031215611696575f80fd5b833567ffffffffffffffff8111156116ac575f80fd5b8401601f810186136116bc575f80fd5b803567ffffffffffffffff8111156116d6576116d6611484565b8060051b6116e6602082016114da565b91825260208184018101929081019089841115611701575f80fd5b6020850194505b8385101561172f578435925061171d8361114c565b82825260209485019490910190611708565b809750505050505061174360208501611674565b929592945050506040919091013590565b80820180821115610419577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6020828403121561179c575f80fd5b813567ffffffffffffffff8111156117b2575f80fd5b8201604081850312156117c3575f80fd5b6040805190810167ffffffffffffffff811182821017156117e6576117e6611484565b604052813567ffffffffffffffff8111156117ff575f80fd5b61180b8682850161156e565b825250602082013567ffffffffffffffff811115611827575f80fd5b6118338682850161156e565b602083015250949350505050565b805161167f81611476565b5f6020828403121561185c575f80fd5b815167ffffffffffffffff811115611872575f80fd5b820160608185031215611883575f80fd5b61188b6114b1565b81516118968161114c565b8152602082015167ffffffffffffffff8111156118b1575f80fd5b8201601f810186136118c1575f80fd5b80516118cf61158b82611529565b8181528760208385010111156118e3575f80fd5b8160208401602083015e5f6020838301015280602085015250505061190a60408301611841565b604082015294935050505056fea264697066735822122063c3658c9a3036ea162ceac551ee8d1dfba428fee8f20bcb409727cb88030d5a64736f6c634300081a0033",i=class i extends A.DeployableTarget{constructor(){super(...arguments),this.abi=e.S}async signers(f,a){return await e.pz(this._config,{address:this.assertValidAddress(),args:[f],...a})}async hashSignerData(f,a){return await e.az(this._config,{address:this.assertValidAddress(),args:[f.boostId,f.incentiveQuantity,f.claimant,f.incentiveData],...a})}async validate(f,a){return await this.awaitResult(this.validateRaw(f,a))}async validateRaw(f,a){const{request:b,result:d}=await e.Ez(this._config,{address:this.assertValidAddress(),args:[f.boostId,f.incentiveId,f.claimant,f.claimData],...this.optionallyAttachAccount(),...a});return{hash:await e.Tz(this._config,b),result:d}}async setAuthorized(f,a,b){return await this.awaitResult(this.setAuthorizedRaw(f,a,b))}async setAuthorizedRaw(f,a,b){const{request:d,result:c}=await e.Rz(this._config,{address:this.assertValidAddress(),args:[f,a],...this.optionallyAttachAccount(),...b});return{hash:await e.fz(this._config,d),result:c}}async setValidatorCallerRaw(f,a){const{request:b,result:d}=await e.Oz(this._config,{address:this.assertValidAddress(),args:[f],...this.optionallyAttachAccount(),...a});return{hash:await e.vz(this._config,b),result:d}}async setValidatorCaller(f,a){return await this.awaitResult(this.setValidatorCallerRaw(f,a))}async encodeClaimData(f){return await o({...f,validator:this.assertValidAddress()})}buildParameters(f,a){const[b,d]=this.validateDeploymentConfig(f,a);return{abi:e.S,bytecode:D,args:[u(b)],...this.optionallyAttachAccount(d.account)}}};i.bases={31337:void 0,...g.SignerValidator},i.registryType=w.RegistryType.VALIDATOR;let s=i;async function o({signer:t,incentiveData:f,chainId:a,validator:b,incentiveQuantity:d,claimant:c,boostId:n}){const y={domain:{name:"LimitedSignerValidator",version:"1",chainId:a,verifyingContract:b},types:{SignerValidatorData:[{name:"boostId",type:"uint256"},{name:"incentiveQuantity",type:"uint8"},{name:"claimant",type:"address"},{name:"incentiveData",type:"bytes"}]},primaryType:"SignerValidatorData",message:{boostId:n,incentiveQuantity:d,claimant:c,incentiveData:f}},m=await p.signTypedData({...y,privateKey:t.key}),h=l({signer:t.account,signature:m,incentiveQuantity:d});return r.encodeAbiParameters([{type:"tuple",name:"BoostClaimData",components:[{type:"bytes",name:"validatorData"},{type:"bytes",name:"incentiveData"}]}],[{validatorData:h,incentiveData:f}])}function l({signer:t,signature:f,incentiveQuantity:a}){return r.encodeAbiParameters([{type:"tuple",name:"SignerValidatorInputParams",components:[{type:"address",name:"signer"},{type:"bytes",name:"signature"},{type:"uint8",name:"incentiveQuantity"}]}],[{signer:t,signature:f,incentiveQuantity:a}])}function u({signers:t,validatorCaller:f,maxClaimCount:a}){return r.encodeAbiParameters([{type:"address[]",name:"signers"},{type:"address",name:"validatorCaller"},{type:"uint256",name:"maxClaimCount"}],[t,f,BigInt(a)])}exports.limitedSignerValidatorAbi=e.S;exports.LimitedSignerValidator=s;exports.prepareLimitedSignerValidatorClaimDataPayload=o;exports.prepareLimitedSignerValidatorInputParams=l;exports.prepareLimitedSignerValidatorPayload=u;
2
2
  //# sourceMappingURL=LimitedSignerValidator.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"LimitedSignerValidator.cjs","sources":["../../src/Validators/LimitedSignerValidator.ts"],"sourcesContent":["import {\n limitedSignerValidatorAbi,\n readLimitedSignerValidatorHashSignerData,\n readLimitedSignerValidatorSigners,\n simulateLimitedSignerValidatorSetAuthorized,\n simulateLimitedSignerValidatorSetValidatorCaller,\n simulateLimitedSignerValidatorValidate,\n writeLimitedSignerValidatorSetAuthorized,\n writeLimitedSignerValidatorSetValidatorCaller,\n writeLimitedSignerValidatorValidate,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/validators/LimitedSignerValidator.sol/LimitedSignerValidator.json';\nimport {\n type Address,\n type ContractEventName,\n type Hex,\n type PrivateKeyAccount,\n encodeAbiParameters,\n} from 'viem';\nimport { signTypedData } from 'viem/accounts';\n// TODO\n//import { LimitedSignerValidator as SignerValidatorBases } from '../../dist/deployments.json';\nimport { SignerValidator as SignerValidatorBases } from '../../dist/deployments.json';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport { DeployableTarget } from '../Deployable/DeployableTarget';\nimport {\n type GenericLog,\n type ReadParams,\n RegistryType,\n type WriteParams,\n} from '../utils';\n\nexport { limitedSignerValidatorAbi };\n\n/**\n * Object reprentation of a {@link LimitedSignerValidator} initialization payload\n *\n * @export\n * @interface LimitedSignerValidatorPayload\n * @typedef {LimitedSignerValidatorPayload}\n */\nexport interface LimitedSignerValidatorPayload {\n /**\n * The list of authorized signers. The first address in the list will be the initial owner of the contract.\n *\n * @type {Address[]}\n */\n signers: Address[];\n /**\n * The authorized caller of the {@link prepareSignerValidator} function\n * @type {Address}\n */\n validatorCaller: Address;\n /**\n * The max quantity of claims a user can make for a given incentive,\n * regardless of how many valid transactions they have\n * @type {number}\n */\n maxClaimCount: number;\n}\n\n/**\n * Description placeholder\n *\n * @export\n * @interface LimitedSignerValidatorValidatePayload\n * @typedef {LimitedSignerValidatorValidatePayload}\n */\nexport interface LimitedSignerValidatorValidatePayload {\n /**\n * The ID of the boost.\n *\n * @type {bigint}\n */\n boostId: bigint;\n /**\n * The ID of the incentive.\n *\n * @type {bigint}\n */\n incentiveId: bigint;\n /**\n * The address of the claimant.\n *\n * @type {Address}\n */\n claimant: Address;\n /**\n * The claim data.\n *\n * @type {Hex}\n */\n claimData: Hex;\n}\n\n/**\n * Object reprentation of a {@link LimitedSignerValidator} initialization payload\n *\n * @export\n * @interface LimitedSignerValidatorPayload\n * @typedef {LimitedSignerValidatorPayload}\n */\nexport interface LimitedSignerValidatorPayload {\n /**\n * The list of authorized signers. The first address in the list will be the initial owner of the contract.\n *\n * @type {Address[]}\n */\n signers: Address[];\n /**\n * The authorized caller of the {@link prepareSignerValidator} function\n * @type {Address}\n */\n validatorCaller: Address;\n}\n\n/**\n * Description placeholder\n *\n * @export\n * @interface LimitedSignerValidatorValidatePayload\n * @typedef {LimitedSignerValidatorValidatePayload}\n */\nexport interface LimitedSignerValidatorValidatePayload {\n /**\n * The ID of the boost.\n *\n * @type {bigint}\n */\n boostId: bigint;\n /**\n * The ID of the incentive.\n *\n * @type {bigint}\n */\n incentiveId: bigint;\n /**\n * The address of the claimant.\n *\n * @type {Address}\n */\n claimant: Address;\n /**\n * The claim data.\n *\n * @type {Hex}\n */\n claimData: Hex;\n}\n\n/**\n * Signer Validator Claim Data Payload\n *\n * @export\n * @interface LimitedSignerValidatorClaimDataParams\n * @typedef {LimitedSignerValidatorClaimDataParams}\n */\nexport interface LimitedSignerValidatorClaimDataParams {\n /**\n * The signer with which to sign the input\n *\n * @type {{\n * account: Address;\n * key: Hex;\n * privateKey: PrivateKeyAccount;\n * }}\n */\n signer: {\n account: Address;\n key: Hex;\n privateKey: PrivateKeyAccount;\n };\n /**\n * The encoded data to provide the underlying incentive. You can use {@link prepareAllowListIncentivePayload}, {@link prepareCGDAIncentivePayload}, {@link prepareERC20IncentivePayload}, {@link prepareERC1155IncentivePayload}, or {@link preparePointsIncentivePayload}\n *\n * @type {Hex}\n */\n incentiveData: Hex;\n /**\n * The chain id to target\n *\n * @type {number}\n */\n chainId: number;\n /**\n * The address of the validator\n *\n * @type {Address}\n */\n validator: Address;\n /**\n * The incentive quantity.\n *\n * @type {number}\n */\n incentiveQuantity: number;\n /**\n * The address of the claimant\n *\n * @type {Address}\n */\n claimant: Address;\n /**\n * The ID of the boost\n *\n * @type {bigint}\n */\n boostId: bigint;\n}\n\n/**\n * Object representation of a {@link LimitedSignerValidatorInputParams} initialization payload\n *\n * @export\n * @interface LimitedSignerValidatorInputParams\n * @typedef {LimitedSignerValidatorInputParams}\n */\nexport interface LimitedSignerValidatorInputParams {\n /**\n * The signer address.\n *\n * @type {Address}\n */\n signer: Address;\n\n /**\n * The signature data.\n *\n * @type {string}\n */\n signature: Hex;\n\n /**\n * The incentive quantity.\n *\n * @type {number}\n */\n incentiveQuantity: number;\n}\n\n/**\n * Object representing the payload for signing before validaton.\n *\n * @export\n * @interface LimitedSignerValidatorSignaturePayload\n * @typedef {LimitedSignerValidatorSignaturePayload}\n */\nexport interface LimitedSignerValidatorSignaturePayload {\n /**\n * The ID of the boost.\n *\n * @type {bigint}\n */\n boostId: bigint;\n /**\n * The ID of the incentive.\n *\n * @type {number}\n */\n incentiveQuantity: number;\n /**\n * The address of the claimant.\n *\n * @type {Address}\n */\n claimant: Address;\n /**\n * The claim data.\n *\n * @type {Hex}\n */\n incentiveData: Hex;\n}\n\n/**\n * A generic `viem.Log` event with support for `BoostCore` event types.\n *\n * @export\n * @typedef {LimitedSignerValidatorLog}\n * @template {ContractEventName<\n * typeof limitedSignerValidatorAbi\n * >} [event=ContractEventName<typeof limitedSignerValidatorAbi>]\n */\nexport type LimitedSignerValidatorLog<\n event extends ContractEventName<\n typeof limitedSignerValidatorAbi\n > = ContractEventName<typeof limitedSignerValidatorAbi>,\n> = GenericLog<typeof limitedSignerValidatorAbi, event>;\n\n/**\n * A simple implementation of a Validator that verifies a given signature and checks the recovered address against a set of authorized signers\n *\n * @export\n * @class SignerValidator\n * @typedef {SignerValidator}\n * @extends {DeployableTarget<SignerValidatorPayload>}\n */\nexport class LimitedSignerValidator extends DeployableTarget<\n LimitedSignerValidatorPayload,\n typeof limitedSignerValidatorAbi\n> {\n /**\n * @inheritdoc\n *\n * @public\n * @readonly\n * @type {*}\n */\n public override readonly abi = limitedSignerValidatorAbi;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {Record<number, Address>}\n */\n public static override bases: Record<number, Address> = {\n 31337: import.meta.env.VITE_LIMITED_SIGNER_VALIDATOR_BASE,\n ...(SignerValidatorBases as Record<number, Address>),\n };\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {RegistryType}\n */\n public static override registryType: RegistryType = RegistryType.VALIDATOR;\n\n /**\n * The set of authorized signers\n *\n * @public\n * @async\n * @param {Address} address\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>}\n */\n public async signers(address: Address, params?: ReadParams) {\n return await readLimitedSignerValidatorSigners(this._config, {\n address: this.assertValidAddress(),\n args: [address],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Retrieve the hash and signer data for a given hash\n *\n * @public\n * @async\n * @param {SignerValidatorSignaturePayload} payload\n * @param {?ReadParams} [params]\n * @returns {Promise<Hex>}\n */\n public async hashSignerData(\n payload: LimitedSignerValidatorSignaturePayload,\n params?: ReadParams,\n ) {\n return await readLimitedSignerValidatorHashSignerData(this._config, {\n address: this.assertValidAddress(),\n args: [\n payload.boostId,\n payload.incentiveQuantity,\n payload.claimant,\n payload.incentiveData,\n ],\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 * Validate that the action has been completed successfully. The data payload is expected to be a tuple of (address signer, bytes32 hash, bytes signature). The signature is expected to be a valid ECDSA or EIP-1271 signature of a unique hash by an authorized signer.\n *\n * @public\n * @async\n * @param {SignerValidatorValidatePayload} payload\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if the action has been validated based on the data payload\n */\n protected async validate(\n payload: LimitedSignerValidatorValidatePayload,\n params?: WriteParams,\n ) {\n return await this.awaitResult(this.validateRaw(payload, params));\n }\n\n /**\n * Validate that the action has been completed successfully. The data payload is expected to be a tuple of (address signer, bytes32 hash, bytes signature). The signature is expected to be a valid ECDSA or EIP-1271 signature of a unique hash by an authorized signer.\n *\n * @public\n * @async\n * @param {SignerValidatorValidatePayload} payload\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if the action has been validated based on the data payload\n */\n protected async validateRaw(\n payload: LimitedSignerValidatorValidatePayload,\n params?: ReadParams,\n ) {\n const { request, result } = await simulateLimitedSignerValidatorValidate(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [\n payload.boostId,\n payload.incentiveId,\n payload.claimant,\n payload.claimData,\n ],\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 writeLimitedSignerValidatorValidate(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Set the authorized status of a signer\n *\n * @public\n * @async\n * @param {Address[]} addresses - The list of signers to update\n * @param {boolean[]} allowed - The authorized status of each signer\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setAuthorized(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.setAuthorizedRaw(addresses, allowed, params),\n );\n }\n\n /**\n * Set the authorized status of a signer\n *\n * @public\n * @async\n * @param {Address[]} addresses - The list of signers to update\n * @param {boolean[]} allowed - The authorized status of each signer\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async setAuthorizedRaw(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams,\n ) {\n const { request, result } =\n await simulateLimitedSignerValidatorSetAuthorized(this._config, {\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 const hash = await writeLimitedSignerValidatorSetAuthorized(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Update the authorized caller of the validator function\n *\n * @public\n * @async\n * @param {Address} address\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async setValidatorCallerRaw(address: Address, params?: WriteParams) {\n const { request, result } =\n await simulateLimitedSignerValidatorSetValidatorCaller(this._config, {\n address: this.assertValidAddress(),\n args: [address],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n const hash = await writeLimitedSignerValidatorSetValidatorCaller(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Update the authorized caller of the validator function\n *\n * @public\n * @async\n * @param {Address} address\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setValidatorCaller(address: Address, params?: WriteParams) {\n return await this.awaitResult(this.setValidatorCallerRaw(address, params));\n }\n\n /**\n * Properly encodes the data needed to claim\n *\n * @public\n * @async\n * @param {SignerValidatorClaimDataParams} params\n * @returns {Promise<Hex>}\n */\n public async encodeClaimData(\n params: Omit<LimitedSignerValidatorClaimDataParams, 'validator'>,\n ): Promise<Hex> {\n return await prepareLimitedSignerValidatorClaimDataPayload({\n ...params,\n validator: this.assertValidAddress(),\n });\n }\n\n /**\n * @inheritdoc\n *\n * @public\n * @param {?SignerValidatorPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: LimitedSignerValidatorPayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [payload, options] = this.validateDeploymentConfig(\n _payload,\n _options,\n );\n return {\n abi: limitedSignerValidatorAbi,\n bytecode: bytecode as Hex,\n args: [prepareLimitedSignerValidatorPayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n\n/**\n * Signer Validator Claim Data Payload Preparation\n *\n * @export\n * @async\n * @param {SignerValidatorClaimDataParams} param0\n * @param {{ account: Address; key: Hex; privateKey: PrivateKeyAccount; }} param0.signer\n * @param {Hex} param0.incentiveData\n * @param {number} param0.chainId\n * @param {Address} param0.validator\n * @param {number} param0.incentiveQuantity\n * @param {Address} param0.claimant\n * @param {bigint} param0.boostId\n * @returns {Promise<Hex>}\n */\nexport async function prepareLimitedSignerValidatorClaimDataPayload({\n signer,\n incentiveData,\n chainId,\n validator,\n incentiveQuantity,\n claimant,\n boostId,\n}: LimitedSignerValidatorClaimDataParams): Promise<Hex> {\n const domain = {\n name: 'LimitedSignerValidator',\n version: '1',\n chainId: chainId,\n verifyingContract: validator,\n };\n const typedData = {\n domain,\n types: {\n SignerValidatorData: [\n { name: 'boostId', type: 'uint256' },\n { name: 'incentiveQuantity', type: 'uint8' },\n { name: 'claimant', type: 'address' },\n { name: 'incentiveData', type: 'bytes' },\n ],\n },\n primaryType: 'SignerValidatorData' as const,\n message: {\n boostId,\n incentiveQuantity,\n claimant,\n incentiveData: incentiveData,\n },\n };\n\n const trustedSignature = await signTypedData({\n ...typedData,\n privateKey: signer.key,\n });\n\n // Prepare the claim data payload using the new helper\n const validatorData = prepareLimitedSignerValidatorInputParams({\n signer: signer.account,\n signature: trustedSignature,\n incentiveQuantity, // Adjust incentive quantity as necessary\n });\n\n const boostClaimDataPayload = encodeAbiParameters(\n [\n {\n type: 'tuple',\n name: 'BoostClaimData',\n components: [\n { type: 'bytes', name: 'validatorData' },\n { type: 'bytes', name: 'incentiveData' },\n ],\n },\n ],\n [{ validatorData, incentiveData }],\n );\n\n return boostClaimDataPayload;\n}\n\n/**\n * Given a {@link SignerValidatorInputParams}, properly encode the initialization payload.\n *\n * @param {SignerValidatorInputParams} param0\n * @param {Address} param0.signer\n * @param {Hex} param0.signature\n * @param {number} param0.incentiveQuantity\n * @returns {Hex}\n */\nexport function prepareLimitedSignerValidatorInputParams({\n signer,\n signature,\n incentiveQuantity,\n}: LimitedSignerValidatorInputParams) {\n return encodeAbiParameters(\n [\n {\n type: 'tuple',\n name: 'SignerValidatorInputParams',\n components: [\n { type: 'address', name: 'signer' },\n { type: 'bytes', name: 'signature' },\n { type: 'uint8', name: 'incentiveQuantity' },\n ],\n },\n ],\n [{ signer, signature, incentiveQuantity }],\n );\n}\n\n/**\n * Given a {@link SignerValidatorPayload}, properly encode the initialization payload.\n *\n * @param {SignerValidatorPayload} param0\n SignerValidator: class TSignerValidator extends SignerValidator {\n public static override bases: Record<number, Address> = {\n [chainId]: signerValidatorBase,\n };\n },\n * @param {Address[]} param0.signers\n * @param {Address} param0.validatorCaller\n * @returns {Hex}\n */\nexport function prepareLimitedSignerValidatorPayload({\n signers,\n validatorCaller,\n maxClaimCount,\n}: LimitedSignerValidatorPayload) {\n return encodeAbiParameters(\n [\n { type: 'address[]', name: 'signers' },\n { type: 'address', name: 'validatorCaller' },\n { type: 'uint256', name: 'maxClaimCount' },\n ],\n [signers, validatorCaller, BigInt(maxClaimCount)],\n );\n}\n"],"names":["_LimitedSignerValidator","DeployableTarget","limitedSignerValidatorAbi","address","params","readLimitedSignerValidatorSigners","payload","readLimitedSignerValidatorHashSignerData","request","result","simulateLimitedSignerValidatorValidate","writeLimitedSignerValidatorValidate","addresses","allowed","simulateLimitedSignerValidatorSetAuthorized","writeLimitedSignerValidatorSetAuthorized","simulateLimitedSignerValidatorSetValidatorCaller","writeLimitedSignerValidatorSetValidatorCaller","prepareLimitedSignerValidatorClaimDataPayload","_payload","_options","options","bytecode","prepareLimitedSignerValidatorPayload","SignerValidatorBases","RegistryType","LimitedSignerValidator","signer","incentiveData","chainId","validator","incentiveQuantity","claimant","boostId","typedData","trustedSignature","signTypedData","validatorData","prepareLimitedSignerValidatorInputParams","encodeAbiParameters","signature","signers","validatorCaller","maxClaimCount"],"mappings":"sumBA4SaA,EAAN,MAAMA,UAA+BC,EAAAA,gBAG1C,CAHK,aAAA,CAAA,MAAA,GAAA,SAAA,EAWL,KAAyB,IAAMC,GAAA,CA8B/B,MAAa,QAAQC,EAAkBC,EAAqB,CACnD,OAAA,MAAMC,EAAAA,GAAkC,KAAK,QAAS,CAC3D,QAAS,KAAK,mBAAmB,EACjC,KAAM,CAACF,CAAO,EAEd,GAAIC,CAAA,CACL,CACH,CAWA,MAAa,eACXE,EACAF,EACA,CACO,OAAA,MAAMG,EAAAA,GAAyC,KAAK,QAAS,CAClE,QAAS,KAAK,mBAAmB,EACjC,KAAM,CACJD,EAAQ,QACRA,EAAQ,kBACRA,EAAQ,SACRA,EAAQ,aACV,EAEA,GAAIF,CAAA,CACL,CACH,CAWA,MAAgB,SACdE,EACAF,EACA,CACA,OAAO,MAAM,KAAK,YAAY,KAAK,YAAYE,EAASF,CAAM,CAAC,CACjE,CAWA,MAAgB,YACdE,EACAF,EACA,CACA,KAAM,CAAE,QAAAI,EAAS,OAAAC,CAAO,EAAI,MAAMC,EAAA,GAChC,KAAK,QACL,CACE,QAAS,KAAK,mBAAmB,EACjC,KAAM,CACJJ,EAAQ,QACRA,EAAQ,YACRA,EAAQ,SACRA,EAAQ,SACV,EACA,GAAG,KAAK,wBAAwB,EAEhC,GAAIF,CACN,CAAA,EAMK,MAAA,CAAE,KAJI,MAAMO,EAAA,GACjB,KAAK,QACLH,CAAA,EAEa,OAAAC,EACjB,CAYA,MAAa,cACXG,EACAC,EACAT,EACA,CACA,OAAO,MAAM,KAAK,YAChB,KAAK,iBAAiBQ,EAAWC,EAAST,CAAM,CAAA,CAEpD,CAYA,MAAa,iBACXQ,EACAC,EACAT,EACA,CACA,KAAM,CAAE,QAAAI,EAAS,OAAAC,CAAA,EACf,MAAMK,EAAA,GAA4C,KAAK,QAAS,CAC9D,QAAS,KAAK,mBAAmB,EACjC,KAAM,CAACF,EAAWC,CAAO,EACzB,GAAG,KAAK,wBAAwB,EAEhC,GAAIT,CAAA,CACL,EAKI,MAAA,CAAE,KAJI,MAAMW,EAAA,GACjB,KAAK,QACLP,CAAA,EAEa,OAAAC,EACjB,CAWA,MAAa,sBAAsBN,EAAkBC,EAAsB,CACzE,KAAM,CAAE,QAAAI,EAAS,OAAAC,CAAA,EACf,MAAMO,EAAA,GAAiD,KAAK,QAAS,CACnE,QAAS,KAAK,mBAAmB,EACjC,KAAM,CAACb,CAAO,EACd,GAAG,KAAK,wBAAwB,EAEhC,GAAIC,CAAA,CACL,EAKI,MAAA,CAAE,KAJI,MAAMa,EAAA,GACjB,KAAK,QACLT,CAAA,EAEa,OAAAC,EACjB,CAWA,MAAa,mBAAmBN,EAAkBC,EAAsB,CACtE,OAAO,MAAM,KAAK,YAAY,KAAK,sBAAsBD,EAASC,CAAM,CAAC,CAC3E,CAUA,MAAa,gBACXA,EACc,CACd,OAAO,MAAMc,EAA8C,CACzD,GAAGd,EACH,UAAW,KAAK,mBAAmB,CAAA,CACpC,CACH,CAUgB,gBACde,EACAC,EACyB,CACzB,KAAM,CAACd,EAASe,CAAO,EAAI,KAAK,yBAC9BF,EACAC,CAAA,EAEK,MAAA,CACL,IAAKlB,EAAA,EACL,SAAAoB,EACA,KAAM,CAACC,EAAqCjB,CAAO,CAAC,EACpD,GAAG,KAAK,wBAAwBe,EAAQ,OAAO,CAAA,CAEnD,CACF,EA5OErB,EAAuB,MAAiC,CACtD,MAAO,OACP,GAAIwB,EAAA,eAAA,EASNxB,EAAuB,aAA6ByB,EAAa,aAAA,UA9B5D,IAAMC,EAAN1B,EAgRP,eAAsBkB,EAA8C,CAClE,OAAAS,EACA,cAAAC,EACA,QAAAC,EACA,UAAAC,EACA,kBAAAC,EACA,SAAAC,EACA,QAAAC,CACF,EAAwD,CAOtD,MAAMC,EAAY,CAChB,OAPa,CACb,KAAM,yBACN,QAAS,IACT,QAAAL,EACA,kBAAmBC,CAAA,EAInB,MAAO,CACL,oBAAqB,CACnB,CAAE,KAAM,UAAW,KAAM,SAAU,EACnC,CAAE,KAAM,oBAAqB,KAAM,OAAQ,EAC3C,CAAE,KAAM,WAAY,KAAM,SAAU,EACpC,CAAE,KAAM,gBAAiB,KAAM,OAAQ,CACzC,CACF,EACA,YAAa,sBACb,QAAS,CACP,QAAAG,EACA,kBAAAF,EACA,SAAAC,EACA,cAAAJ,CACF,CAAA,EAGIO,EAAmB,MAAMC,gBAAc,CAC3C,GAAGF,EACH,WAAYP,EAAO,GAAA,CACpB,EAGKU,EAAgBC,EAAyC,CAC7D,OAAQX,EAAO,QACf,UAAWQ,EACX,kBAAAJ,CAAA,CACD,EAgBM,OAduBQ,EAAA,oBAC5B,CACE,CACE,KAAM,QACN,KAAM,iBACN,WAAY,CACV,CAAE,KAAM,QAAS,KAAM,eAAgB,EACvC,CAAE,KAAM,QAAS,KAAM,eAAgB,CACzC,CACF,CACF,EACA,CAAC,CAAE,cAAAF,EAAe,cAAAT,EAAe,CAAA,CAIrC,CAWO,SAASU,EAAyC,CACvD,OAAAX,EACA,UAAAa,EACA,kBAAAT,CACF,EAAsC,CAC7B,OAAAQ,EAAA,oBACL,CACE,CACE,KAAM,QACN,KAAM,6BACN,WAAY,CACV,CAAE,KAAM,UAAW,KAAM,QAAS,EAClC,CAAE,KAAM,QAAS,KAAM,WAAY,EACnC,CAAE,KAAM,QAAS,KAAM,mBAAoB,CAC7C,CACF,CACF,EACA,CAAC,CAAE,OAAAZ,EAAQ,UAAAa,EAAW,kBAAAT,EAAmB,CAAA,CAE7C,CAeO,SAASR,EAAqC,CACnD,QAAAkB,EACA,gBAAAC,EACA,cAAAC,CACF,EAAkC,CACzB,OAAAJ,EAAA,oBACL,CACE,CAAE,KAAM,YAAa,KAAM,SAAU,EACrC,CAAE,KAAM,UAAW,KAAM,iBAAkB,EAC3C,CAAE,KAAM,UAAW,KAAM,eAAgB,CAC3C,EACA,CAACE,EAASC,EAAiB,OAAOC,CAAa,CAAC,CAAA,CAEpD"}
1
+ {"version":3,"file":"LimitedSignerValidator.cjs","sources":["../../src/Validators/LimitedSignerValidator.ts"],"sourcesContent":["import {\n limitedSignerValidatorAbi,\n readLimitedSignerValidatorHashSignerData,\n readLimitedSignerValidatorSigners,\n simulateLimitedSignerValidatorSetAuthorized,\n simulateLimitedSignerValidatorSetValidatorCaller,\n simulateLimitedSignerValidatorValidate,\n writeLimitedSignerValidatorSetAuthorized,\n writeLimitedSignerValidatorSetValidatorCaller,\n writeLimitedSignerValidatorValidate,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/validators/LimitedSignerValidator.sol/LimitedSignerValidator.json';\nimport {\n type Address,\n type ContractEventName,\n type Hex,\n type PrivateKeyAccount,\n encodeAbiParameters,\n} from 'viem';\nimport { signTypedData } from 'viem/accounts';\n// TODO\n//import { LimitedSignerValidator as SignerValidatorBases } from '../../dist/deployments.json';\nimport { SignerValidator as SignerValidatorBases } from '../../dist/deployments.json';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport { DeployableTarget } from '../Deployable/DeployableTarget';\nimport {\n type GenericLog,\n type ReadParams,\n RegistryType,\n type WriteParams,\n} from '../utils';\n\nexport { limitedSignerValidatorAbi };\n\n/**\n * Object reprentation of a {@link LimitedSignerValidator} initialization payload\n *\n * @export\n * @interface LimitedSignerValidatorPayload\n * @typedef {LimitedSignerValidatorPayload}\n */\nexport interface LimitedSignerValidatorPayload {\n /**\n * The list of authorized signers. The first address in the list will be the initial owner of the contract.\n *\n * @type {Address[]}\n */\n signers: Address[];\n /**\n * The authorized caller of the {@link prepareSignerValidator} function\n * @type {Address}\n */\n validatorCaller: Address;\n /**\n * The max quantity of claims a user can make for a given incentive,\n * regardless of how many valid transactions they have\n * @type {number}\n */\n maxClaimCount: number;\n}\n\n/**\n * Description placeholder\n *\n * @export\n * @interface LimitedSignerValidatorValidatePayload\n * @typedef {LimitedSignerValidatorValidatePayload}\n */\nexport interface LimitedSignerValidatorValidatePayload {\n /**\n * The ID of the boost.\n *\n * @type {bigint}\n */\n boostId: bigint;\n /**\n * The ID of the incentive.\n *\n * @type {bigint}\n */\n incentiveId: bigint;\n /**\n * The address of the claimant.\n *\n * @type {Address}\n */\n claimant: Address;\n /**\n * The claim data.\n *\n * @type {Hex}\n */\n claimData: Hex;\n}\n\n/**\n * Object reprentation of a {@link LimitedSignerValidator} initialization payload\n *\n * @export\n * @interface LimitedSignerValidatorPayload\n * @typedef {LimitedSignerValidatorPayload}\n */\nexport interface LimitedSignerValidatorPayload {\n /**\n * The list of authorized signers. The first address in the list will be the initial owner of the contract.\n *\n * @type {Address[]}\n */\n signers: Address[];\n /**\n * The authorized caller of the {@link prepareSignerValidator} function\n * @type {Address}\n */\n validatorCaller: Address;\n}\n\n/**\n * Description placeholder\n *\n * @export\n * @interface LimitedSignerValidatorValidatePayload\n * @typedef {LimitedSignerValidatorValidatePayload}\n */\nexport interface LimitedSignerValidatorValidatePayload {\n /**\n * The ID of the boost.\n *\n * @type {bigint}\n */\n boostId: bigint;\n /**\n * The ID of the incentive.\n *\n * @type {bigint}\n */\n incentiveId: bigint;\n /**\n * The address of the claimant.\n *\n * @type {Address}\n */\n claimant: Address;\n /**\n * The claim data.\n *\n * @type {Hex}\n */\n claimData: Hex;\n}\n\n/**\n * Signer Validator Claim Data Payload\n *\n * @export\n * @interface LimitedSignerValidatorClaimDataParams\n * @typedef {LimitedSignerValidatorClaimDataParams}\n */\nexport interface LimitedSignerValidatorClaimDataParams {\n /**\n * The signer with which to sign the input\n *\n * @type {{\n * account: Address;\n * key: Hex;\n * privateKey: PrivateKeyAccount;\n * }}\n */\n signer: {\n account: Address;\n key: Hex;\n privateKey: PrivateKeyAccount;\n };\n /**\n * The encoded data to provide the underlying incentive. You can use {@link prepareAllowListIncentivePayload}, {@link prepareCGDAIncentivePayload}, {@link prepareERC20IncentivePayload}, {@link prepareERC1155IncentivePayload}, or {@link preparePointsIncentivePayload}\n *\n * @type {Hex}\n */\n incentiveData: Hex;\n /**\n * The chain id to target\n *\n * @type {number}\n */\n chainId: number;\n /**\n * The address of the validator\n *\n * @type {Address}\n */\n validator: Address;\n /**\n * The incentive quantity.\n *\n * @type {number}\n */\n incentiveQuantity: number;\n /**\n * The address of the claimant\n *\n * @type {Address}\n */\n claimant: Address;\n /**\n * The ID of the boost\n *\n * @type {bigint}\n */\n boostId: bigint;\n}\n\n/**\n * Object representation of a {@link LimitedSignerValidatorInputParams} initialization payload\n *\n * @export\n * @interface LimitedSignerValidatorInputParams\n * @typedef {LimitedSignerValidatorInputParams}\n */\nexport interface LimitedSignerValidatorInputParams {\n /**\n * The signer address.\n *\n * @type {Address}\n */\n signer: Address;\n\n /**\n * The signature data.\n *\n * @type {string}\n */\n signature: Hex;\n\n /**\n * The incentive quantity.\n *\n * @type {number}\n */\n incentiveQuantity: number;\n}\n\n/**\n * Object representing the payload for signing before validaton.\n *\n * @export\n * @interface LimitedSignerValidatorSignaturePayload\n * @typedef {LimitedSignerValidatorSignaturePayload}\n */\nexport interface LimitedSignerValidatorSignaturePayload {\n /**\n * The ID of the boost.\n *\n * @type {bigint}\n */\n boostId: bigint;\n /**\n * The ID of the incentive.\n *\n * @type {number}\n */\n incentiveQuantity: number;\n /**\n * The address of the claimant.\n *\n * @type {Address}\n */\n claimant: Address;\n /**\n * The claim data.\n *\n * @type {Hex}\n */\n incentiveData: Hex;\n}\n\n/**\n * A generic `viem.Log` event with support for `BoostCore` event types.\n *\n * @export\n * @typedef {LimitedSignerValidatorLog}\n * @template {ContractEventName<\n * typeof limitedSignerValidatorAbi\n * >} [event=ContractEventName<typeof limitedSignerValidatorAbi>]\n */\nexport type LimitedSignerValidatorLog<\n event extends ContractEventName<\n typeof limitedSignerValidatorAbi\n > = ContractEventName<typeof limitedSignerValidatorAbi>,\n> = GenericLog<typeof limitedSignerValidatorAbi, event>;\n\n/**\n * A simple implementation of a Validator that verifies a given signature and checks the recovered address against a set of authorized signers\n *\n * @export\n * @class SignerValidator\n * @typedef {SignerValidator}\n * @extends {DeployableTarget<SignerValidatorPayload>}\n */\nexport class LimitedSignerValidator extends DeployableTarget<\n LimitedSignerValidatorPayload,\n typeof limitedSignerValidatorAbi\n> {\n /**\n * @inheritdoc\n *\n * @public\n * @readonly\n * @type {*}\n */\n public override readonly abi = limitedSignerValidatorAbi;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {Record<number, Address>}\n */\n public static override bases: Record<number, Address> = {\n 31337: import.meta.env.VITE_LIMITED_SIGNER_VALIDATOR_BASE,\n ...(SignerValidatorBases as Record<number, Address>),\n };\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {RegistryType}\n */\n public static override registryType: RegistryType = RegistryType.VALIDATOR;\n\n /**\n * The set of authorized signers\n *\n * @public\n * @async\n * @param {Address} address\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>}\n */\n public async signers(address: Address, params?: ReadParams) {\n return await readLimitedSignerValidatorSigners(this._config, {\n address: this.assertValidAddress(),\n args: [address],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Retrieve the hash and signer data for a given hash\n *\n * @public\n * @async\n * @param {SignerValidatorSignaturePayload} payload\n * @param {?ReadParams} [params]\n * @returns {Promise<Hex>}\n */\n public async hashSignerData(\n payload: LimitedSignerValidatorSignaturePayload,\n params?: ReadParams,\n ) {\n return await readLimitedSignerValidatorHashSignerData(this._config, {\n address: this.assertValidAddress(),\n args: [\n payload.boostId,\n payload.incentiveQuantity,\n payload.claimant,\n payload.incentiveData,\n ],\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 * Validate that the action has been completed successfully. The data payload is expected to be a tuple of (address signer, bytes32 hash, bytes signature). The signature is expected to be a valid ECDSA or EIP-1271 signature of a unique hash by an authorized signer.\n *\n * @public\n * @async\n * @param {SignerValidatorValidatePayload} payload\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if the action has been validated based on the data payload\n */\n protected async validate(\n payload: LimitedSignerValidatorValidatePayload,\n params?: WriteParams,\n ) {\n return await this.awaitResult(this.validateRaw(payload, params));\n }\n\n /**\n * Validate that the action has been completed successfully. The data payload is expected to be a tuple of (address signer, bytes32 hash, bytes signature). The signature is expected to be a valid ECDSA or EIP-1271 signature of a unique hash by an authorized signer.\n *\n * @public\n * @async\n * @param {SignerValidatorValidatePayload} payload\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if the action has been validated based on the data payload\n */\n protected async validateRaw(\n payload: LimitedSignerValidatorValidatePayload,\n params?: ReadParams,\n ) {\n const { request, result } = await simulateLimitedSignerValidatorValidate(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [\n payload.boostId,\n payload.incentiveId,\n payload.claimant,\n payload.claimData,\n ],\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 writeLimitedSignerValidatorValidate(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Set the authorized status of a signer\n *\n * @public\n * @async\n * @param {Address[]} addresses - The list of signers to update\n * @param {boolean[]} allowed - The authorized status of each signer\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setAuthorized(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.setAuthorizedRaw(addresses, allowed, params),\n );\n }\n\n /**\n * Set the authorized status of a signer\n *\n * @public\n * @async\n * @param {Address[]} addresses - The list of signers to update\n * @param {boolean[]} allowed - The authorized status of each signer\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async setAuthorizedRaw(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams,\n ) {\n const { request, result } =\n await simulateLimitedSignerValidatorSetAuthorized(this._config, {\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 const hash = await writeLimitedSignerValidatorSetAuthorized(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Update the authorized caller of the validator function\n *\n * @public\n * @async\n * @param {Address} address\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async setValidatorCallerRaw(address: Address, params?: WriteParams) {\n const { request, result } =\n await simulateLimitedSignerValidatorSetValidatorCaller(this._config, {\n address: this.assertValidAddress(),\n args: [address],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n const hash = await writeLimitedSignerValidatorSetValidatorCaller(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Update the authorized caller of the validator function\n *\n * @public\n * @async\n * @param {Address} address\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setValidatorCaller(address: Address, params?: WriteParams) {\n return await this.awaitResult(this.setValidatorCallerRaw(address, params));\n }\n\n /**\n * Properly encodes the data needed to claim\n *\n * @public\n * @async\n * @param {SignerValidatorClaimDataParams} params\n * @returns {Promise<Hex>}\n */\n public async encodeClaimData(\n params: Omit<LimitedSignerValidatorClaimDataParams, 'validator'>,\n ): Promise<Hex> {\n return await prepareLimitedSignerValidatorClaimDataPayload({\n ...params,\n validator: this.assertValidAddress(),\n });\n }\n\n /**\n * @inheritdoc\n *\n * @public\n * @param {?SignerValidatorPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: LimitedSignerValidatorPayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [payload, options] = this.validateDeploymentConfig(\n _payload,\n _options,\n );\n return {\n abi: limitedSignerValidatorAbi,\n bytecode: bytecode as Hex,\n args: [prepareLimitedSignerValidatorPayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n\n/**\n * Signer Validator Claim Data Payload Preparation\n *\n * @export\n * @async\n * @param {SignerValidatorClaimDataParams} param0\n * @param {{ account: Address; key: Hex; privateKey: PrivateKeyAccount; }} param0.signer\n * @param {Hex} param0.incentiveData\n * @param {number} param0.chainId\n * @param {Address} param0.validator\n * @param {number} param0.incentiveQuantity\n * @param {Address} param0.claimant\n * @param {bigint} param0.boostId\n * @returns {Promise<Hex>}\n */\nexport async function prepareLimitedSignerValidatorClaimDataPayload({\n signer,\n incentiveData,\n chainId,\n validator,\n incentiveQuantity,\n claimant,\n boostId,\n}: LimitedSignerValidatorClaimDataParams): Promise<Hex> {\n const domain = {\n name: 'LimitedSignerValidator',\n version: '1',\n chainId: chainId,\n verifyingContract: validator,\n };\n const typedData = {\n domain,\n types: {\n SignerValidatorData: [\n { name: 'boostId', type: 'uint256' },\n { name: 'incentiveQuantity', type: 'uint8' },\n { name: 'claimant', type: 'address' },\n { name: 'incentiveData', type: 'bytes' },\n ],\n },\n primaryType: 'SignerValidatorData' as const,\n message: {\n boostId,\n incentiveQuantity,\n claimant,\n incentiveData: incentiveData,\n },\n };\n\n const trustedSignature = await signTypedData({\n ...typedData,\n privateKey: signer.key,\n });\n\n // Prepare the claim data payload using the new helper\n const validatorData = prepareLimitedSignerValidatorInputParams({\n signer: signer.account,\n signature: trustedSignature,\n incentiveQuantity, // Adjust incentive quantity as necessary\n });\n\n const boostClaimDataPayload = encodeAbiParameters(\n [\n {\n type: 'tuple',\n name: 'BoostClaimData',\n components: [\n { type: 'bytes', name: 'validatorData' },\n { type: 'bytes', name: 'incentiveData' },\n ],\n },\n ],\n [{ validatorData, incentiveData }],\n );\n\n return boostClaimDataPayload;\n}\n\n/**\n * Given a {@link SignerValidatorInputParams}, properly encode the initialization payload.\n *\n * @param {SignerValidatorInputParams} param0\n * @param {Address} param0.signer\n * @param {Hex} param0.signature\n * @param {number} param0.incentiveQuantity\n * @returns {Hex}\n */\nexport function prepareLimitedSignerValidatorInputParams({\n signer,\n signature,\n incentiveQuantity,\n}: LimitedSignerValidatorInputParams) {\n return encodeAbiParameters(\n [\n {\n type: 'tuple',\n name: 'SignerValidatorInputParams',\n components: [\n { type: 'address', name: 'signer' },\n { type: 'bytes', name: 'signature' },\n { type: 'uint8', name: 'incentiveQuantity' },\n ],\n },\n ],\n [{ signer, signature, incentiveQuantity }],\n );\n}\n\n/**\n * Given a {@link SignerValidatorPayload}, properly encode the initialization payload.\n *\n * @param {SignerValidatorPayload} param0\n SignerValidator: class TSignerValidator extends SignerValidator {\n public static override bases: Record<number, Address> = {\n [chainId]: signerValidatorBase,\n };\n },\n * @param {Address[]} param0.signers\n * @param {Address} param0.validatorCaller\n * @returns {Hex}\n */\nexport function prepareLimitedSignerValidatorPayload({\n signers,\n validatorCaller,\n maxClaimCount,\n}: LimitedSignerValidatorPayload) {\n return encodeAbiParameters(\n [\n { type: 'address[]', name: 'signers' },\n { type: 'address', name: 'validatorCaller' },\n { type: 'uint256', name: 'maxClaimCount' },\n ],\n [signers, validatorCaller, BigInt(maxClaimCount)],\n );\n}\n"],"names":["_LimitedSignerValidator","DeployableTarget","limitedSignerValidatorAbi","address","params","readLimitedSignerValidatorSigners","payload","readLimitedSignerValidatorHashSignerData","request","result","simulateLimitedSignerValidatorValidate","writeLimitedSignerValidatorValidate","addresses","allowed","simulateLimitedSignerValidatorSetAuthorized","writeLimitedSignerValidatorSetAuthorized","simulateLimitedSignerValidatorSetValidatorCaller","writeLimitedSignerValidatorSetValidatorCaller","prepareLimitedSignerValidatorClaimDataPayload","_payload","_options","options","bytecode","prepareLimitedSignerValidatorPayload","SignerValidatorBases","RegistryType","LimitedSignerValidator","signer","incentiveData","chainId","validator","incentiveQuantity","claimant","boostId","typedData","trustedSignature","signTypedData","validatorData","prepareLimitedSignerValidatorInputParams","encodeAbiParameters","signature","signers","validatorCaller","maxClaimCount"],"mappings":"s0aA4SaA,EAAN,MAAMA,UAA+BC,EAAAA,gBAG1C,CAHK,aAAA,CAAA,MAAA,GAAA,SAAA,EAWL,KAAyB,IAAMC,GAAA,CA8B/B,MAAa,QAAQC,EAAkBC,EAAqB,CACnD,OAAA,MAAMC,EAAAA,GAAkC,KAAK,QAAS,CAC3D,QAAS,KAAK,mBAAmB,EACjC,KAAM,CAACF,CAAO,EAEd,GAAIC,CAAA,CACL,CACH,CAWA,MAAa,eACXE,EACAF,EACA,CACO,OAAA,MAAMG,EAAAA,GAAyC,KAAK,QAAS,CAClE,QAAS,KAAK,mBAAmB,EACjC,KAAM,CACJD,EAAQ,QACRA,EAAQ,kBACRA,EAAQ,SACRA,EAAQ,aACV,EAEA,GAAIF,CAAA,CACL,CACH,CAWA,MAAgB,SACdE,EACAF,EACA,CACA,OAAO,MAAM,KAAK,YAAY,KAAK,YAAYE,EAASF,CAAM,CAAC,CACjE,CAWA,MAAgB,YACdE,EACAF,EACA,CACA,KAAM,CAAE,QAAAI,EAAS,OAAAC,CAAO,EAAI,MAAMC,EAAA,GAChC,KAAK,QACL,CACE,QAAS,KAAK,mBAAmB,EACjC,KAAM,CACJJ,EAAQ,QACRA,EAAQ,YACRA,EAAQ,SACRA,EAAQ,SACV,EACA,GAAG,KAAK,wBAAwB,EAEhC,GAAIF,CACN,CAAA,EAMK,MAAA,CAAE,KAJI,MAAMO,EAAA,GACjB,KAAK,QACLH,CAAA,EAEa,OAAAC,EACjB,CAYA,MAAa,cACXG,EACAC,EACAT,EACA,CACA,OAAO,MAAM,KAAK,YAChB,KAAK,iBAAiBQ,EAAWC,EAAST,CAAM,CAAA,CAEpD,CAYA,MAAa,iBACXQ,EACAC,EACAT,EACA,CACA,KAAM,CAAE,QAAAI,EAAS,OAAAC,CAAA,EACf,MAAMK,EAAA,GAA4C,KAAK,QAAS,CAC9D,QAAS,KAAK,mBAAmB,EACjC,KAAM,CAACF,EAAWC,CAAO,EACzB,GAAG,KAAK,wBAAwB,EAEhC,GAAIT,CAAA,CACL,EAKI,MAAA,CAAE,KAJI,MAAMW,EAAA,GACjB,KAAK,QACLP,CAAA,EAEa,OAAAC,EACjB,CAWA,MAAa,sBAAsBN,EAAkBC,EAAsB,CACzE,KAAM,CAAE,QAAAI,EAAS,OAAAC,CAAA,EACf,MAAMO,EAAA,GAAiD,KAAK,QAAS,CACnE,QAAS,KAAK,mBAAmB,EACjC,KAAM,CAACb,CAAO,EACd,GAAG,KAAK,wBAAwB,EAEhC,GAAIC,CAAA,CACL,EAKI,MAAA,CAAE,KAJI,MAAMa,EAAA,GACjB,KAAK,QACLT,CAAA,EAEa,OAAAC,EACjB,CAWA,MAAa,mBAAmBN,EAAkBC,EAAsB,CACtE,OAAO,MAAM,KAAK,YAAY,KAAK,sBAAsBD,EAASC,CAAM,CAAC,CAC3E,CAUA,MAAa,gBACXA,EACc,CACd,OAAO,MAAMc,EAA8C,CACzD,GAAGd,EACH,UAAW,KAAK,mBAAmB,CAAA,CACpC,CACH,CAUgB,gBACde,EACAC,EACyB,CACzB,KAAM,CAACd,EAASe,CAAO,EAAI,KAAK,yBAC9BF,EACAC,CAAA,EAEK,MAAA,CACL,IAAKlB,EAAA,EACL,SAAAoB,EACA,KAAM,CAACC,EAAqCjB,CAAO,CAAC,EACpD,GAAG,KAAK,wBAAwBe,EAAQ,OAAO,CAAA,CAEnD,CACF,EA5OErB,EAAuB,MAAiC,CACtD,MAAO,OACP,GAAIwB,EAAA,eAAA,EASNxB,EAAuB,aAA6ByB,EAAa,aAAA,UA9B5D,IAAMC,EAAN1B,EAgRP,eAAsBkB,EAA8C,CAClE,OAAAS,EACA,cAAAC,EACA,QAAAC,EACA,UAAAC,EACA,kBAAAC,EACA,SAAAC,EACA,QAAAC,CACF,EAAwD,CAOtD,MAAMC,EAAY,CAChB,OAPa,CACb,KAAM,yBACN,QAAS,IACT,QAAAL,EACA,kBAAmBC,CAAA,EAInB,MAAO,CACL,oBAAqB,CACnB,CAAE,KAAM,UAAW,KAAM,SAAU,EACnC,CAAE,KAAM,oBAAqB,KAAM,OAAQ,EAC3C,CAAE,KAAM,WAAY,KAAM,SAAU,EACpC,CAAE,KAAM,gBAAiB,KAAM,OAAQ,CACzC,CACF,EACA,YAAa,sBACb,QAAS,CACP,QAAAG,EACA,kBAAAF,EACA,SAAAC,EACA,cAAAJ,CACF,CAAA,EAGIO,EAAmB,MAAMC,gBAAc,CAC3C,GAAGF,EACH,WAAYP,EAAO,GAAA,CACpB,EAGKU,EAAgBC,EAAyC,CAC7D,OAAQX,EAAO,QACf,UAAWQ,EACX,kBAAAJ,CAAA,CACD,EAgBM,OAduBQ,EAAA,oBAC5B,CACE,CACE,KAAM,QACN,KAAM,iBACN,WAAY,CACV,CAAE,KAAM,QAAS,KAAM,eAAgB,EACvC,CAAE,KAAM,QAAS,KAAM,eAAgB,CACzC,CACF,CACF,EACA,CAAC,CAAE,cAAAF,EAAe,cAAAT,EAAe,CAAA,CAIrC,CAWO,SAASU,EAAyC,CACvD,OAAAX,EACA,UAAAa,EACA,kBAAAT,CACF,EAAsC,CAC7B,OAAAQ,EAAA,oBACL,CACE,CACE,KAAM,QACN,KAAM,6BACN,WAAY,CACV,CAAE,KAAM,UAAW,KAAM,QAAS,EAClC,CAAE,KAAM,QAAS,KAAM,WAAY,EACnC,CAAE,KAAM,QAAS,KAAM,mBAAoB,CAC7C,CACF,CACF,EACA,CAAC,CAAE,OAAAZ,EAAQ,UAAAa,EAAW,kBAAAT,EAAmB,CAAA,CAE7C,CAeO,SAASR,EAAqC,CACnD,QAAAkB,EACA,gBAAAC,EACA,cAAAC,CACF,EAAkC,CACzB,OAAAJ,EAAA,oBACL,CACE,CAAE,KAAM,YAAa,KAAM,SAAU,EACrC,CAAE,KAAM,UAAW,KAAM,iBAAkB,EAC3C,CAAE,KAAM,UAAW,KAAM,eAAgB,CAC3C,EACA,CAACE,EAASC,EAAiB,OAAOC,CAAa,CAAC,CAAA,CAEpD"}
@@ -1,10 +1,10 @@
1
- import { V as r, bx as u, by as m, bz as h, bA as y, bB as p, bC as g, bD as w, bE as A } from "../generated-Cyvr_Tjx.js";
1
+ import { S as r, bx as u, by as m, bz as y, bA as h, bB as p, bC as g, bD as w, bE as A } from "../generated-pJZHmRCK.js";
2
2
  import { encodeAbiParameters as s } from "viem";
3
- import { signTypedData as C } from "viem/accounts";
4
- import { d as D } from "../deployments-D0fs26TV.js";
3
+ import { signTypedData as D } from "viem/accounts";
4
+ import { d as v } from "../deployments-DqjtOTUr.js";
5
5
  import { DeployableTarget as V } from "../Deployable/DeployableTarget.js";
6
- import { RegistryType as v } from "../utils.js";
7
- const R = "0x610120604052348015610010575f80fd5b503073ffffffffffffffffffffffffffffffffffffffff16608081815250504660a0818152505060608061004861013960201b60201c565b6100635761005a61014160201b60201c565b80925081935050505b5f61007261013960201b60201c565b610083578280519060200120610087565b5f801b5b90505f61009861013960201b60201c565b6100a95782805190602001206100ad565b5f801b5b90508160c081815250508060e081815250505f6100ce61013960201b60201c565b610118576040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815283602082015282604082015246606082015230608082015260a081209150505b80610100818152505050505050506101346101b860201b60201c565b61024d565b5f6001905090565b6060806040518060400160405280601681526020017f4c696d697465645369676e657256616c696461746f720000000000000000000081525091506040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525090509091565b5f6101c761022460201b60201c565b9050805460018116156101e15763f92ee8a95f526004601cfd5b8160c01c808260011c1461021f578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b60805160a05160c05160e0516101005161235761028a5f395f610fda01525f61128101525f61125e01525f6112f001525f61131401526123575ff3fe608060405260043610610113575f3560e01c8063715018a61161009f578063ce5c134f11610063578063ce5c134f14610351578063d3de6e751461037b578063f04e283e146103b7578063f2fde38b146103d3578063fee81cf4146103ef57610113565b8063715018a614610289578063736c0d5b1461029357806384b0196e146102cf5780638da5cb5b146102ff578063a1d2756f1461032957610113565b80632f9e058b116100e65780632f9e058b146101c35780634359d28a146101ff578063439fab911461022757806354d1f13d1461024f578063703b69001461025957610113565b806301ffc9a7146101175780630668e9d414610153578063256929621461018f57806328d6183b14610199575b5f80fd5b348015610122575f80fd5b5061013d60048036038101906101389190611505565b61042b565b60405161014a919061154a565b60405180910390f35b34801561015e575f80fd5b50610179600480360381019061017491906115f0565b6104a4565b6040516101869190611658565b60405180910390f35b6101976104d9565b005b3480156101a4575f80fd5b506101ad61052a565b6040516101ba9190611680565b60405180910390f35b3480156101ce575f80fd5b506101e960048036038101906101e491906116c3565b610551565b6040516101f691906116fd565b60405180910390f35b34801561020a575f80fd5b50610225600480360381019061022091906117cc565b610566565b005b348015610232575f80fd5b5061024d6004803603810190610248919061189f565b61066f565b005b6102576107f1565b005b610273600480360381019061026e91906118ea565b61082a565b604051610280919061154a565b60405180910390f35b61029161088f565b005b34801561029e575f80fd5b506102b960048036038101906102b4919061196e565b6108a2565b6040516102c6919061154a565b60405180910390f35b3480156102da575f80fd5b506102e36108be565b6040516102f69796959493929190611b09565b60405180910390f35b34801561030a575f80fd5b50610313610909565b6040516103209190611b8b565b60405180910390f35b348015610334575f80fd5b5061034f600480360381019061034a919061196e565b610931565b005b34801561035c575f80fd5b5061036561097c565b60405161037291906116fd565b60405180910390f35b348015610386575f80fd5b506103a1600480360381019061039c9190611d02565b610982565b6040516103ae9190611658565b60405180910390f35b6103d160048036038101906103cc919061196e565b6109eb565b005b6103ed60048036038101906103e8919061196e565b610a29565b005b3480156103fa575f80fd5b506104156004803603810190610410919061196e565b610a52565b60405161042291906116fd565b60405180910390f35b5f7fc8ebc758000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061049d575061049c82610a6b565b5b9050919050565b5f8383836040516020016104ba93929190611de7565b6040516020818303038152906040528051906020012090509392505050565b5f6104e2610ae4565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7fc8ebc75800000000000000000000000000000000000000000000000000000000905090565b6001602052805f5260405f205f915090505481565b61056e610aee565b8181905084849050146105ad576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84849050811015610668578282828181106105cd576105cc611e23565b5b90506020020160208101906105e29190611e7a565b5f808787858181106105f7576105f6611e23565b5b905060200201602081019061060c919061196e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506105af565b5050505050565b5f610678610b25565b905080546003825580156106aa5760018160011c14303b106106a15763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f805f85858101906106bd9190611fa0565b9250925092506106e6835f815181106106d9576106d8611e23565b5b6020026020010151610b4e565b806002819055505f5b83518110156107735760015f8086848151811061070f5761070e611e23565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506106ef565b508160045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505080156107ec576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f610836868686610c24565b61087757836040517f059b704500000000000000000000000000000000000000000000000000000000815260040161086e9190611b8b565b60405180910390fd5b6108848686868686610c8b565b905095945050505050565b610897610aee565b6108a05f610e7e565b565b5f602052805f5260405f205f915054906101000a900460ff1681565b5f6060805f805f60607f0f0000000000000000000000000000000000000000000000000000000000000096506108f2610f44565b809650819750505046935030925090919293949596565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b610939610aee565b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60025481565b5f6109e17ffea51d5bd45bcd3c2ecc3679b43a3b80b0bd0923f8c16f822455b8cdecd9852f86868686805190602001206040516020016109c695949392919061201b565b60405160208183030381529060405280519060200120610fbb565b9050949350505050565b6109f3610aee565b63389a75e1600c52805f526020600c208054421115610a1957636f5e88185f526004601cfd5b5f815550610a2681610e7e565b50565b610a31610aee565b8060601b610a4657637448fbae5f526004601cfd5b610a4f81610e7e565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fc8ebc758000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610add5750610adc82611037565b5b9050919050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610b23576382b429005f526004601cfd5b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610b566110b0565b15610bce577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610b9057630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610c21565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f80610c318585856104a4565b90505f6001805f8481526020019081526020015f2054610c519190612099565b9050600254811115610c67575f92505050610c84565b8060015f8481526020019081526020015f20819055506001925050505b9392505050565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d12576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8383810190610d229190612159565b90505f815f0151806020019051810190610d3c91906122b3565b90505f610d53898360400151898660200151610982565b905087826040015160ff1611610da6578160400151886040517f17c66bc7000000000000000000000000000000000000000000000000000000008152600401610d9d9291906122fa565b60405180910390fd5b5f80835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610e28576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e3e818960036110b49092919063ffffffff16565b610e70818360200151845f015173ffffffffffffffffffffffffffffffffffffffff166111199092919063ffffffff16565b935050505095945050505050565b610e866110b0565b15610eeb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610f41565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b6060806040518060400160405280601681526020017f4c696d697465645369676e657256616c696461746f720000000000000000000081525091506040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525090509091565b5f610fc461121c565b15610fd857610fd1611224565b9050611014565b7f000000000000000000000000000000000000000000000000000000000000000090506110036112ec565b1561101357611010611224565b90505b5b6719010000000000005f5280601a5281603a52604260182090505f603a52919050565b5f7fb8ce7b22000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110a957506110a882611344565b5b9050919050565b5f90565b5f633f57fc5c60e01b90505f634de1225a60e01b905060078311156110df57815f528260045260245ffd5b84602052835f5260405f206001841b81541880851c600116600118801561110c57835f528560045260245ffd5b8183555050505050505050565b5f8360601b60601c9350831561121557604051835f5260208301516040526040835103611186576040830151601b8160ff1c016020528060011b60011c6060526020600160805f60015afa805187183d151761118357600193505f60605282604052505050611215565b50505b60418351036111cc5760608301515f1a60205260408301516060526020600160805f60015afa805186183d15176111ca57600192505f606052816040525050611215565b505b5f60605280604052631626ba7e60e01b808252846004830152602482016040815284516020018060448501828860045afa5060208260443d01868b5afa83835114169450505050505b9392505050565b5f6001905090565b5f8061122e61121c565b1561125c575f8061123d610f44565b91509150818051906020012093508080519060200120925050506112a3565b7f000000000000000000000000000000000000000000000000000000000000000091507f000000000000000000000000000000000000000000000000000000000000000090505b6040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815282602082015281604082015246606082015230608082015260a081209250505090565b5f807f000000000000000000000000000000000000000000000000000000000000000090505f7f0000000000000000000000000000000000000000000000000000000000000000905080301482461416159250505090565b5f7f5912b89c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806113b657506113b5826113bd565b5b9050919050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061142f575061142e82611436565b5b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6114e4816114b0565b81146114ee575f80fd5b50565b5f813590506114ff816114db565b92915050565b5f6020828403121561151a576115196114a8565b5b5f611527848285016114f1565b91505092915050565b5f8115159050919050565b61154481611530565b82525050565b5f60208201905061155d5f83018461153b565b92915050565b5f819050919050565b61157581611563565b811461157f575f80fd5b50565b5f813590506115908161156c565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6115bf82611596565b9050919050565b6115cf816115b5565b81146115d9575f80fd5b50565b5f813590506115ea816115c6565b92915050565b5f805f60608486031215611607576116066114a8565b5b5f61161486828701611582565b935050602061162586828701611582565b9250506040611636868287016115dc565b9150509250925092565b5f819050919050565b61165281611640565b82525050565b5f60208201905061166b5f830184611649565b92915050565b61167a816114b0565b82525050565b5f6020820190506116935f830184611671565b92915050565b6116a281611640565b81146116ac575f80fd5b50565b5f813590506116bd81611699565b92915050565b5f602082840312156116d8576116d76114a8565b5b5f6116e5848285016116af565b91505092915050565b6116f781611563565b82525050565b5f6020820190506117105f8301846116ee565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261173757611736611716565b5b8235905067ffffffffffffffff8111156117545761175361171a565b5b6020830191508360208202830111156117705761176f61171e565b5b9250929050565b5f8083601f84011261178c5761178b611716565b5b8235905067ffffffffffffffff8111156117a9576117a861171a565b5b6020830191508360208202830111156117c5576117c461171e565b5b9250929050565b5f805f80604085870312156117e4576117e36114a8565b5b5f85013567ffffffffffffffff811115611801576118006114ac565b5b61180d87828801611722565b9450945050602085013567ffffffffffffffff8111156118305761182f6114ac565b5b61183c87828801611777565b925092505092959194509250565b5f8083601f84011261185f5761185e611716565b5b8235905067ffffffffffffffff81111561187c5761187b61171a565b5b6020830191508360018202830111156118985761189761171e565b5b9250929050565b5f80602083850312156118b5576118b46114a8565b5b5f83013567ffffffffffffffff8111156118d2576118d16114ac565b5b6118de8582860161184a565b92509250509250929050565b5f805f805f60808688031215611903576119026114a8565b5b5f61191088828901611582565b955050602061192188828901611582565b9450506040611932888289016115dc565b935050606086013567ffffffffffffffff811115611953576119526114ac565b5b61195f8882890161184a565b92509250509295509295909350565b5f60208284031215611983576119826114a8565b5b5f611990848285016115dc565b91505092915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6119cd81611999565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611a15826119d3565b611a1f81856119dd565b9350611a2f8185602086016119ed565b611a38816119fb565b840191505092915050565b611a4c816115b5565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611a8481611563565b82525050565b5f611a958383611a7b565b60208301905092915050565b5f602082019050919050565b5f611ab782611a52565b611ac18185611a5c565b9350611acc83611a6c565b805f5b83811015611afc578151611ae38882611a8a565b9750611aee83611aa1565b925050600181019050611acf565b5085935050505092915050565b5f60e082019050611b1c5f83018a6119c4565b8181036020830152611b2e8189611a0b565b90508181036040830152611b428188611a0b565b9050611b5160608301876116ee565b611b5e6080830186611a43565b611b6b60a0830185611649565b81810360c0830152611b7d8184611aad565b905098975050505050505050565b5f602082019050611b9e5f830184611a43565b92915050565b5f60ff82169050919050565b611bb981611ba4565b8114611bc3575f80fd5b50565b5f81359050611bd481611bb0565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611c14826119fb565b810181811067ffffffffffffffff82111715611c3357611c32611bde565b5b80604052505050565b5f611c4561149f565b9050611c518282611c0b565b919050565b5f67ffffffffffffffff821115611c7057611c6f611bde565b5b611c79826119fb565b9050602081019050919050565b828183375f83830152505050565b5f611ca6611ca184611c56565b611c3c565b905082815260208101848484011115611cc257611cc1611bda565b5b611ccd848285611c86565b509392505050565b5f82601f830112611ce957611ce8611716565b5b8135611cf9848260208601611c94565b91505092915050565b5f805f8060808587031215611d1a57611d196114a8565b5b5f611d2787828801611582565b9450506020611d3887828801611bc6565b9350506040611d49878288016115dc565b925050606085013567ffffffffffffffff811115611d6a57611d696114ac565b5b611d7687828801611cd5565b91505092959194509250565b5f819050919050565b611d9c611d9782611563565b611d82565b82525050565b5f8160601b9050919050565b5f611db882611da2565b9050919050565b5f611dc982611dae565b9050919050565b611de1611ddc826115b5565b611dbf565b82525050565b5f611df28286611d8b565b602082019150611e028285611d8b565b602082019150611e128284611dd0565b601482019150819050949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b611e5981611530565b8114611e63575f80fd5b50565b5f81359050611e7481611e50565b92915050565b5f60208284031215611e8f57611e8e6114a8565b5b5f611e9c84828501611e66565b91505092915050565b5f67ffffffffffffffff821115611ebf57611ebe611bde565b5b602082029050602081019050919050565b5f611ee2611edd84611ea5565b611c3c565b90508083825260208201905060208402830185811115611f0557611f0461171e565b5b835b81811015611f2e5780611f1a88826115dc565b845260208401935050602081019050611f07565b5050509392505050565b5f82601f830112611f4c57611f4b611716565b5b8135611f5c848260208601611ed0565b91505092915050565b5f611f6f82611596565b9050919050565b611f7f81611f65565b8114611f89575f80fd5b50565b5f81359050611f9a81611f76565b92915050565b5f805f60608486031215611fb757611fb66114a8565b5b5f84013567ffffffffffffffff811115611fd457611fd36114ac565b5b611fe086828701611f38565b9350506020611ff186828701611f8c565b925050604061200286828701611582565b9150509250925092565b61201581611ba4565b82525050565b5f60a08201905061202e5f830188611649565b61203b60208301876116ee565b612048604083018661200c565b6120556060830185611a43565b6120626080830184611649565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6120a382611563565b91506120ae83611563565b92508282019050808211156120c6576120c561206c565b5b92915050565b5f80fd5b5f80fd5b5f604082840312156120e9576120e86120cc565b5b6120f36040611c3c565b90505f82013567ffffffffffffffff811115612112576121116120d0565b5b61211e84828501611cd5565b5f83015250602082013567ffffffffffffffff811115612141576121406120d0565b5b61214d84828501611cd5565b60208301525092915050565b5f6020828403121561216e5761216d6114a8565b5b5f82013567ffffffffffffffff81111561218b5761218a6114ac565b5b612197848285016120d4565b91505092915050565b5f815190506121ae816115c6565b92915050565b5f6121c66121c184611c56565b611c3c565b9050828152602081018484840111156121e2576121e1611bda565b5b6121ed8482856119ed565b509392505050565b5f82601f83011261220957612208611716565b5b81516122198482602086016121b4565b91505092915050565b5f8151905061223081611bb0565b92915050565b5f6060828403121561224b5761224a6120cc565b5b6122556060611c3c565b90505f612264848285016121a0565b5f83015250602082015167ffffffffffffffff811115612287576122866120d0565b5b612293848285016121f5565b60208301525060406122a784828501612222565b60408301525092915050565b5f602082840312156122c8576122c76114a8565b5b5f82015167ffffffffffffffff8111156122e5576122e46114ac565b5b6122f184828501612236565b91505092915050565b5f60408201905061230d5f83018561200c565b61231a60208301846116ee565b939250505056fea2646970667358221220a6a2f680d6474f5dfa7720a37994a4015b61738d0d41bbea1eee6064131ca86c64736f6c634300081a0033", t = class t extends V {
6
+ import { RegistryType as C } from "../utils.js";
7
+ const z = "0x610120604052348015610010575f80fd5b50306080524660a0525f60c081905260e081905261010052610030610035565b610096565b63409feecd19805460018116156100535763f92ee8a95f526004601cfd5b8160c01c808260011c14610091578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60805160a05160c05160e0516101005161194d6100c45f395f50505f50505f50505f50505f505061194d5ff3fe60806040526004361061013d575f3560e01c8063715018a6116100bb578063ce5c134f11610071578063f04e283e11610057578063f04e283e1461036d578063f2fde38b14610380578063fee81cf414610393575f80fd5b8063ce5c134f14610339578063d3de6e751461034e575f80fd5b806384b0196e116100a157806384b0196e146102a05780638da5cb5b146102c7578063a1d2756f1461031a575f80fd5b8063715018a61461026a578063736c0d5b14610272575f80fd5b80632f9e058b11610110578063439fab91116100f6578063439fab911461023057806354d1f13d1461024f578063703b690014610257575f80fd5b80632f9e058b146101e65780634359d28a14610211575f80fd5b806301ffc9a7146101415780630668e9d41461017557806325692962146101a257806328d6183b146101ac575b5f80fd5b34801561014c575f80fd5b5061016061015b36600461110d565b6103c4565b60405190151581526020015b60405180910390f35b348015610180575f80fd5b5061019461018f36600461116d565b61041f565b60405190815260200161016c565b6101aa610480565b005b3480156101b7575f80fd5b506040517fc8ebc75800000000000000000000000000000000000000000000000000000000815260200161016c565b3480156101f1575f80fd5b506101946102003660046111a3565b60016020525f908152604090205481565b34801561021c575f80fd5b506101aa61022b366004611202565b6104cd565b34801561023b575f80fd5b506101aa61024a3660046112ac565b6105c9565b6101aa61075e565b6101606102653660046112eb565b610797565b6101aa61080d565b34801561027d575f80fd5b5061016061028c366004611350565b5f6020819052908152604090205460ff1681565b3480156102ab575f80fd5b506102b4610820565b60405161016c97969594939291906113b7565b3480156102d2575f80fd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275460405173ffffffffffffffffffffffffffffffffffffffff909116815260200161016c565b348015610325575f80fd5b506101aa610334366004611350565b6108c8565b348015610344575f80fd5b5061019460025481565b348015610359575f80fd5b506101946103683660046115c0565b610917565b6101aa61037b366004611350565b6109aa565b6101aa61038e366004611350565b6109e7565b34801561039e575f80fd5b506101946103ad366004611350565b63389a75e1600c9081525f91909152602090205490565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fc8ebc758000000000000000000000000000000000000000000000000000000001480610419575061041982610a0d565b92915050565b6040805160208101859052908101839052606082811b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016908201525f906074016040516020818303038152906040528051906020012090505b9392505050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b6104d5610a62565b82811461050e576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b838110156105c25782828281811061052a5761052a611628565b905060200201602081019061053f9190611655565b5f8087878581811061055357610553611628565b90506020020160208101906105689190611350565b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101610510565b5050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf601132805460038255801561061a5760018160011c14303b106106115763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f808061062a85870187611684565b925092509250610652835f8151811061064557610645611628565b6020026020010151610a97565b60028190555f5b83518110156106dc5760015f8086848151811061067857610678611628565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff1682528101919091526040015f2080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101610659565b5050600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055508015610759576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f6107a3868686610afa565b6107f6576040517f059b704500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024015b60405180910390fd5b6108038686868686610b54565b9695505050505050565b610815610a62565b61081e5f610cdc565b565b7f0f000000000000000000000000000000000000000000000000000000000000006060805f8080836108b6604080518082018252601681527f4c696d697465645369676e657256616c696461746f72000000000000000000006020808301919091528251808401909352600183527f31000000000000000000000000000000000000000000000000000000000000009083015291565b97989097965046955030945091925090565b6108d0610a62565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b8051602080830191909120604080517ffea51d5bd45bcd3c2ecc3679b43a3b80b0bd0923f8c16f822455b8cdecd9852f93810193909352820186905260ff8516606083015273ffffffffffffffffffffffffffffffffffffffff8416608083015260a08201525f906109a19060c00160405160208183030381529060405280519060200120610d41565b95945050505050565b6109b2610a62565b63389a75e1600c52805f526020600c2080544211156109d857636f5e88185f526004601cfd5b5f90556109e481610cdc565b50565b6109ef610a62565b8060601b610a0457637448fbae5f526004601cfd5b6109e481610cdc565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fc8ebc758000000000000000000000000000000000000000000000000000000001480610419575061041982610d6d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754331461081e576382b429005f526004601cfd5b73ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b5f80610b0785858561041f565b5f8181526001602081905260408220549293509091610b2591611754565b9050600254811115610b3b575f92505050610479565b5f91825260016020819052604090922055949350505050565b6004545f9073ffffffffffffffffffffffffffffffffffffffff163314610ba7576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610bb48385018561178c565b90505f815f0151806020019051810190610bce919061184c565b90505f610be5898360400151898660200151610917565b905087826040015160ff1611610c395760408083015190517f17c66bc700000000000000000000000000000000000000000000000000000000815260ff9091166004820152602481018990526044016107ed565b815173ffffffffffffffffffffffffffffffffffffffff165f9081526020819052604090205460ff16610c98576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ca46003828a610dc2565b60208201518251610ccf9173ffffffffffffffffffffffffffffffffffffffff909116908390610e50565b9998505050505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b5f610d4a610f5a565b6719010000000000005f908152601a91909152603a928352604260182092525090565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fb8ce7b22000000000000000000000000000000000000000000000000000000001480610419575061041982611027565b7f3f57fc5c000000000000000000000000000000000000000000000000000000007f4de1225a000000000000000000000000000000000000000000000000000000006007831115610e1957815f528260045260245ffd5b84602052835f5260405f206001841b81541880851c6001166001188015610e4657835f528560045260245ffd5b5090555050505050565b73ffffffffffffffffffffffffffffffffffffffff909216915f831561047957604051835f5260208301516040526040835103610ec9576040830151601b8160ff1c016020528060011b60011c606052506020600160805f60015afa805186183d1517610ec757505f606052604052506001610479565b505b6041835103610f0c5760608301515f1a60205260408301516060526020600160805f60015afa805186183d1517610f0a57505f606052604052506001610479565b505b5f60605280604052631626ba7e60e01b808252846004830152602482016040815284516020018060448501828860045afa505060208160443d01858a5afa9051909114169150509392505050565b5f805f80610fcc604080518082018252601681527f4c696d697465645369676e657256616c696461746f72000000000000000000006020808301919091528251808401909352600183527f31000000000000000000000000000000000000000000000000000000000000009083015291565b8151602092830120815191830191909120604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8152938401929092529082015246606082015230608082015260a09020949350505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f5912b89c0000000000000000000000000000000000000000000000000000000014806104195750610419825f7fffffffff0000000000000000000000000000000000000000000000000000000082167f6ab67a0d00000000000000000000000000000000000000000000000000000000148061041957507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610419565b5f6020828403121561111d575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610479575f80fd5b73ffffffffffffffffffffffffffffffffffffffff811681146109e4575f80fd5b5f805f6060848603121561117f575f80fd5b833592506020840135915060408401356111988161114c565b809150509250925092565b5f602082840312156111b3575f80fd5b5035919050565b5f8083601f8401126111ca575f80fd5b50813567ffffffffffffffff8111156111e1575f80fd5b6020830191508360208260051b85010111156111fb575f80fd5b9250929050565b5f805f8060408587031215611215575f80fd5b843567ffffffffffffffff81111561122b575f80fd5b611237878288016111ba565b909550935050602085013567ffffffffffffffff811115611256575f80fd5b611262878288016111ba565b95989497509550505050565b5f8083601f84011261127e575f80fd5b50813567ffffffffffffffff811115611295575f80fd5b6020830191508360208285010111156111fb575f80fd5b5f80602083850312156112bd575f80fd5b823567ffffffffffffffff8111156112d3575f80fd5b6112df8582860161126e565b90969095509350505050565b5f805f805f608086880312156112ff575f80fd5b853594506020860135935060408601356113188161114c565b9250606086013567ffffffffffffffff811115611333575f80fd5b61133f8882890161126e565b969995985093965092949392505050565b5f60208284031215611360575f80fd5b81356104798161114c565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b7fff000000000000000000000000000000000000000000000000000000000000008816815260e060208201525f6113f160e083018961136b565b8281036040840152611403818961136b565b6060840188905273ffffffffffffffffffffffffffffffffffffffff8716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b81811015611465578351835260209384019390920191600101611447565b50909b9a5050505050505050505050565b60ff811681146109e4575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156114d4576114d4611484565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561152157611521611484565b604052919050565b5f67ffffffffffffffff82111561154257611542611484565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f82601f83011261157d575f80fd5b813561159061158b82611529565b6114da565b8181528460208386010111156115a4575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f80608085870312156115d3575f80fd5b8435935060208501356115e581611476565b925060408501356115f58161114c565b9150606085013567ffffffffffffffff811115611610575f80fd5b61161c8782880161156e565b91505092959194509250565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215611665575f80fd5b81358015158114610479575f80fd5b803561167f8161114c565b919050565b5f805f60608486031215611696575f80fd5b833567ffffffffffffffff8111156116ac575f80fd5b8401601f810186136116bc575f80fd5b803567ffffffffffffffff8111156116d6576116d6611484565b8060051b6116e6602082016114da565b91825260208184018101929081019089841115611701575f80fd5b6020850194505b8385101561172f578435925061171d8361114c565b82825260209485019490910190611708565b809750505050505061174360208501611674565b929592945050506040919091013590565b80820180821115610419577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6020828403121561179c575f80fd5b813567ffffffffffffffff8111156117b2575f80fd5b8201604081850312156117c3575f80fd5b6040805190810167ffffffffffffffff811182821017156117e6576117e6611484565b604052813567ffffffffffffffff8111156117ff575f80fd5b61180b8682850161156e565b825250602082013567ffffffffffffffff811115611827575f80fd5b6118338682850161156e565b602083015250949350505050565b805161167f81611476565b5f6020828403121561185c575f80fd5b815167ffffffffffffffff811115611872575f80fd5b820160608185031215611883575f80fd5b61188b6114b1565b81516118968161114c565b8152602082015167ffffffffffffffff8111156118b1575f80fd5b8201601f810186136118c1575f80fd5b80516118cf61158b82611529565b8181528760208385010111156118e3575f80fd5b8160208401602083015e5f6020838301015280602085015250505061190a60408301611841565b604082015294935050505056fea264697066735822122063c3658c9a3036ea162ceac551ee8d1dfba428fee8f20bcb409727cb88030d5a64736f6c634300081a0033", c = class c extends V {
8
8
  constructor() {
9
9
  super(...arguments), this.abi = r;
10
10
  }
@@ -69,7 +69,7 @@ const R = "0x610120604052348015610010575f80fd5b503073fffffffffffffffffffffffffff
69
69
  * @returns {Promise<boolean>} - True if the action has been validated based on the data payload
70
70
  */
71
71
  async validateRaw(f, b) {
72
- const { request: a, result: e } = await h(
72
+ const { request: a, result: e } = await y(
73
73
  this._config,
74
74
  {
75
75
  address: this.assertValidAddress(),
@@ -84,7 +84,7 @@ const R = "0x610120604052348015610010575f80fd5b503073fffffffffffffffffffffffffff
84
84
  ...b
85
85
  }
86
86
  );
87
- return { hash: await y(
87
+ return { hash: await h(
88
88
  this._config,
89
89
  a
90
90
  ), result: e };
@@ -115,7 +115,7 @@ const R = "0x610120604052348015610010575f80fd5b503073fffffffffffffffffffffffffff
115
115
  * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
116
116
  */
117
117
  async setAuthorizedRaw(f, b, a) {
118
- const { request: e, result: d } = await p(this._config, {
118
+ const { request: e, result: t } = await p(this._config, {
119
119
  address: this.assertValidAddress(),
120
120
  args: [f, b],
121
121
  ...this.optionallyAttachAccount(),
@@ -125,7 +125,7 @@ const R = "0x610120604052348015610010575f80fd5b503073fffffffffffffffffffffffffff
125
125
  return { hash: await g(
126
126
  this._config,
127
127
  e
128
- ), result: d };
128
+ ), result: t };
129
129
  }
130
130
  /**
131
131
  * Update the authorized caller of the validator function
@@ -170,7 +170,7 @@ const R = "0x610120604052348015610010575f80fd5b503073fffffffffffffffffffffffffff
170
170
  * @returns {Promise<Hex>}
171
171
  */
172
172
  async encodeClaimData(f) {
173
- return await I({
173
+ return await R({
174
174
  ...f,
175
175
  validator: this.assertValidAddress()
176
176
  });
@@ -190,27 +190,27 @@ const R = "0x610120604052348015610010575f80fd5b503073fffffffffffffffffffffffffff
190
190
  );
191
191
  return {
192
192
  abi: r,
193
- bytecode: R,
194
- args: [S(a)],
193
+ bytecode: z,
194
+ args: [I(a)],
195
195
  ...this.optionallyAttachAccount(e.account)
196
196
  };
197
197
  }
198
198
  };
199
- t.bases = {
199
+ c.bases = {
200
200
  31337: void 0,
201
- ...D
202
- }, t.registryType = v.VALIDATOR;
203
- let n = t;
204
- async function I({
205
- signer: c,
201
+ ...v
202
+ }, c.registryType = C.VALIDATOR;
203
+ let n = c;
204
+ async function R({
205
+ signer: d,
206
206
  incentiveData: f,
207
207
  chainId: b,
208
208
  validator: a,
209
209
  incentiveQuantity: e,
210
- claimant: d,
210
+ claimant: t,
211
211
  boostId: i
212
212
  }) {
213
- const o = await C({
213
+ const o = await D({
214
214
  ...{
215
215
  domain: {
216
216
  name: "LimitedSignerValidator",
@@ -230,13 +230,13 @@ async function I({
230
230
  message: {
231
231
  boostId: i,
232
232
  incentiveQuantity: e,
233
- claimant: d,
233
+ claimant: t,
234
234
  incentiveData: f
235
235
  }
236
236
  },
237
- privateKey: c.key
238
- }), l = P({
239
- signer: c.account,
237
+ privateKey: d.key
238
+ }), l = S({
239
+ signer: d.account,
240
240
  signature: o,
241
241
  incentiveQuantity: e
242
242
  // Adjust incentive quantity as necessary
@@ -255,8 +255,8 @@ async function I({
255
255
  [{ validatorData: l, incentiveData: f }]
256
256
  );
257
257
  }
258
- function P({
259
- signer: c,
258
+ function S({
259
+ signer: d,
260
260
  signature: f,
261
261
  incentiveQuantity: b
262
262
  }) {
@@ -272,11 +272,11 @@ function P({
272
272
  ]
273
273
  }
274
274
  ],
275
- [{ signer: c, signature: f, incentiveQuantity: b }]
275
+ [{ signer: d, signature: f, incentiveQuantity: b }]
276
276
  );
277
277
  }
278
- function S({
279
- signers: c,
278
+ function I({
279
+ signers: d,
280
280
  validatorCaller: f,
281
281
  maxClaimCount: b
282
282
  }) {
@@ -286,14 +286,14 @@ function S({
286
286
  { type: "address", name: "validatorCaller" },
287
287
  { type: "uint256", name: "maxClaimCount" }
288
288
  ],
289
- [c, f, BigInt(b)]
289
+ [d, f, BigInt(b)]
290
290
  );
291
291
  }
292
292
  export {
293
293
  n as LimitedSignerValidator,
294
294
  r as limitedSignerValidatorAbi,
295
- I as prepareLimitedSignerValidatorClaimDataPayload,
296
- P as prepareLimitedSignerValidatorInputParams,
297
- S as prepareLimitedSignerValidatorPayload
295
+ R as prepareLimitedSignerValidatorClaimDataPayload,
296
+ S as prepareLimitedSignerValidatorInputParams,
297
+ I as prepareLimitedSignerValidatorPayload
298
298
  };
299
299
  //# sourceMappingURL=LimitedSignerValidator.js.map