@boostxyz/sdk 1.1.0-alpha.24 → 2.0.0-alpha.25

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 (133) hide show
  1. package/dist/Actions/Action.cjs +1 -1
  2. package/dist/Actions/Action.js +7 -7
  3. package/dist/Actions/EventAction.cjs +1 -1
  4. package/dist/Actions/EventAction.cjs.map +1 -1
  5. package/dist/Actions/EventAction.d.ts +7 -7
  6. package/dist/Actions/EventAction.d.ts.map +1 -1
  7. package/dist/Actions/EventAction.js +153 -152
  8. package/dist/Actions/EventAction.js.map +1 -1
  9. package/dist/AllowLists/AllowList.cjs +1 -1
  10. package/dist/AllowLists/AllowList.js +10 -10
  11. package/dist/AllowLists/SimpleAllowList.cjs +1 -1
  12. package/dist/AllowLists/SimpleAllowList.js +10 -10
  13. package/dist/AllowLists/SimpleDenyList.cjs +1 -1
  14. package/dist/AllowLists/SimpleDenyList.js +3 -3
  15. package/dist/Auth/PassthroughAuth.cjs +1 -1
  16. package/dist/Auth/PassthroughAuth.js +1 -1
  17. package/dist/BoostCore.cjs +2 -1
  18. package/dist/BoostCore.cjs.map +1 -1
  19. package/dist/BoostCore.d.ts +564 -1
  20. package/dist/BoostCore.d.ts.map +1 -1
  21. package/dist/BoostCore.js +1322 -29
  22. package/dist/BoostCore.js.map +1 -1
  23. package/dist/BoostRegistry.cjs +1 -1
  24. package/dist/BoostRegistry.js +27 -27
  25. package/dist/Budgets/Budget.cjs +1 -1
  26. package/dist/Budgets/Budget.js +2 -2
  27. package/dist/Budgets/ManagedBudget.cjs +1 -1
  28. package/dist/Budgets/ManagedBudget.js +23 -23
  29. package/dist/Deployable/DeployableTarget.cjs +1 -1
  30. package/dist/Deployable/DeployableTarget.js +1 -1
  31. package/dist/Deployable/DeployableTargetWithRBAC.cjs +1 -1
  32. package/dist/Deployable/DeployableTargetWithRBAC.js +23 -23
  33. package/dist/Incentives/AllowListIncentive.cjs +1 -1
  34. package/dist/Incentives/AllowListIncentive.js +8 -8
  35. package/dist/Incentives/CGDAIncentive.cjs +1 -1
  36. package/dist/Incentives/CGDAIncentive.js +12 -12
  37. package/dist/Incentives/ERC20Incentive.cjs +1 -1
  38. package/dist/Incentives/ERC20Incentive.js +16 -16
  39. package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs +2 -0
  40. package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs.map +1 -0
  41. package/dist/Incentives/ERC20VariableCriteriaIncentive.d.ts +42 -15
  42. package/dist/Incentives/ERC20VariableCriteriaIncentive.d.ts.map +1 -1
  43. package/dist/Incentives/ERC20VariableCriteriaIncentive.js +188 -0
  44. package/dist/Incentives/ERC20VariableCriteriaIncentive.js.map +1 -0
  45. package/dist/Incentives/ERC20VariableIncentive.cjs +2 -0
  46. package/dist/Incentives/ERC20VariableIncentive.cjs.map +1 -0
  47. package/dist/Incentives/ERC20VariableIncentive.d.ts +7 -5
  48. package/dist/Incentives/ERC20VariableIncentive.d.ts.map +1 -1
  49. package/dist/{Incentive-rM5nKznp.js → Incentives/ERC20VariableIncentive.js} +42 -67
  50. package/dist/Incentives/ERC20VariableIncentive.js.map +1 -0
  51. package/dist/Incentives/Incentive.cjs +1 -1
  52. package/dist/Incentives/Incentive.cjs.map +1 -1
  53. package/dist/Incentives/Incentive.d.ts +552 -3
  54. package/dist/Incentives/Incentive.d.ts.map +1 -1
  55. package/dist/Incentives/Incentive.js +40 -16
  56. package/dist/Incentives/Incentive.js.map +1 -1
  57. package/dist/Incentives/PointsIncentive.cjs +1 -1
  58. package/dist/Incentives/PointsIncentive.js +8 -8
  59. package/dist/{SimpleDenyList-DNj5qDWM.cjs → SimpleDenyList-BdlpZdDz.cjs} +2 -2
  60. package/dist/{SimpleDenyList-DNj5qDWM.cjs.map → SimpleDenyList-BdlpZdDz.cjs.map} +1 -1
  61. package/dist/{SimpleDenyList-BDXpY74P.js → SimpleDenyList-D0cyVUVv.js} +16 -16
  62. package/dist/{SimpleDenyList-BDXpY74P.js.map → SimpleDenyList-D0cyVUVv.js.map} +1 -1
  63. package/dist/Validators/LimitedSignerValidator.cjs +2 -0
  64. package/dist/Validators/LimitedSignerValidator.cjs.map +1 -0
  65. package/dist/Validators/LimitedSignerValidator.d.ts +806 -0
  66. package/dist/Validators/LimitedSignerValidator.d.ts.map +1 -0
  67. package/dist/Validators/LimitedSignerValidator.js +299 -0
  68. package/dist/Validators/LimitedSignerValidator.js.map +1 -0
  69. package/dist/Validators/SignerValidator.cjs +1 -1
  70. package/dist/Validators/SignerValidator.cjs.map +1 -1
  71. package/dist/Validators/SignerValidator.d.ts +2 -2
  72. package/dist/Validators/SignerValidator.js +5 -5
  73. package/dist/Validators/SignerValidator.js.map +1 -1
  74. package/dist/Validators/Validator.cjs +1 -1
  75. package/dist/Validators/Validator.cjs.map +1 -1
  76. package/dist/Validators/Validator.d.ts +22 -2
  77. package/dist/Validators/Validator.d.ts.map +1 -1
  78. package/dist/Validators/Validator.js +26 -17
  79. package/dist/Validators/Validator.js.map +1 -1
  80. package/dist/{componentInterfaces-BBCFkrZv.js → componentInterfaces-bIVo8eyA.js} +9 -9
  81. package/dist/componentInterfaces-bIVo8eyA.js.map +1 -0
  82. package/dist/{deployments-fJsWblwS.js → deployments-Ccx1MtoK.js} +5 -5
  83. package/dist/deployments-Ccx1MtoK.js.map +1 -0
  84. package/dist/{generated-CsNyWPKA.js → generated-BAKNSOjJ.js} +661 -381
  85. package/dist/generated-BAKNSOjJ.js.map +1 -0
  86. package/dist/generated-Cqn4wS01.cjs +3 -0
  87. package/dist/generated-Cqn4wS01.cjs.map +1 -0
  88. package/dist/index.cjs +1 -1
  89. package/dist/index.d.ts +1 -0
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +150 -138
  92. package/dist/index.js.map +1 -1
  93. package/dist/utils.cjs +1 -1
  94. package/dist/utils.cjs.map +1 -1
  95. package/dist/utils.d.ts +10 -0
  96. package/dist/utils.d.ts.map +1 -1
  97. package/dist/utils.js +27 -26
  98. package/dist/utils.js.map +1 -1
  99. package/package.json +21 -5
  100. package/src/Actions/EventAction.ts +29 -27
  101. package/src/BoostCore.test.ts +3 -3
  102. package/src/BoostCore.ts +51 -5
  103. package/src/Incentives/AllowListIncentive.test.ts +19 -21
  104. package/src/Incentives/CGDAIncentive.test.ts +20 -22
  105. package/src/Incentives/ERC1155Incentive.test.ts +14 -15
  106. package/src/Incentives/ERC20Incentive.test.ts +17 -19
  107. package/src/Incentives/ERC20VariableCriteriaIncentive.test.ts +62 -10
  108. package/src/Incentives/ERC20VariableCriteriaIncentive.ts +79 -37
  109. package/src/Incentives/ERC20VariableIncentive.test.ts +16 -18
  110. package/src/Incentives/ERC20VariableIncentive.ts +16 -8
  111. package/src/Incentives/Incentive.ts +4 -1
  112. package/src/Incentives/PointsIncentive.test.ts +3 -5
  113. package/src/Validators/LimitedSignerValidator.test.ts +223 -0
  114. package/src/Validators/LimitedSignerValidator.ts +707 -0
  115. package/src/Validators/SignerValidator.test.ts +21 -22
  116. package/src/Validators/SignerValidator.ts +2 -2
  117. package/src/Validators/Validator.test.ts +7 -1
  118. package/src/Validators/Validator.ts +30 -3
  119. package/src/index.test.ts +2 -0
  120. package/src/index.ts +1 -0
  121. package/src/utils.ts +11 -0
  122. package/dist/BoostCore-Btl5BdAs.cjs +0 -3
  123. package/dist/BoostCore-Btl5BdAs.cjs.map +0 -1
  124. package/dist/BoostCore-CD56zbYX.js +0 -2641
  125. package/dist/BoostCore-CD56zbYX.js.map +0 -1
  126. package/dist/Incentive-CcnOIc8L.cjs +0 -2
  127. package/dist/Incentive-CcnOIc8L.cjs.map +0 -1
  128. package/dist/Incentive-rM5nKznp.js.map +0 -1
  129. package/dist/componentInterfaces-BBCFkrZv.js.map +0 -1
  130. package/dist/deployments-fJsWblwS.js.map +0 -1
  131. package/dist/generated-CsNyWPKA.js.map +0 -1
  132. package/dist/generated-DHerxf1y.cjs +0 -3
  133. package/dist/generated-DHerxf1y.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LimitedSignerValidator.d.ts","sourceRoot":"","sources":["../../src/Validators/LimitedSignerValidator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,299 @@
1
+ import { E as n, bg as h, bh as u, bi as m, bj as y, bk as p, bl as g, bm as w, bn as A } from "../generated-BAKNSOjJ.js";
2
+ import { encodeAbiParameters as s } from "viem";
3
+ import { signTypedData as D } from "viem/accounts";
4
+ import { d as v } from "../deployments-Ccx1MtoK.js";
5
+ import { DeployableTarget as V } from "../Deployable/DeployableTarget.js";
6
+ import { RegistryType as C } from "../utils.js";
7
+ const R = "0x610120604052348015610010575f80fd5b503073ffffffffffffffffffffffffffffffffffffffff16608081815250504660a0818152505060608061004861013960201b60201c565b6100635761005a61014160201b60201c565b80925081935050505b5f61007261013960201b60201c565b610083578280519060200120610087565b5f801b5b90505f61009861013960201b60201c565b6100a95782805190602001206100ad565b5f801b5b90508160c081815250508060e081815250505f6100ce61013960201b60201c565b610118576040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815283602082015282604082015246606082015230608082015260a081209150505b80610100818152505050505050506101346101b860201b60201c565b61024d565b5f6001905090565b6060806040518060400160405280601681526020017f4c696d697465645369676e657256616c696461746f720000000000000000000081525091506040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525090509091565b5f6101c761022460201b60201c565b9050805460018116156101e15763f92ee8a95f526004601cfd5b8160c01c808260011c1461021f578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b60805160a05160c05160e0516101005161236361028a5f395f610fe601525f61128d01525f61126a01525f6112fc01525f61132001526123635ff3fe608060405260043610610113575f3560e01c8063715018a61161009f578063ce5c134f11610063578063ce5c134f1461035d578063d3de6e7514610387578063f04e283e146103c3578063f2fde38b146103df578063fee81cf4146103fb57610113565b8063715018a614610295578063736c0d5b1461029f57806384b0196e146102db5780638da5cb5b1461030b578063a1d2756f1461033557610113565b80632f9e058b116100e65780632f9e058b146101c35780634359d28a146101ff578063439fab911461022757806354d1f13d1461024f578063703b69001461025957610113565b806301ffc9a7146101175780630668e9d414610153578063256929621461018f57806328d6183b14610199575b5f80fd5b348015610122575f80fd5b5061013d60048036038101906101389190611511565b610437565b60405161014a9190611556565b60405180910390f35b34801561015e575f80fd5b50610179600480360381019061017491906115fc565b6104b0565b6040516101869190611664565b60405180910390f35b6101976104e5565b005b3480156101a4575f80fd5b506101ad610536565b6040516101ba919061168c565b60405180910390f35b3480156101ce575f80fd5b506101e960048036038101906101e491906116cf565b61055d565b6040516101f69190611709565b60405180910390f35b34801561020a575f80fd5b50610225600480360381019061022091906117d8565b610572565b005b348015610232575f80fd5b5061024d600480360381019061024891906118ab565b61067b565b005b6102576107fd565b005b348015610264575f80fd5b5061027f600480360381019061027a91906118f6565b610836565b60405161028c9190611556565b60405180910390f35b61029d61089b565b005b3480156102aa575f80fd5b506102c560048036038101906102c0919061197a565b6108ae565b6040516102d29190611556565b60405180910390f35b3480156102e6575f80fd5b506102ef6108ca565b6040516103029796959493929190611b15565b60405180910390f35b348015610316575f80fd5b5061031f610915565b60405161032c9190611b97565b60405180910390f35b348015610340575f80fd5b5061035b6004803603810190610356919061197a565b61093d565b005b348015610368575f80fd5b50610371610988565b60405161037e9190611709565b60405180910390f35b348015610392575f80fd5b506103ad60048036038101906103a89190611d0e565b61098e565b6040516103ba9190611664565b60405180910390f35b6103dd60048036038101906103d8919061197a565b6109f7565b005b6103f960048036038101906103f4919061197a565b610a35565b005b348015610406575f80fd5b50610421600480360381019061041c919061197a565b610a5e565b60405161042e9190611709565b60405180910390f35b5f7fc8ebc758000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104a957506104a882610a77565b5b9050919050565b5f8383836040516020016104c693929190611df3565b6040516020818303038152906040528051906020012090509392505050565b5f6104ee610af0565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7fc8ebc75800000000000000000000000000000000000000000000000000000000905090565b6001602052805f5260405f205f915090505481565b61057a610afa565b8181905084849050146105b9576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84849050811015610674578282828181106105d9576105d8611e2f565b5b90506020020160208101906105ee9190611e86565b5f8087878581811061060357610602611e2f565b5b9050602002016020810190610618919061197a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506105bb565b5050505050565b5f610684610b31565b905080546003825580156106b65760018160011c14303b106106ad5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f805f85858101906106c99190611fac565b9250925092506106f2835f815181106106e5576106e4611e2f565b5b6020026020010151610b5a565b806002819055505f5b835181101561077f5760015f8086848151811061071b5761071a611e2f565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506106fb565b508160045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505080156107f8576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f610842868686610c30565b61088357836040517f059b704500000000000000000000000000000000000000000000000000000000815260040161087a9190611b97565b60405180910390fd5b6108908686868686610c97565b905095945050505050565b6108a3610afa565b6108ac5f610e8a565b565b5f602052805f5260405f205f915054906101000a900460ff1681565b5f6060805f805f60607f0f0000000000000000000000000000000000000000000000000000000000000096506108fe610f50565b809650819750505046935030925090919293949596565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b610945610afa565b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60025481565b5f6109ed7ffea51d5bd45bcd3c2ecc3679b43a3b80b0bd0923f8c16f822455b8cdecd9852f86868686805190602001206040516020016109d2959493929190612027565b60405160208183030381529060405280519060200120610fc7565b9050949350505050565b6109ff610afa565b63389a75e1600c52805f526020600c208054421115610a2557636f5e88185f526004601cfd5b5f815550610a3281610e8a565b50565b610a3d610afa565b8060601b610a5257637448fbae5f526004601cfd5b610a5b81610e8a565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fc8ebc758000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610ae95750610ae882611043565b5b9050919050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610b2f576382b429005f526004601cfd5b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610b626110bc565b15610bda577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610b9c57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610c2d565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f80610c3d8585856104b0565b90505f6001805f8481526020019081526020015f2054610c5d91906120a5565b9050600254811115610c73575f92505050610c90565b8060015f8481526020019081526020015f20819055506001925050505b9392505050565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d1e576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8383810190610d2e9190612165565b90505f815f0151806020019051810190610d4891906122bf565b90505f610d5f89836040015189866020015161098e565b905087826040015160ff1611610db2578160400151886040517f17c66bc7000000000000000000000000000000000000000000000000000000008152600401610da9929190612306565b60405180910390fd5b5f80835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610e34576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e4a818960036110c09092919063ffffffff16565b610e7c818360200151845f015173ffffffffffffffffffffffffffffffffffffffff166111259092919063ffffffff16565b935050505095945050505050565b610e926110bc565b15610ef7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610f4d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b6060806040518060400160405280601681526020017f4c696d697465645369676e657256616c696461746f720000000000000000000081525091506040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525090509091565b5f610fd0611228565b15610fe457610fdd611230565b9050611020565b7f0000000000000000000000000000000000000000000000000000000000000000905061100f6112f8565b1561101f5761101c611230565b90505b5b6719010000000000005f5280601a5281603a52604260182090505f603a52919050565b5f7fb8ce7b22000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110b557506110b482611350565b5b9050919050565b5f90565b5f633f57fc5c60e01b90505f634de1225a60e01b905060078311156110eb57815f528260045260245ffd5b84602052835f5260405f206001841b81541880851c600116600118801561111857835f528560045260245ffd5b8183555050505050505050565b5f8360601b60601c9350831561122157604051835f5260208301516040526040835103611192576040830151601b8160ff1c016020528060011b60011c6060526020600160805f60015afa805187183d151761118f57600193505f60605282604052505050611221565b50505b60418351036111d85760608301515f1a60205260408301516060526020600160805f60015afa805186183d15176111d657600192505f606052816040525050611221565b505b5f60605280604052631626ba7e60e01b808252846004830152602482016040815284516020018060448501828860045afa5060208260443d01868b5afa83835114169450505050505b9392505050565b5f6001905090565b5f8061123a611228565b15611268575f80611249610f50565b91509150818051906020012093508080519060200120925050506112af565b7f000000000000000000000000000000000000000000000000000000000000000091507f000000000000000000000000000000000000000000000000000000000000000090505b6040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815282602082015281604082015246606082015230608082015260a081209250505090565b5f807f000000000000000000000000000000000000000000000000000000000000000090505f7f0000000000000000000000000000000000000000000000000000000000000000905080301482461416159250505090565b5f7f5912b89c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806113c257506113c1826113c9565b5b9050919050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061143b575061143a82611442565b5b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6114f0816114bc565b81146114fa575f80fd5b50565b5f8135905061150b816114e7565b92915050565b5f60208284031215611526576115256114b4565b5b5f611533848285016114fd565b91505092915050565b5f8115159050919050565b6115508161153c565b82525050565b5f6020820190506115695f830184611547565b92915050565b5f819050919050565b6115818161156f565b811461158b575f80fd5b50565b5f8135905061159c81611578565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6115cb826115a2565b9050919050565b6115db816115c1565b81146115e5575f80fd5b50565b5f813590506115f6816115d2565b92915050565b5f805f60608486031215611613576116126114b4565b5b5f6116208682870161158e565b93505060206116318682870161158e565b9250506040611642868287016115e8565b9150509250925092565b5f819050919050565b61165e8161164c565b82525050565b5f6020820190506116775f830184611655565b92915050565b611686816114bc565b82525050565b5f60208201905061169f5f83018461167d565b92915050565b6116ae8161164c565b81146116b8575f80fd5b50565b5f813590506116c9816116a5565b92915050565b5f602082840312156116e4576116e36114b4565b5b5f6116f1848285016116bb565b91505092915050565b6117038161156f565b82525050565b5f60208201905061171c5f8301846116fa565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261174357611742611722565b5b8235905067ffffffffffffffff8111156117605761175f611726565b5b60208301915083602082028301111561177c5761177b61172a565b5b9250929050565b5f8083601f84011261179857611797611722565b5b8235905067ffffffffffffffff8111156117b5576117b4611726565b5b6020830191508360208202830111156117d1576117d061172a565b5b9250929050565b5f805f80604085870312156117f0576117ef6114b4565b5b5f85013567ffffffffffffffff81111561180d5761180c6114b8565b5b6118198782880161172e565b9450945050602085013567ffffffffffffffff81111561183c5761183b6114b8565b5b61184887828801611783565b925092505092959194509250565b5f8083601f84011261186b5761186a611722565b5b8235905067ffffffffffffffff81111561188857611887611726565b5b6020830191508360018202830111156118a4576118a361172a565b5b9250929050565b5f80602083850312156118c1576118c06114b4565b5b5f83013567ffffffffffffffff8111156118de576118dd6114b8565b5b6118ea85828601611856565b92509250509250929050565b5f805f805f6080868803121561190f5761190e6114b4565b5b5f61191c8882890161158e565b955050602061192d8882890161158e565b945050604061193e888289016115e8565b935050606086013567ffffffffffffffff81111561195f5761195e6114b8565b5b61196b88828901611856565b92509250509295509295909350565b5f6020828403121561198f5761198e6114b4565b5b5f61199c848285016115e8565b91505092915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6119d9816119a5565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611a21826119df565b611a2b81856119e9565b9350611a3b8185602086016119f9565b611a4481611a07565b840191505092915050565b611a58816115c1565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611a908161156f565b82525050565b5f611aa18383611a87565b60208301905092915050565b5f602082019050919050565b5f611ac382611a5e565b611acd8185611a68565b9350611ad883611a78565b805f5b83811015611b08578151611aef8882611a96565b9750611afa83611aad565b925050600181019050611adb565b5085935050505092915050565b5f60e082019050611b285f83018a6119d0565b8181036020830152611b3a8189611a17565b90508181036040830152611b4e8188611a17565b9050611b5d60608301876116fa565b611b6a6080830186611a4f565b611b7760a0830185611655565b81810360c0830152611b898184611ab9565b905098975050505050505050565b5f602082019050611baa5f830184611a4f565b92915050565b5f60ff82169050919050565b611bc581611bb0565b8114611bcf575f80fd5b50565b5f81359050611be081611bbc565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611c2082611a07565b810181811067ffffffffffffffff82111715611c3f57611c3e611bea565b5b80604052505050565b5f611c516114ab565b9050611c5d8282611c17565b919050565b5f67ffffffffffffffff821115611c7c57611c7b611bea565b5b611c8582611a07565b9050602081019050919050565b828183375f83830152505050565b5f611cb2611cad84611c62565b611c48565b905082815260208101848484011115611cce57611ccd611be6565b5b611cd9848285611c92565b509392505050565b5f82601f830112611cf557611cf4611722565b5b8135611d05848260208601611ca0565b91505092915050565b5f805f8060808587031215611d2657611d256114b4565b5b5f611d338782880161158e565b9450506020611d4487828801611bd2565b9350506040611d55878288016115e8565b925050606085013567ffffffffffffffff811115611d7657611d756114b8565b5b611d8287828801611ce1565b91505092959194509250565b5f819050919050565b611da8611da38261156f565b611d8e565b82525050565b5f8160601b9050919050565b5f611dc482611dae565b9050919050565b5f611dd582611dba565b9050919050565b611ded611de8826115c1565b611dcb565b82525050565b5f611dfe8286611d97565b602082019150611e0e8285611d97565b602082019150611e1e8284611ddc565b601482019150819050949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b611e658161153c565b8114611e6f575f80fd5b50565b5f81359050611e8081611e5c565b92915050565b5f60208284031215611e9b57611e9a6114b4565b5b5f611ea884828501611e72565b91505092915050565b5f67ffffffffffffffff821115611ecb57611eca611bea565b5b602082029050602081019050919050565b5f611eee611ee984611eb1565b611c48565b90508083825260208201905060208402830185811115611f1157611f1061172a565b5b835b81811015611f3a5780611f2688826115e8565b845260208401935050602081019050611f13565b5050509392505050565b5f82601f830112611f5857611f57611722565b5b8135611f68848260208601611edc565b91505092915050565b5f611f7b826115a2565b9050919050565b611f8b81611f71565b8114611f95575f80fd5b50565b5f81359050611fa681611f82565b92915050565b5f805f60608486031215611fc357611fc26114b4565b5b5f84013567ffffffffffffffff811115611fe057611fdf6114b8565b5b611fec86828701611f44565b9350506020611ffd86828701611f98565b925050604061200e8682870161158e565b9150509250925092565b61202181611bb0565b82525050565b5f60a08201905061203a5f830188611655565b61204760208301876116fa565b6120546040830186612018565b6120616060830185611a4f565b61206e6080830184611655565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6120af8261156f565b91506120ba8361156f565b92508282019050808211156120d2576120d1612078565b5b92915050565b5f80fd5b5f80fd5b5f604082840312156120f5576120f46120d8565b5b6120ff6040611c48565b90505f82013567ffffffffffffffff81111561211e5761211d6120dc565b5b61212a84828501611ce1565b5f83015250602082013567ffffffffffffffff81111561214d5761214c6120dc565b5b61215984828501611ce1565b60208301525092915050565b5f6020828403121561217a576121796114b4565b5b5f82013567ffffffffffffffff811115612197576121966114b8565b5b6121a3848285016120e0565b91505092915050565b5f815190506121ba816115d2565b92915050565b5f6121d26121cd84611c62565b611c48565b9050828152602081018484840111156121ee576121ed611be6565b5b6121f98482856119f9565b509392505050565b5f82601f83011261221557612214611722565b5b81516122258482602086016121c0565b91505092915050565b5f8151905061223c81611bbc565b92915050565b5f60608284031215612257576122566120d8565b5b6122616060611c48565b90505f612270848285016121ac565b5f83015250602082015167ffffffffffffffff811115612293576122926120dc565b5b61229f84828501612201565b60208301525060406122b38482850161222e565b60408301525092915050565b5f602082840312156122d4576122d36114b4565b5b5f82015167ffffffffffffffff8111156122f1576122f06114b8565b5b6122fd84828501612242565b91505092915050565b5f6040820190506123195f830185612018565b61232660208301846116fa565b939250505056fea2646970667358221220d21716710ff17af2ff6e0c564b67a69955b3b16d9106ab352ff6f552b749751f64736f6c634300081a0033", t = class t extends V {
8
+ constructor() {
9
+ super(...arguments), this.abi = n;
10
+ }
11
+ /**
12
+ * The set of authorized signers
13
+ *
14
+ * @public
15
+ * @async
16
+ * @param {Address} address
17
+ * @param {?ReadParams} [params]
18
+ * @returns {Promise<boolean>}
19
+ */
20
+ async signers(f, b) {
21
+ return await h(this._config, {
22
+ address: this.assertValidAddress(),
23
+ args: [f],
24
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
25
+ ...b
26
+ });
27
+ }
28
+ /**
29
+ * Retrieve the hash and signer data for a given hash
30
+ *
31
+ * @public
32
+ * @async
33
+ * @param {SignerValidatorSignaturePayload} payload
34
+ * @param {?ReadParams} [params]
35
+ * @returns {Promise<Hex>}
36
+ */
37
+ async hashSignerData(f, b) {
38
+ return await u(this._config, {
39
+ address: this.assertValidAddress(),
40
+ args: [
41
+ f.boostId,
42
+ f.incentiveQuantity,
43
+ f.claimant,
44
+ f.incentiveData
45
+ ],
46
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
47
+ ...b
48
+ });
49
+ }
50
+ /**
51
+ * 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.
52
+ *
53
+ * @public
54
+ * @async
55
+ * @param {SignerValidatorValidatePayload} payload
56
+ * @param {?WriteParams} [params]
57
+ * @returns {Promise<boolean>} - True if the action has been validated based on the data payload
58
+ */
59
+ async validate(f, b) {
60
+ return await this.awaitResult(this.validateRaw(f, b));
61
+ }
62
+ /**
63
+ * 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.
64
+ *
65
+ * @public
66
+ * @async
67
+ * @param {SignerValidatorValidatePayload} payload
68
+ * @param {?WriteParams} [params]
69
+ * @returns {Promise<boolean>} - True if the action has been validated based on the data payload
70
+ */
71
+ async validateRaw(f, b) {
72
+ const { request: a, result: e } = await m(
73
+ this._config,
74
+ {
75
+ address: this.assertValidAddress(),
76
+ args: [
77
+ f.boostId,
78
+ f.incentiveId,
79
+ f.claimant,
80
+ f.claimData
81
+ ],
82
+ ...this.optionallyAttachAccount(),
83
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
84
+ ...b
85
+ }
86
+ );
87
+ return { hash: await y(
88
+ this._config,
89
+ a
90
+ ), result: e };
91
+ }
92
+ /**
93
+ * Set the authorized status of a signer
94
+ *
95
+ * @public
96
+ * @async
97
+ * @param {Address[]} addresses - The list of signers to update
98
+ * @param {boolean[]} allowed - The authorized status of each signer
99
+ * @param {?WriteParams} [params]
100
+ * @returns {Promise<void>}
101
+ */
102
+ async setAuthorized(f, b, a) {
103
+ return await this.awaitResult(
104
+ this.setAuthorizedRaw(f, b, a)
105
+ );
106
+ }
107
+ /**
108
+ * Set the authorized status of a signer
109
+ *
110
+ * @public
111
+ * @async
112
+ * @param {Address[]} addresses - The list of signers to update
113
+ * @param {boolean[]} allowed - The authorized status of each signer
114
+ * @param {?WriteParams} [params]
115
+ * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
116
+ */
117
+ async setAuthorizedRaw(f, b, a) {
118
+ const { request: e, result: c } = await p(this._config, {
119
+ address: this.assertValidAddress(),
120
+ args: [f, b],
121
+ ...this.optionallyAttachAccount(),
122
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
123
+ ...a
124
+ });
125
+ return { hash: await g(
126
+ this._config,
127
+ e
128
+ ), result: c };
129
+ }
130
+ /**
131
+ * Update the authorized caller of the validator function
132
+ *
133
+ * @public
134
+ * @async
135
+ * @param {Address} address
136
+ * @param {?WriteParams} [params]
137
+ * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
138
+ */
139
+ async setValidatorCallerRaw(f, b) {
140
+ const { request: a, result: e } = await w(this._config, {
141
+ address: this.assertValidAddress(),
142
+ args: [f],
143
+ ...this.optionallyAttachAccount(),
144
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
145
+ ...b
146
+ });
147
+ return { hash: await A(
148
+ this._config,
149
+ a
150
+ ), result: e };
151
+ }
152
+ /**
153
+ * Update the authorized caller of the validator function
154
+ *
155
+ * @public
156
+ * @async
157
+ * @param {Address} address
158
+ * @param {?WriteParams} [params]
159
+ * @returns {Promise<void>}
160
+ */
161
+ async setValidatorCaller(f, b) {
162
+ return await this.awaitResult(this.setValidatorCallerRaw(f, b));
163
+ }
164
+ /**
165
+ * Properly encodes the data needed to claim
166
+ *
167
+ * @public
168
+ * @async
169
+ * @param {SignerValidatorClaimDataParams} params
170
+ * @returns {Promise<Hex>}
171
+ */
172
+ async encodeClaimData(f) {
173
+ return await I({
174
+ ...f,
175
+ validator: this.assertValidAddress()
176
+ });
177
+ }
178
+ /**
179
+ * @inheritdoc
180
+ *
181
+ * @public
182
+ * @param {?SignerValidatorPayload} [_payload]
183
+ * @param {?DeployableOptions} [_options]
184
+ * @returns {GenericDeployableParams}
185
+ */
186
+ buildParameters(f, b) {
187
+ const [a, e] = this.validateDeploymentConfig(
188
+ f,
189
+ b
190
+ );
191
+ return {
192
+ abi: n,
193
+ bytecode: R,
194
+ args: [P(a)],
195
+ ...this.optionallyAttachAccount(e.account)
196
+ };
197
+ }
198
+ };
199
+ t.bases = {
200
+ 31337: void 0,
201
+ ...v
202
+ }, t.registryType = C.VALIDATOR;
203
+ let r = t;
204
+ async function I({
205
+ signer: d,
206
+ incentiveData: f,
207
+ chainId: b,
208
+ validator: a,
209
+ incentiveQuantity: e,
210
+ claimant: c,
211
+ boostId: i
212
+ }) {
213
+ const o = await D({
214
+ ...{
215
+ domain: {
216
+ name: "LimitedSignerValidator",
217
+ version: "1",
218
+ chainId: b,
219
+ verifyingContract: a
220
+ },
221
+ types: {
222
+ SignerValidatorData: [
223
+ { name: "boostId", type: "uint256" },
224
+ { name: "incentiveQuantity", type: "uint8" },
225
+ { name: "claimant", type: "address" },
226
+ { name: "incentiveData", type: "bytes" }
227
+ ]
228
+ },
229
+ primaryType: "SignerValidatorData",
230
+ message: {
231
+ boostId: i,
232
+ incentiveQuantity: e,
233
+ claimant: c,
234
+ incentiveData: f
235
+ }
236
+ },
237
+ privateKey: d.key
238
+ }), l = S({
239
+ signer: d.account,
240
+ signature: o,
241
+ incentiveQuantity: e
242
+ // Adjust incentive quantity as necessary
243
+ });
244
+ return s(
245
+ [
246
+ {
247
+ type: "tuple",
248
+ name: "BoostClaimData",
249
+ components: [
250
+ { type: "bytes", name: "validatorData" },
251
+ { type: "bytes", name: "incentiveData" }
252
+ ]
253
+ }
254
+ ],
255
+ [{ validatorData: l, incentiveData: f }]
256
+ );
257
+ }
258
+ function S({
259
+ signer: d,
260
+ signature: f,
261
+ incentiveQuantity: b
262
+ }) {
263
+ return s(
264
+ [
265
+ {
266
+ type: "tuple",
267
+ name: "SignerValidatorInputParams",
268
+ components: [
269
+ { type: "address", name: "signer" },
270
+ { type: "bytes", name: "signature" },
271
+ { type: "uint8", name: "incentiveQuantity" }
272
+ ]
273
+ }
274
+ ],
275
+ [{ signer: d, signature: f, incentiveQuantity: b }]
276
+ );
277
+ }
278
+ function P({
279
+ signers: d,
280
+ validatorCaller: f,
281
+ maxClaimCount: b
282
+ }) {
283
+ return s(
284
+ [
285
+ { type: "address[]", name: "signers" },
286
+ { type: "address", name: "validatorCaller" },
287
+ { type: "uint256", name: "maxClaimCount" }
288
+ ],
289
+ [d, f, BigInt(b)]
290
+ );
291
+ }
292
+ export {
293
+ r as LimitedSignerValidator,
294
+ n as limitedSignerValidatorAbi,
295
+ I as prepareLimitedSignerValidatorClaimDataPayload,
296
+ S as prepareLimitedSignerValidatorInputParams,
297
+ P as prepareLimitedSignerValidatorPayload
298
+ };
299
+ //# sourceMappingURL=LimitedSignerValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LimitedSignerValidator.js","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(\n address: Address,\n params?: ReadParams<typeof limitedSignerValidatorAbi, 'signers'>,\n ) {\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<typeof limitedSignerValidatorAbi, 'hashSignerData'>,\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<typeof limitedSignerValidatorAbi, 'validate'>,\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<typeof limitedSignerValidatorAbi, 'validate'>,\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<typeof limitedSignerValidatorAbi, 'setAuthorized'>,\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<typeof limitedSignerValidatorAbi, 'setAuthorized'>,\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(\n address: Address,\n params?: WriteParams<\n typeof limitedSignerValidatorAbi,\n 'setValidatorCaller'\n >,\n ) {\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(\n address: Address,\n params?: WriteParams<\n typeof limitedSignerValidatorAbi,\n 'setValidatorCaller'\n >,\n ) {\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","trustedSignature","signTypedData","validatorData","prepareLimitedSignerValidatorInputParams","encodeAbiParameters","signature","signers","validatorCaller","maxClaimCount"],"mappings":";;;;;;0+lBA4SaA,IAAN,MAAMA,UAA+BC,EAG1C;AAAA,EAHK,cAAA;AAAA,UAAA,GAAA,SAAA,GAWL,KAAyB,MAAMC;AAAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA8B/B,MAAa,QACXC,GACAC,GACA;AACO,WAAA,MAAMC,EAAkC,KAAK,SAAS;AAAA,MAC3D,SAAS,KAAK,mBAAmB;AAAA,MACjC,MAAM,CAACF,CAAO;AAAA;AAAA,MAEd,GAAIC;AAAA,IAAA,CACL;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAa,eACXE,GACAF,GACA;AACO,WAAA,MAAMG,EAAyC,KAAK,SAAS;AAAA,MAClE,SAAS,KAAK,mBAAmB;AAAA,MACjC,MAAM;AAAA,QACJD,EAAQ;AAAA,QACRA,EAAQ;AAAA,QACRA,EAAQ;AAAA,QACRA,EAAQ;AAAA,MACV;AAAA;AAAA,MAEA,GAAIF;AAAA,IAAA,CACL;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAgB,SACdE,GACAF,GACA;AACA,WAAO,MAAM,KAAK,YAAY,KAAK,YAAYE,GAASF,CAAM,CAAC;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAgB,YACdE,GACAF,GACA;AACA,UAAM,EAAE,SAAAI,GAAS,QAAAC,EAAO,IAAI,MAAMC;AAAAA,MAChC,KAAK;AAAA,MACL;AAAA,QACE,SAAS,KAAK,mBAAmB;AAAA,QACjC,MAAM;AAAA,UACJJ,EAAQ;AAAA,UACRA,EAAQ;AAAA,UACRA,EAAQ;AAAA,UACRA,EAAQ;AAAA,QACV;AAAA,QACA,GAAG,KAAK,wBAAwB;AAAA;AAAA,QAEhC,GAAIF;AAAA,MACN;AAAA,IAAA;AAMK,WAAA,EAAE,MAJI,MAAMO;AAAAA,MACjB,KAAK;AAAA,MACLH;AAAA,IAAA,GAEa,QAAAC;EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MAAa,cACXG,GACAC,GACAT,GACA;AACA,WAAO,MAAM,KAAK;AAAA,MAChB,KAAK,iBAAiBQ,GAAWC,GAAST,CAAM;AAAA,IAAA;AAAA,EAEpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MAAa,iBACXQ,GACAC,GACAT,GACA;AACA,UAAM,EAAE,SAAAI,GAAS,QAAAC,EAAA,IACf,MAAMK,EAA4C,KAAK,SAAS;AAAA,MAC9D,SAAS,KAAK,mBAAmB;AAAA,MACjC,MAAM,CAACF,GAAWC,CAAO;AAAA,MACzB,GAAG,KAAK,wBAAwB;AAAA;AAAA,MAEhC,GAAIT;AAAA,IAAA,CACL;AAKI,WAAA,EAAE,MAJI,MAAMW;AAAAA,MACjB,KAAK;AAAA,MACLP;AAAA,IAAA,GAEa,QAAAC;EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAa,sBACXN,GACAC,GAIA;AACA,UAAM,EAAE,SAAAI,GAAS,QAAAC,EAAA,IACf,MAAMO,EAAiD,KAAK,SAAS;AAAA,MACnE,SAAS,KAAK,mBAAmB;AAAA,MACjC,MAAM,CAACb,CAAO;AAAA,MACd,GAAG,KAAK,wBAAwB;AAAA;AAAA,MAEhC,GAAIC;AAAA,IAAA,CACL;AAKI,WAAA,EAAE,MAJI,MAAMa;AAAAA,MACjB,KAAK;AAAA,MACLT;AAAA,IAAA,GAEa,QAAAC;EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAa,mBACXN,GACAC,GAIA;AACA,WAAO,MAAM,KAAK,YAAY,KAAK,sBAAsBD,GAASC,CAAM,CAAC;AAAA,EAC3E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAa,gBACXA,GACc;AACd,WAAO,MAAMc,EAA8C;AAAA,MACzD,GAAGd;AAAA,MACH,WAAW,KAAK,mBAAmB;AAAA,IAAA,CACpC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUgB,gBACde,GACAC,GACyB;AACzB,UAAM,CAACd,GAASe,CAAO,IAAI,KAAK;AAAA,MAC9BF;AAAA,MACAC;AAAA,IAAA;AAEK,WAAA;AAAA,MACL,KAAKlB;AAAAA,MACL,UAAAoB;AAAA,MACA,MAAM,CAACC,EAAqCjB,CAAO,CAAC;AAAA,MACpD,GAAG,KAAK,wBAAwBe,EAAQ,OAAO;AAAA,IAAA;AAAA,EAEnD;AACF;AA3PErB,EAAuB,QAAiC;AAAA,EACtD,OAAO;AAAA,EACP,GAAIwB;AAAA,GASNxB,EAAuB,eAA6ByB,EAAa;AA9B5D,IAAMC,IAAN1B;AA+RP,eAAsBkB,EAA8C;AAAA,EAClE,QAAAS;AAAA,EACA,eAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AACF,GAAwD;AA0BhD,QAAAC,IAAmB,MAAMC,EAAc;AAAA,IAC3C,GApBgB;AAAA,MAChB,QAPa;AAAA,QACb,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SAAAN;AAAA,QACA,mBAAmBC;AAAA,MAAA;AAAA,MAInB,OAAO;AAAA,QACL,qBAAqB;AAAA,UACnB,EAAE,MAAM,WAAW,MAAM,UAAU;AAAA,UACnC,EAAE,MAAM,qBAAqB,MAAM,QAAQ;AAAA,UAC3C,EAAE,MAAM,YAAY,MAAM,UAAU;AAAA,UACpC,EAAE,MAAM,iBAAiB,MAAM,QAAQ;AAAA,QACzC;AAAA,MACF;AAAA,MACA,aAAa;AAAA,MACb,SAAS;AAAA,QACP,SAAAG;AAAA,QACA,mBAAAF;AAAA,QACA,UAAAC;AAAA,QACA,eAAAJ;AAAA,MACF;AAAA,IAAA;AAAA,IAKA,YAAYD,EAAO;AAAA,EAAA,CACpB,GAGKS,IAAgBC,EAAyC;AAAA,IAC7D,QAAQV,EAAO;AAAA,IACf,WAAWO;AAAA,IACX,mBAAAH;AAAA;AAAA,EAAA,CACD;AAgBM,SAduBO;AAAA,IAC5B;AAAA,MACE;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,YAAY;AAAA,UACV,EAAE,MAAM,SAAS,MAAM,gBAAgB;AAAA,UACvC,EAAE,MAAM,SAAS,MAAM,gBAAgB;AAAA,QACzC;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,EAAE,eAAAF,GAAe,eAAAR,GAAe;AAAA,EAAA;AAIrC;AAWO,SAASS,EAAyC;AAAA,EACvD,QAAAV;AAAA,EACA,WAAAY;AAAA,EACA,mBAAAR;AACF,GAAsC;AAC7B,SAAAO;AAAA,IACL;AAAA,MACE;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,YAAY;AAAA,UACV,EAAE,MAAM,WAAW,MAAM,SAAS;AAAA,UAClC,EAAE,MAAM,SAAS,MAAM,YAAY;AAAA,UACnC,EAAE,MAAM,SAAS,MAAM,oBAAoB;AAAA,QAC7C;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,EAAE,QAAAX,GAAQ,WAAAY,GAAW,mBAAAR,GAAmB;AAAA,EAAA;AAE7C;AAeO,SAASR,EAAqC;AAAA,EACnD,SAAAiB;AAAA,EACA,iBAAAC;AAAA,EACA,eAAAC;AACF,GAAkC;AACzB,SAAAJ;AAAA,IACL;AAAA,MACE,EAAE,MAAM,aAAa,MAAM,UAAU;AAAA,MACrC,EAAE,MAAM,WAAW,MAAM,kBAAkB;AAAA,MAC3C,EAAE,MAAM,WAAW,MAAM,gBAAgB;AAAA,IAC3C;AAAA,IACA,CAACE,GAASC,GAAiB,OAAOC,CAAa,CAAC;AAAA,EAAA;AAEpD;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../generated-DHerxf1y.cjs"),r=require("viem"),g=require("viem/accounts"),m=require("../deployments-DF_6-7hH.cjs"),A=require("../Deployable/DeployableTarget.cjs"),w=require("../utils.cjs"),V="0x610120604052348015610010575f80fd5b503073ffffffffffffffffffffffffffffffffffffffff16608081815250504660a0818152505060608061004861013960201b60201c565b6100635761005a61014160201b60201c565b80925081935050505b5f61007261013960201b60201c565b610083578280519060200120610087565b5f801b5b90505f61009861013960201b60201c565b6100a95782805190602001206100ad565b5f801b5b90508160c081815250508060e081815250505f6100ce61013960201b60201c565b610118576040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815283602082015282604082015246606082015230608082015260a081209150505b80610100818152505050505050506101346101b860201b60201c565b61024d565b5f6001905090565b6060806040518060400160405280600f81526020017f5369676e657256616c696461746f72000000000000000000000000000000000081525091506040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525090509091565b5f6101c761022460201b60201c565b9050805460018116156101e15763f92ee8a95f526004601cfd5b8160c01c808260011c1461021f578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b60805160a05160c05160e05161010051611ecf61028a5f395f610f6401525f6110a301525f61108001525f61111201525f6111360152611ecf5ff3fe6080604052600436106100f2575f3560e01c8063736c0d5b11610089578063d3de6e7511610058578063d3de6e75146102c4578063f04e283e14610300578063f2fde38b1461031c578063fee81cf414610338576100f2565b8063736c0d5b1461020657806384b0196e146102425780638da5cb5b14610272578063a1d2756f1461029c576100f2565b8063439fab91116100c5578063439fab911461018e57806354d1f13d146101b6578063703b6900146101c0578063715018a6146101fc576100f2565b806301ffc9a7146100f6578063256929621461013257806328d6183b1461013c5780634359d28a14610166575b5f80fd5b348015610101575f80fd5b5061011c60048036038101906101179190611235565b610374565b604051610129919061127a565b60405180910390f35b61013a6103ed565b005b348015610147575f80fd5b5061015061043e565b60405161015d91906112a2565b60405180910390f35b348015610171575f80fd5b5061018c60048036038101906101879190611371565b610465565b005b348015610199575f80fd5b506101b460048036038101906101af9190611444565b61056e565b005b6101be6106e5565b005b3480156101cb575f80fd5b506101e660048036038101906101e1919061151c565b61071e565b6040516101f3919061127a565b60405180910390f35b610204610911565b005b348015610211575f80fd5b5061022c600480360381019061022791906115a0565b610924565b604051610239919061127a565b60405180910390f35b34801561024d575f80fd5b50610256610940565b6040516102699796959493929190611762565b60405180910390f35b34801561027d575f80fd5b5061028661098b565b60405161029391906117e4565b60405180910390f35b3480156102a7575f80fd5b506102c260048036038101906102bd91906115a0565b6109b3565b005b3480156102cf575f80fd5b506102ea60048036038101906102e5919061195b565b6109fe565b6040516102f791906119db565b60405180910390f35b61031a600480360381019061031591906115a0565b610a67565b005b610336600480360381019061033191906115a0565b610aa5565b005b348015610343575f80fd5b5061035e600480360381019061035991906115a0565b610ace565b60405161036b91906119f4565b60405180910390f35b5f7fb8ce7b22000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103e657506103e582610ae7565b5b9050919050565b5f6103f6610b60565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7fb8ce7b2200000000000000000000000000000000000000000000000000000000905090565b61046d610b6a565b8181905084849050146104ac576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84849050811015610567578282828181106104cc576104cb611a0d565b5b90506020020160208101906104e19190611a64565b5f808787858181106104f6576104f5611a0d565b5b905060200201602081019061050b91906115a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506104ae565b5050505050565b5f610577610ba1565b905080546003825580156105a95760018160011c14303b106105a05763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8084848101906105bb9190611b8a565b915091506105e2825f815181106105d5576105d4611a0d565b5b6020026020010151610bca565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f5b82518110156106a85760015f8085848151811061064457610643611a0d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610624565b50505080156106e0576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107a5576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f83838101906107b59190611c71565b90505f815f01518060200190518101906107cf9190611dcb565b90505f6107e68983604001518986602001516109fe565b905087826040015160ff1611610839578160400151886040517f17c66bc7000000000000000000000000000000000000000000000000000000008152600401610830929190611e21565b60405180910390fd5b5f80835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166108bb576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108d181896001610ca09092919063ffffffff16565b610903818360200151845f015173ffffffffffffffffffffffffffffffffffffffff16610d059092919063ffffffff16565b935050505095945050505050565b610919610b6a565b6109225f610e08565b565b5f602052805f5260405f205f915054906101000a900460ff1681565b5f6060805f805f60607f0f000000000000000000000000000000000000000000000000000000000000009650610974610ece565b809650819750505046935030925090919293949596565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b6109bb610b6a565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f610a5d7ffea51d5bd45bcd3c2ecc3679b43a3b80b0bd0923f8c16f822455b8cdecd9852f8686868680519060200120604051602001610a42959493929190611e48565b60405160208183030381529060405280519060200120610f45565b9050949350505050565b610a6f610b6a565b63389a75e1600c52805f526020600c208054421115610a9557636f5e88185f526004601cfd5b5f815550610aa281610e08565b50565b610aad610b6a565b8060601b610ac257637448fbae5f526004601cfd5b610acb81610e08565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f5912b89c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b595750610b5882610fc1565b5b9050919050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610b9f576382b429005f526004601cfd5b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610bd261103a565b15610c4a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610c0c57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610c9d565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f633f57fc5c60e01b90505f634de1225a60e01b90506007831115610ccb57815f528260045260245ffd5b84602052835f5260405f206001841b81541880851c6001166001188015610cf857835f528560045260245ffd5b8183555050505050505050565b5f8360601b60601c93508315610e0157604051835f5260208301516040526040835103610d72576040830151601b8160ff1c016020528060011b60011c6060526020600160805f60015afa805187183d1517610d6f57600193505f60605282604052505050610e01565b50505b6041835103610db85760608301515f1a60205260408301516060526020600160805f60015afa805186183d1517610db657600192505f606052816040525050610e01565b505b5f60605280604052631626ba7e60e01b808252846004830152602482016040815284516020018060448501828860045afa5060208260443d01868b5afa83835114169450505050505b9392505050565b610e1061103a565b15610e75577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610ecb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b6060806040518060400160405280600f81526020017f5369676e657256616c696461746f72000000000000000000000000000000000081525091506040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525090509091565b5f610f4e61103e565b15610f6257610f5b611046565b9050610f9e565b7f00000000000000000000000000000000000000000000000000000000000000009050610f8d61110e565b15610f9d57610f9a611046565b90505b5b6719010000000000005f5280601a5281603a52604260182090505f603a52919050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611033575061103282611166565b5b9050919050565b5f90565b5f6001905090565b5f8061105061103e565b1561107e575f8061105f610ece565b91509150818051906020012093508080519060200120925050506110c5565b7f000000000000000000000000000000000000000000000000000000000000000091507f000000000000000000000000000000000000000000000000000000000000000090505b6040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815282602082015281604082015246606082015230608082015260a081209250505090565b5f807f000000000000000000000000000000000000000000000000000000000000000090505f7f0000000000000000000000000000000000000000000000000000000000000000905080301482461416159250505090565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611214816111e0565b811461121e575f80fd5b50565b5f8135905061122f8161120b565b92915050565b5f6020828403121561124a576112496111d8565b5b5f61125784828501611221565b91505092915050565b5f8115159050919050565b61127481611260565b82525050565b5f60208201905061128d5f83018461126b565b92915050565b61129c816111e0565b82525050565b5f6020820190506112b55f830184611293565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126112dc576112db6112bb565b5b8235905067ffffffffffffffff8111156112f9576112f86112bf565b5b602083019150836020820283011115611315576113146112c3565b5b9250929050565b5f8083601f840112611331576113306112bb565b5b8235905067ffffffffffffffff81111561134e5761134d6112bf565b5b60208301915083602082028301111561136a576113696112c3565b5b9250929050565b5f805f8060408587031215611389576113886111d8565b5b5f85013567ffffffffffffffff8111156113a6576113a56111dc565b5b6113b2878288016112c7565b9450945050602085013567ffffffffffffffff8111156113d5576113d46111dc565b5b6113e18782880161131c565b925092505092959194509250565b5f8083601f840112611404576114036112bb565b5b8235905067ffffffffffffffff811115611421576114206112bf565b5b60208301915083600182028301111561143d5761143c6112c3565b5b9250929050565b5f806020838503121561145a576114596111d8565b5b5f83013567ffffffffffffffff811115611477576114766111dc565b5b611483858286016113ef565b92509250509250929050565b5f819050919050565b6114a18161148f565b81146114ab575f80fd5b50565b5f813590506114bc81611498565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6114eb826114c2565b9050919050565b6114fb816114e1565b8114611505575f80fd5b50565b5f81359050611516816114f2565b92915050565b5f805f805f60808688031215611535576115346111d8565b5b5f611542888289016114ae565b9550506020611553888289016114ae565b945050604061156488828901611508565b935050606086013567ffffffffffffffff811115611585576115846111dc565b5b611591888289016113ef565b92509250509295509295909350565b5f602082840312156115b5576115b46111d8565b5b5f6115c284828501611508565b91505092915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6115ff816115cb565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61164782611605565b611651818561160f565b935061166181856020860161161f565b61166a8161162d565b840191505092915050565b61167e8161148f565b82525050565b61168d816114e1565b82525050565b5f819050919050565b6116a581611693565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6116dd8161148f565b82525050565b5f6116ee83836116d4565b60208301905092915050565b5f602082019050919050565b5f611710826116ab565b61171a81856116b5565b9350611725836116c5565b805f5b8381101561175557815161173c88826116e3565b9750611747836116fa565b925050600181019050611728565b5085935050505092915050565b5f60e0820190506117755f83018a6115f6565b8181036020830152611787818961163d565b9050818103604083015261179b818861163d565b90506117aa6060830187611675565b6117b76080830186611684565b6117c460a083018561169c565b81810360c08301526117d68184611706565b905098975050505050505050565b5f6020820190506117f75f830184611684565b92915050565b5f60ff82169050919050565b611812816117fd565b811461181c575f80fd5b50565b5f8135905061182d81611809565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61186d8261162d565b810181811067ffffffffffffffff8211171561188c5761188b611837565b5b80604052505050565b5f61189e6111cf565b90506118aa8282611864565b919050565b5f67ffffffffffffffff8211156118c9576118c8611837565b5b6118d28261162d565b9050602081019050919050565b828183375f83830152505050565b5f6118ff6118fa846118af565b611895565b90508281526020810184848401111561191b5761191a611833565b5b6119268482856118df565b509392505050565b5f82601f830112611942576119416112bb565b5b81356119528482602086016118ed565b91505092915050565b5f805f8060808587031215611973576119726111d8565b5b5f611980878288016114ae565b94505060206119918782880161181f565b93505060406119a287828801611508565b925050606085013567ffffffffffffffff8111156119c3576119c26111dc565b5b6119cf8782880161192e565b91505092959194509250565b5f6020820190506119ee5f83018461169c565b92915050565b5f602082019050611a075f830184611675565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b611a4381611260565b8114611a4d575f80fd5b50565b5f81359050611a5e81611a3a565b92915050565b5f60208284031215611a7957611a786111d8565b5b5f611a8684828501611a50565b91505092915050565b5f67ffffffffffffffff821115611aa957611aa8611837565b5b602082029050602081019050919050565b5f611acc611ac784611a8f565b611895565b90508083825260208201905060208402830185811115611aef57611aee6112c3565b5b835b81811015611b185780611b048882611508565b845260208401935050602081019050611af1565b5050509392505050565b5f82601f830112611b3657611b356112bb565b5b8135611b46848260208601611aba565b91505092915050565b5f611b59826114c2565b9050919050565b611b6981611b4f565b8114611b73575f80fd5b50565b5f81359050611b8481611b60565b92915050565b5f8060408385031215611ba057611b9f6111d8565b5b5f83013567ffffffffffffffff811115611bbd57611bbc6111dc565b5b611bc985828601611b22565b9250506020611bda85828601611b76565b9150509250929050565b5f80fd5b5f80fd5b5f60408284031215611c0157611c00611be4565b5b611c0b6040611895565b90505f82013567ffffffffffffffff811115611c2a57611c29611be8565b5b611c368482850161192e565b5f83015250602082013567ffffffffffffffff811115611c5957611c58611be8565b5b611c658482850161192e565b60208301525092915050565b5f60208284031215611c8657611c856111d8565b5b5f82013567ffffffffffffffff811115611ca357611ca26111dc565b5b611caf84828501611bec565b91505092915050565b5f81519050611cc6816114f2565b92915050565b5f611cde611cd9846118af565b611895565b905082815260208101848484011115611cfa57611cf9611833565b5b611d0584828561161f565b509392505050565b5f82601f830112611d2157611d206112bb565b5b8151611d31848260208601611ccc565b91505092915050565b5f81519050611d4881611809565b92915050565b5f60608284031215611d6357611d62611be4565b5b611d6d6060611895565b90505f611d7c84828501611cb8565b5f83015250602082015167ffffffffffffffff811115611d9f57611d9e611be8565b5b611dab84828501611d0d565b6020830152506040611dbf84828501611d3a565b60408301525092915050565b5f60208284031215611de057611ddf6111d8565b5b5f82015167ffffffffffffffff811115611dfd57611dfc6111dc565b5b611e0984828501611d4e565b91505092915050565b611e1b816117fd565b82525050565b5f604082019050611e345f830185611e12565b611e416020830184611675565b9392505050565b5f60a082019050611e5b5f83018861169c565b611e686020830187611675565b611e756040830186611e12565b611e826060830185611684565b611e8f608083018461169c565b969550505050505056fea264697066735822122075d57995749ea22f49395716e1f527a6d931d396973e02e34e34dc9fa85d31c164736f6c634300081a0033",s=class s extends A.DeployableTarget{constructor(){super(...arguments),this.abi=e.B}async signers(f,b){return await e.F6(this._config,{address:this.assertValidAddress(),args:[f],...b})}async hashSignerData(f,b){return await e.V6(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.oO(this._config,{address:this.assertValidAddress(),args:[f.boostId,f.incentiveId,f.claimant,f.claimData],...this.optionallyAttachAccount(),...b});return{hash:await e.K6(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.iO(this._config,{address:this.assertValidAddress(),args:[f,b],...this.optionallyAttachAccount(),...a});return{hash:await e.W6(this._config,c),result:t}}async setValidatorCallerRaw(f,b){const{request:a,result:c}=await e.sO(this._config,{address:this.assertValidAddress(),args:[f],...this.optionallyAttachAccount(),...b});return{hash:await e.Q6(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.B,bytecode:V,args:[u(a)],...this.optionallyAttachAccount(c.account)}}};s.bases={31337:void 0,...m.SignerValidator},s.registryType=w.RegistryType.VALIDATOR;let i=s;async function o({signer:d,incentiveData:f,chainId:b,validator:a,incentiveQuantity:c,claimant:t,boostId:n}){const y={domain:{name:"SignerValidator",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}},h=await g.signTypedData({...y,privateKey:d.key}),p=l({signer:d.account,signature:h,incentiveQuantity:c});return r.encodeAbiParameters([{type:"tuple",name:"BoostClaimData",components:[{type:"bytes",name:"validatorData"},{type:"bytes",name:"incentiveData"}]}],[{validatorData:p,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}){return r.encodeAbiParameters([{type:"address[]",name:"signers"},{type:"address",name:"validatorCaller"}],[d,f])}exports.signerValidatorAbi=e.B;exports.SignerValidator=i;exports.prepareSignerValidatorClaimDataPayload=o;exports.prepareSignerValidatorInputParams=l;exports.prepareSignerValidatorPayload=u;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../generated-Cqn4wS01.cjs"),r=require("viem"),g=require("viem/accounts"),m=require("../deployments-DF_6-7hH.cjs"),A=require("../Deployable/DeployableTarget.cjs"),w=require("../utils.cjs"),D="0x610120604052348015610010575f80fd5b503073ffffffffffffffffffffffffffffffffffffffff16608081815250504660a0818152505060608061004861013960201b60201c565b6100635761005a61014160201b60201c565b80925081935050505b5f61007261013960201b60201c565b610083578280519060200120610087565b5f801b5b90505f61009861013960201b60201c565b6100a95782805190602001206100ad565b5f801b5b90508160c081815250508060e081815250505f6100ce61013960201b60201c565b610118576040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815283602082015282604082015246606082015230608082015260a081209150505b80610100818152505050505050506101346101b860201b60201c565b61024d565b5f6001905090565b6060806040518060400160405280600f81526020017f5369676e657256616c696461746f72000000000000000000000000000000000081525091506040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525090509091565b5f6101c761022460201b60201c565b9050805460018116156101e15763f92ee8a95f526004601cfd5b8160c01c808260011c1461021f578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b60805160a05160c05160e05161010051611ecf61028a5f395f610f6401525f6110a301525f61108001525f61111201525f6111360152611ecf5ff3fe6080604052600436106100f2575f3560e01c8063736c0d5b11610089578063d3de6e7511610058578063d3de6e75146102c4578063f04e283e14610300578063f2fde38b1461031c578063fee81cf414610338576100f2565b8063736c0d5b1461020657806384b0196e146102425780638da5cb5b14610272578063a1d2756f1461029c576100f2565b8063439fab91116100c5578063439fab911461018e57806354d1f13d146101b6578063703b6900146101c0578063715018a6146101fc576100f2565b806301ffc9a7146100f6578063256929621461013257806328d6183b1461013c5780634359d28a14610166575b5f80fd5b348015610101575f80fd5b5061011c60048036038101906101179190611235565b610374565b604051610129919061127a565b60405180910390f35b61013a6103ed565b005b348015610147575f80fd5b5061015061043e565b60405161015d91906112a2565b60405180910390f35b348015610171575f80fd5b5061018c60048036038101906101879190611371565b610465565b005b348015610199575f80fd5b506101b460048036038101906101af9190611444565b61056e565b005b6101be6106e5565b005b3480156101cb575f80fd5b506101e660048036038101906101e1919061151c565b61071e565b6040516101f3919061127a565b60405180910390f35b610204610911565b005b348015610211575f80fd5b5061022c600480360381019061022791906115a0565b610924565b604051610239919061127a565b60405180910390f35b34801561024d575f80fd5b50610256610940565b6040516102699796959493929190611762565b60405180910390f35b34801561027d575f80fd5b5061028661098b565b60405161029391906117e4565b60405180910390f35b3480156102a7575f80fd5b506102c260048036038101906102bd91906115a0565b6109b3565b005b3480156102cf575f80fd5b506102ea60048036038101906102e5919061195b565b6109fe565b6040516102f791906119db565b60405180910390f35b61031a600480360381019061031591906115a0565b610a67565b005b610336600480360381019061033191906115a0565b610aa5565b005b348015610343575f80fd5b5061035e600480360381019061035991906115a0565b610ace565b60405161036b91906119f4565b60405180910390f35b5f7fb8ce7b22000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103e657506103e582610ae7565b5b9050919050565b5f6103f6610b60565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7fb8ce7b2200000000000000000000000000000000000000000000000000000000905090565b61046d610b6a565b8181905084849050146104ac576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84849050811015610567578282828181106104cc576104cb611a0d565b5b90506020020160208101906104e19190611a64565b5f808787858181106104f6576104f5611a0d565b5b905060200201602081019061050b91906115a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506104ae565b5050505050565b5f610577610ba1565b905080546003825580156105a95760018160011c14303b106105a05763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8084848101906105bb9190611b8a565b915091506105e2825f815181106105d5576105d4611a0d565b5b6020026020010151610bca565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f5b82518110156106a85760015f8085848151811061064457610643611a0d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610624565b50505080156106e0576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107a5576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f83838101906107b59190611c71565b90505f815f01518060200190518101906107cf9190611dcb565b90505f6107e68983604001518986602001516109fe565b905087826040015160ff1611610839578160400151886040517f17c66bc7000000000000000000000000000000000000000000000000000000008152600401610830929190611e21565b60405180910390fd5b5f80835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166108bb576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108d181896001610ca09092919063ffffffff16565b610903818360200151845f015173ffffffffffffffffffffffffffffffffffffffff16610d059092919063ffffffff16565b935050505095945050505050565b610919610b6a565b6109225f610e08565b565b5f602052805f5260405f205f915054906101000a900460ff1681565b5f6060805f805f60607f0f000000000000000000000000000000000000000000000000000000000000009650610974610ece565b809650819750505046935030925090919293949596565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b6109bb610b6a565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f610a5d7ffea51d5bd45bcd3c2ecc3679b43a3b80b0bd0923f8c16f822455b8cdecd9852f8686868680519060200120604051602001610a42959493929190611e48565b60405160208183030381529060405280519060200120610f45565b9050949350505050565b610a6f610b6a565b63389a75e1600c52805f526020600c208054421115610a9557636f5e88185f526004601cfd5b5f815550610aa281610e08565b50565b610aad610b6a565b8060601b610ac257637448fbae5f526004601cfd5b610acb81610e08565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f5912b89c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b595750610b5882610fc1565b5b9050919050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610b9f576382b429005f526004601cfd5b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610bd261103a565b15610c4a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610c0c57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610c9d565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f633f57fc5c60e01b90505f634de1225a60e01b90506007831115610ccb57815f528260045260245ffd5b84602052835f5260405f206001841b81541880851c6001166001188015610cf857835f528560045260245ffd5b8183555050505050505050565b5f8360601b60601c93508315610e0157604051835f5260208301516040526040835103610d72576040830151601b8160ff1c016020528060011b60011c6060526020600160805f60015afa805187183d1517610d6f57600193505f60605282604052505050610e01565b50505b6041835103610db85760608301515f1a60205260408301516060526020600160805f60015afa805186183d1517610db657600192505f606052816040525050610e01565b505b5f60605280604052631626ba7e60e01b808252846004830152602482016040815284516020018060448501828860045afa5060208260443d01868b5afa83835114169450505050505b9392505050565b610e1061103a565b15610e75577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610ecb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b6060806040518060400160405280600f81526020017f5369676e657256616c696461746f72000000000000000000000000000000000081525091506040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525090509091565b5f610f4e61103e565b15610f6257610f5b611046565b9050610f9e565b7f00000000000000000000000000000000000000000000000000000000000000009050610f8d61110e565b15610f9d57610f9a611046565b90505b5b6719010000000000005f5280601a5281603a52604260182090505f603a52919050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611033575061103282611166565b5b9050919050565b5f90565b5f6001905090565b5f8061105061103e565b1561107e575f8061105f610ece565b91509150818051906020012093508080519060200120925050506110c5565b7f000000000000000000000000000000000000000000000000000000000000000091507f000000000000000000000000000000000000000000000000000000000000000090505b6040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815282602082015281604082015246606082015230608082015260a081209250505090565b5f807f000000000000000000000000000000000000000000000000000000000000000090505f7f0000000000000000000000000000000000000000000000000000000000000000905080301482461416159250505090565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611214816111e0565b811461121e575f80fd5b50565b5f8135905061122f8161120b565b92915050565b5f6020828403121561124a576112496111d8565b5b5f61125784828501611221565b91505092915050565b5f8115159050919050565b61127481611260565b82525050565b5f60208201905061128d5f83018461126b565b92915050565b61129c816111e0565b82525050565b5f6020820190506112b55f830184611293565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126112dc576112db6112bb565b5b8235905067ffffffffffffffff8111156112f9576112f86112bf565b5b602083019150836020820283011115611315576113146112c3565b5b9250929050565b5f8083601f840112611331576113306112bb565b5b8235905067ffffffffffffffff81111561134e5761134d6112bf565b5b60208301915083602082028301111561136a576113696112c3565b5b9250929050565b5f805f8060408587031215611389576113886111d8565b5b5f85013567ffffffffffffffff8111156113a6576113a56111dc565b5b6113b2878288016112c7565b9450945050602085013567ffffffffffffffff8111156113d5576113d46111dc565b5b6113e18782880161131c565b925092505092959194509250565b5f8083601f840112611404576114036112bb565b5b8235905067ffffffffffffffff811115611421576114206112bf565b5b60208301915083600182028301111561143d5761143c6112c3565b5b9250929050565b5f806020838503121561145a576114596111d8565b5b5f83013567ffffffffffffffff811115611477576114766111dc565b5b611483858286016113ef565b92509250509250929050565b5f819050919050565b6114a18161148f565b81146114ab575f80fd5b50565b5f813590506114bc81611498565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6114eb826114c2565b9050919050565b6114fb816114e1565b8114611505575f80fd5b50565b5f81359050611516816114f2565b92915050565b5f805f805f60808688031215611535576115346111d8565b5b5f611542888289016114ae565b9550506020611553888289016114ae565b945050604061156488828901611508565b935050606086013567ffffffffffffffff811115611585576115846111dc565b5b611591888289016113ef565b92509250509295509295909350565b5f602082840312156115b5576115b46111d8565b5b5f6115c284828501611508565b91505092915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6115ff816115cb565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61164782611605565b611651818561160f565b935061166181856020860161161f565b61166a8161162d565b840191505092915050565b61167e8161148f565b82525050565b61168d816114e1565b82525050565b5f819050919050565b6116a581611693565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6116dd8161148f565b82525050565b5f6116ee83836116d4565b60208301905092915050565b5f602082019050919050565b5f611710826116ab565b61171a81856116b5565b9350611725836116c5565b805f5b8381101561175557815161173c88826116e3565b9750611747836116fa565b925050600181019050611728565b5085935050505092915050565b5f60e0820190506117755f83018a6115f6565b8181036020830152611787818961163d565b9050818103604083015261179b818861163d565b90506117aa6060830187611675565b6117b76080830186611684565b6117c460a083018561169c565b81810360c08301526117d68184611706565b905098975050505050505050565b5f6020820190506117f75f830184611684565b92915050565b5f60ff82169050919050565b611812816117fd565b811461181c575f80fd5b50565b5f8135905061182d81611809565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61186d8261162d565b810181811067ffffffffffffffff8211171561188c5761188b611837565b5b80604052505050565b5f61189e6111cf565b90506118aa8282611864565b919050565b5f67ffffffffffffffff8211156118c9576118c8611837565b5b6118d28261162d565b9050602081019050919050565b828183375f83830152505050565b5f6118ff6118fa846118af565b611895565b90508281526020810184848401111561191b5761191a611833565b5b6119268482856118df565b509392505050565b5f82601f830112611942576119416112bb565b5b81356119528482602086016118ed565b91505092915050565b5f805f8060808587031215611973576119726111d8565b5b5f611980878288016114ae565b94505060206119918782880161181f565b93505060406119a287828801611508565b925050606085013567ffffffffffffffff8111156119c3576119c26111dc565b5b6119cf8782880161192e565b91505092959194509250565b5f6020820190506119ee5f83018461169c565b92915050565b5f602082019050611a075f830184611675565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b611a4381611260565b8114611a4d575f80fd5b50565b5f81359050611a5e81611a3a565b92915050565b5f60208284031215611a7957611a786111d8565b5b5f611a8684828501611a50565b91505092915050565b5f67ffffffffffffffff821115611aa957611aa8611837565b5b602082029050602081019050919050565b5f611acc611ac784611a8f565b611895565b90508083825260208201905060208402830185811115611aef57611aee6112c3565b5b835b81811015611b185780611b048882611508565b845260208401935050602081019050611af1565b5050509392505050565b5f82601f830112611b3657611b356112bb565b5b8135611b46848260208601611aba565b91505092915050565b5f611b59826114c2565b9050919050565b611b6981611b4f565b8114611b73575f80fd5b50565b5f81359050611b8481611b60565b92915050565b5f8060408385031215611ba057611b9f6111d8565b5b5f83013567ffffffffffffffff811115611bbd57611bbc6111dc565b5b611bc985828601611b22565b9250506020611bda85828601611b76565b9150509250929050565b5f80fd5b5f80fd5b5f60408284031215611c0157611c00611be4565b5b611c0b6040611895565b90505f82013567ffffffffffffffff811115611c2a57611c29611be8565b5b611c368482850161192e565b5f83015250602082013567ffffffffffffffff811115611c5957611c58611be8565b5b611c658482850161192e565b60208301525092915050565b5f60208284031215611c8657611c856111d8565b5b5f82013567ffffffffffffffff811115611ca357611ca26111dc565b5b611caf84828501611bec565b91505092915050565b5f81519050611cc6816114f2565b92915050565b5f611cde611cd9846118af565b611895565b905082815260208101848484011115611cfa57611cf9611833565b5b611d0584828561161f565b509392505050565b5f82601f830112611d2157611d206112bb565b5b8151611d31848260208601611ccc565b91505092915050565b5f81519050611d4881611809565b92915050565b5f60608284031215611d6357611d62611be4565b5b611d6d6060611895565b90505f611d7c84828501611cb8565b5f83015250602082015167ffffffffffffffff811115611d9f57611d9e611be8565b5b611dab84828501611d0d565b6020830152506040611dbf84828501611d3a565b60408301525092915050565b5f60208284031215611de057611ddf6111d8565b5b5f82015167ffffffffffffffff811115611dfd57611dfc6111dc565b5b611e0984828501611d4e565b91505092915050565b611e1b816117fd565b82525050565b5f604082019050611e345f830185611e12565b611e416020830184611675565b9392505050565b5f60a082019050611e5b5f83018861169c565b611e686020830187611675565b611e756040830186611e12565b611e826060830185611684565b611e8f608083018461169c565b969550505050505056fea264697066735822122008717acf56bd2e77cae440af4190cdc25d338915254361f19975fc59eb3addf964736f6c634300081a0033",s=class s extends A.DeployableTarget{constructor(){super(...arguments),this.abi=e.x}async signers(f,b){return await e.PO(this._config,{address:this.assertValidAddress(),args:[f],...b})}async hashSignerData(f,b){return await e.DO(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.uC(this._config,{address:this.assertValidAddress(),args:[f.boostId,f.incentiveId,f.claimant,f.claimData],...this.optionallyAttachAccount(),...b});return{hash:await e.YO(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.rC(this._config,{address:this.assertValidAddress(),args:[f,b],...this.optionallyAttachAccount(),...a});return{hash:await e.JO(this._config,c),result:t}}async setValidatorCallerRaw(f,b){const{request:a,result:c}=await e.oC(this._config,{address:this.assertValidAddress(),args:[f],...this.optionallyAttachAccount(),...b});return{hash:await e.KO(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.x,bytecode:D,args:[u(a)],...this.optionallyAttachAccount(c.account)}}};s.bases={31337:void 0,...m.SignerValidator},s.registryType=w.RegistryType.VALIDATOR;let i=s;async function o({signer:d,incentiveData:f,chainId:b,validator:a,incentiveQuantity:c,claimant:t,boostId:n}){const y={domain:{name:"SignerValidator",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}},h=await g.signTypedData({...y,privateKey:d.key}),p=l({signer:d.account,signature:h,incentiveQuantity:c});return r.encodeAbiParameters([{type:"tuple",name:"BoostClaimData",components:[{type:"bytes",name:"validatorData"},{type:"bytes",name:"incentiveData"}]}],[{validatorData:p,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}){return r.encodeAbiParameters([{type:"address[]",name:"signers"},{type:"address",name:"validatorCaller"}],[d,f])}exports.signerValidatorAbi=e.x;exports.SignerValidator=i;exports.prepareSignerValidatorClaimDataPayload=o;exports.prepareSignerValidatorInputParams=l;exports.prepareSignerValidatorPayload=u;
2
2
  //# sourceMappingURL=SignerValidator.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"SignerValidator.cjs","sources":["../../src/Validators/SignerValidator.ts"],"sourcesContent":["import {\n readSignerValidatorHashSignerData,\n readSignerValidatorSigners,\n signerValidatorAbi,\n simulateSignerValidatorSetAuthorized,\n simulateSignerValidatorSetValidatorCaller,\n simulateSignerValidatorValidate,\n writeSignerValidatorSetAuthorized,\n writeSignerValidatorSetValidatorCaller,\n writeSignerValidatorValidate,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/validators/SignerValidator.sol/SignerValidator.json';\nimport {\n type Address,\n type ContractEventName,\n type Hex,\n type PrivateKeyAccount,\n encodeAbiParameters,\n} from 'viem';\nimport { signTypedData } from 'viem/accounts';\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 { signerValidatorAbi };\n\n/**\n * Object reprentation of a {@link SignerValidator} initialization payload\n *\n * @export\n * @interface SignerValidatorPayload\n * @typedef {SignerValidatorPayload}\n */\nexport interface SignerValidatorPayload {\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 SignerValidatorValidatePayload\n * @typedef {SignerValidatorValidatePayload}\n */\nexport interface SignerValidatorValidatePayload {\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 SignerValidator} initialization payload\n *\n * @export\n * @interface SignerValidatorPayload\n * @typedef {SignerValidatorPayload}\n */\nexport interface SignerValidatorPayload {\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 SignerValidatorValidatePayload\n * @typedef {SignerValidatorValidatePayload}\n */\nexport interface SignerValidatorValidatePayload {\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 SignerValidatorClaimDataParams\n * @typedef {SignerValidatorClaimDataParams}\n */\nexport interface SignerValidatorClaimDataParams {\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 SignerValidatorInputParams} initialization payload\n *\n * @export\n * @interface SignerValidatorInputParams\n * @typedef {SignerValidatorInputParams}\n */\nexport interface SignerValidatorInputParams {\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 SignerValidatorSignaturePayload\n * @typedef {SignerValidatorSignaturePayload}\n */\nexport interface SignerValidatorSignaturePayload {\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 {SignerValidatorLog}\n * @template {ContractEventName<\n * typeof signerValidatorAbi\n * >} [event=ContractEventName<typeof signerValidatorAbi>]\n */\nexport type SignerValidatorLog<\n event extends ContractEventName<\n typeof signerValidatorAbi\n > = ContractEventName<typeof signerValidatorAbi>,\n> = GenericLog<typeof signerValidatorAbi, 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 SignerValidator extends DeployableTarget<\n SignerValidatorPayload,\n typeof signerValidatorAbi\n> {\n /**\n * @inheritdoc\n *\n * @public\n * @readonly\n * @type {*}\n */\n public override readonly abi = signerValidatorAbi;\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_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(\n address: Address,\n params?: ReadParams<typeof signerValidatorAbi, 'signers'>,\n ) {\n return await readSignerValidatorSigners(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: SignerValidatorSignaturePayload,\n params?: ReadParams<typeof signerValidatorAbi, 'hashSignerData'>,\n ) {\n return await readSignerValidatorHashSignerData(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: SignerValidatorValidatePayload,\n params?: WriteParams<typeof signerValidatorAbi, 'validate'>,\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: SignerValidatorValidatePayload,\n params?: ReadParams<typeof signerValidatorAbi, 'validate'>,\n ) {\n const { request, result } = await simulateSignerValidatorValidate(\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 writeSignerValidatorValidate(this._config, request);\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<typeof signerValidatorAbi, 'setAuthorized'>,\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<typeof signerValidatorAbi, 'setAuthorized'>,\n ) {\n const { request, result } = await simulateSignerValidatorSetAuthorized(\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 writeSignerValidatorSetAuthorized(this._config, request);\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(\n address: Address,\n params?: WriteParams<typeof signerValidatorAbi, 'setValidatorCaller'>,\n ) {\n const { request, result } = await simulateSignerValidatorSetValidatorCaller(\n this._config,\n {\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 );\n const hash = await writeSignerValidatorSetValidatorCaller(\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(\n address: Address,\n params?: WriteParams<typeof signerValidatorAbi, 'setValidatorCaller'>,\n ) {\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<SignerValidatorClaimDataParams, 'validator'>,\n ): Promise<Hex> {\n return await prepareSignerValidatorClaimDataPayload({\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?: SignerValidatorPayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [payload, options] = this.validateDeploymentConfig(\n _payload,\n _options,\n );\n return {\n abi: signerValidatorAbi,\n bytecode: bytecode as Hex,\n args: [prepareSignerValidatorPayload(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 prepareSignerValidatorClaimDataPayload({\n signer,\n incentiveData,\n chainId,\n validator,\n incentiveQuantity,\n claimant,\n boostId,\n}: SignerValidatorClaimDataParams): Promise<Hex> {\n const domain = {\n name: 'SignerValidator',\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 = prepareSignerValidatorInputParams({\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 prepareSignerValidatorInputParams({\n signer,\n signature,\n incentiveQuantity,\n}: SignerValidatorInputParams) {\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 * @param {Address[]} param0.signers\n * @param {Address} param0.validatorCaller\n * @returns {Hex}\n */\nexport function prepareSignerValidatorPayload({\n signers,\n validatorCaller,\n}: SignerValidatorPayload) {\n return encodeAbiParameters(\n [\n { type: 'address[]', name: 'signers' },\n { type: 'address', name: 'validatorCaller' },\n ],\n [signers, validatorCaller],\n );\n}\n"],"names":["_SignerValidator","DeployableTarget","signerValidatorAbi","address","params","readSignerValidatorSigners","payload","readSignerValidatorHashSignerData","request","result","simulateSignerValidatorValidate","writeSignerValidatorValidate","addresses","allowed","simulateSignerValidatorSetAuthorized","writeSignerValidatorSetAuthorized","simulateSignerValidatorSetValidatorCaller","writeSignerValidatorSetValidatorCaller","prepareSignerValidatorClaimDataPayload","_payload","_options","options","bytecode","prepareSignerValidatorPayload","SignerValidatorBases","RegistryType","SignerValidator","signer","incentiveData","chainId","validator","incentiveQuantity","claimant","boostId","typedData","trustedSignature","signTypedData","validatorData","prepareSignerValidatorInputParams","encodeAbiParameters","signature","signers","validatorCaller"],"mappings":"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"}
1
+ {"version":3,"file":"SignerValidator.cjs","sources":["../../src/Validators/SignerValidator.ts"],"sourcesContent":["import {\n readSignerValidatorHashSignerData,\n readSignerValidatorSigners,\n signerValidatorAbi,\n simulateSignerValidatorSetAuthorized,\n simulateSignerValidatorSetValidatorCaller,\n simulateSignerValidatorValidate,\n writeSignerValidatorSetAuthorized,\n writeSignerValidatorSetValidatorCaller,\n writeSignerValidatorValidate,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/validators/SignerValidator.sol/SignerValidator.json';\nimport {\n type Address,\n type ContractEventName,\n type Hex,\n type PrivateKeyAccount,\n encodeAbiParameters,\n} from 'viem';\nimport { signTypedData } from 'viem/accounts';\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 { signerValidatorAbi };\n\n/**\n * Object reprentation of a {@link SignerValidator} initialization payload\n *\n * @export\n * @interface SignerValidatorPayload\n * @typedef {SignerValidatorPayload}\n */\nexport interface SignerValidatorPayload {\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 SignerValidatorValidatePayload\n * @typedef {SignerValidatorValidatePayload}\n */\nexport interface SignerValidatorValidatePayload {\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 SignerValidator} initialization payload\n *\n * @export\n * @interface SignerValidatorPayload\n * @typedef {SignerValidatorPayload}\n */\nexport interface SignerValidatorPayload {\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 SignerValidatorValidatePayload\n * @typedef {SignerValidatorValidatePayload}\n */\nexport interface SignerValidatorValidatePayload {\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 SignerValidatorClaimDataParams\n * @typedef {SignerValidatorClaimDataParams}\n */\nexport interface SignerValidatorClaimDataParams {\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 total number of incentives on the Boost\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 SignerValidatorInputParams} initialization payload\n *\n * @export\n * @interface SignerValidatorInputParams\n * @typedef {SignerValidatorInputParams}\n */\nexport interface SignerValidatorInputParams {\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 total number of incentives on the Boost\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 SignerValidatorSignaturePayload\n * @typedef {SignerValidatorSignaturePayload}\n */\nexport interface SignerValidatorSignaturePayload {\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 {SignerValidatorLog}\n * @template {ContractEventName<\n * typeof signerValidatorAbi\n * >} [event=ContractEventName<typeof signerValidatorAbi>]\n */\nexport type SignerValidatorLog<\n event extends ContractEventName<\n typeof signerValidatorAbi\n > = ContractEventName<typeof signerValidatorAbi>,\n> = GenericLog<typeof signerValidatorAbi, 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 SignerValidator extends DeployableTarget<\n SignerValidatorPayload,\n typeof signerValidatorAbi\n> {\n /**\n * @inheritdoc\n *\n * @public\n * @readonly\n * @type {*}\n */\n public override readonly abi = signerValidatorAbi;\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_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(\n address: Address,\n params?: ReadParams<typeof signerValidatorAbi, 'signers'>,\n ) {\n return await readSignerValidatorSigners(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: SignerValidatorSignaturePayload,\n params?: ReadParams<typeof signerValidatorAbi, 'hashSignerData'>,\n ) {\n return await readSignerValidatorHashSignerData(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: SignerValidatorValidatePayload,\n params?: WriteParams<typeof signerValidatorAbi, 'validate'>,\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: SignerValidatorValidatePayload,\n params?: ReadParams<typeof signerValidatorAbi, 'validate'>,\n ) {\n const { request, result } = await simulateSignerValidatorValidate(\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 writeSignerValidatorValidate(this._config, request);\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<typeof signerValidatorAbi, 'setAuthorized'>,\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<typeof signerValidatorAbi, 'setAuthorized'>,\n ) {\n const { request, result } = await simulateSignerValidatorSetAuthorized(\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 writeSignerValidatorSetAuthorized(this._config, request);\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(\n address: Address,\n params?: WriteParams<typeof signerValidatorAbi, 'setValidatorCaller'>,\n ) {\n const { request, result } = await simulateSignerValidatorSetValidatorCaller(\n this._config,\n {\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 );\n const hash = await writeSignerValidatorSetValidatorCaller(\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(\n address: Address,\n params?: WriteParams<typeof signerValidatorAbi, 'setValidatorCaller'>,\n ) {\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<SignerValidatorClaimDataParams, 'validator'>,\n ): Promise<Hex> {\n return await prepareSignerValidatorClaimDataPayload({\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?: SignerValidatorPayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [payload, options] = this.validateDeploymentConfig(\n _payload,\n _options,\n );\n return {\n abi: signerValidatorAbi,\n bytecode: bytecode as Hex,\n args: [prepareSignerValidatorPayload(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 prepareSignerValidatorClaimDataPayload({\n signer,\n incentiveData,\n chainId,\n validator,\n incentiveQuantity,\n claimant,\n boostId,\n}: SignerValidatorClaimDataParams): Promise<Hex> {\n const domain = {\n name: 'SignerValidator',\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 = prepareSignerValidatorInputParams({\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 prepareSignerValidatorInputParams({\n signer,\n signature,\n incentiveQuantity,\n}: SignerValidatorInputParams) {\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 * @param {Address[]} param0.signers\n * @param {Address} param0.validatorCaller\n * @returns {Hex}\n */\nexport function prepareSignerValidatorPayload({\n signers,\n validatorCaller,\n}: SignerValidatorPayload) {\n return encodeAbiParameters(\n [\n { type: 'address[]', name: 'signers' },\n { type: 'address', name: 'validatorCaller' },\n ],\n [signers, validatorCaller],\n );\n}\n"],"names":["_SignerValidator","DeployableTarget","signerValidatorAbi","address","params","readSignerValidatorSigners","payload","readSignerValidatorHashSignerData","request","result","simulateSignerValidatorValidate","writeSignerValidatorValidate","addresses","allowed","simulateSignerValidatorSetAuthorized","writeSignerValidatorSetAuthorized","simulateSignerValidatorSetValidatorCaller","writeSignerValidatorSetValidatorCaller","prepareSignerValidatorClaimDataPayload","_payload","_options","options","bytecode","prepareSignerValidatorPayload","SignerValidatorBases","RegistryType","SignerValidator","signer","incentiveData","chainId","validator","incentiveQuantity","claimant","boostId","typedData","trustedSignature","signTypedData","validatorData","prepareSignerValidatorInputParams","encodeAbiParameters","signature","signers","validatorCaller"],"mappings":"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"}