@boostxyz/sdk 7.0.0-canary.0 → 7.0.0-canary.1

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 (117) 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.js +56 -56
  5. package/dist/AllowLists/AllowList.cjs +1 -1
  6. package/dist/AllowLists/AllowList.js +5 -5
  7. package/dist/AllowLists/SimpleAllowList.cjs +1 -1
  8. package/dist/AllowLists/SimpleAllowList.js +17 -17
  9. package/dist/AllowLists/SimpleDenyList.cjs +1 -1
  10. package/dist/AllowLists/SimpleDenyList.js +3 -3
  11. package/dist/Auth/PassthroughAuth.cjs +1 -1
  12. package/dist/Auth/PassthroughAuth.js +1 -1
  13. package/dist/BoostCore.cjs +2 -2
  14. package/dist/BoostCore.js +141 -141
  15. package/dist/BoostRegistry.cjs +1 -1
  16. package/dist/BoostRegistry.js +11 -11
  17. package/dist/{Budget-Bvi5Qjqp.js → Budget-BgGihcwx.js} +54 -54
  18. package/dist/{Budget-Bvi5Qjqp.js.map → Budget-BgGihcwx.js.map} +1 -1
  19. package/dist/{Budget-B_kgJGDu.cjs → Budget-DYlTLLwg.cjs} +2 -2
  20. package/dist/{Budget-B_kgJGDu.cjs.map → Budget-DYlTLLwg.cjs.map} +1 -1
  21. package/dist/Budgets/Budget.cjs +1 -1
  22. package/dist/Budgets/Budget.js +3 -3
  23. package/dist/Budgets/ManagedBudget.cjs +1 -1
  24. package/dist/Budgets/ManagedBudget.js +29 -29
  25. package/dist/Deployable/DeployableTarget.cjs +1 -1
  26. package/dist/Deployable/DeployableTarget.js +1 -1
  27. package/dist/Deployable/DeployableTargetWithRBAC.cjs +1 -1
  28. package/dist/Deployable/DeployableTargetWithRBAC.js +16 -16
  29. package/dist/{Incentive-CLSVNxDz.cjs → Incentive-BDqkFt0J.cjs} +2 -2
  30. package/dist/{Incentive-CLSVNxDz.cjs.map → Incentive-BDqkFt0J.cjs.map} +1 -1
  31. package/dist/Incentive-DPOADY1f.js +449 -0
  32. package/dist/{Incentive-CLKutfnD.js.map → Incentive-DPOADY1f.js.map} +1 -1
  33. package/dist/Incentives/AllowListIncentive.cjs +1 -1
  34. package/dist/Incentives/AllowListIncentive.js +15 -15
  35. package/dist/Incentives/CGDAIncentive.cjs +1 -1
  36. package/dist/Incentives/CGDAIncentive.js +9 -9
  37. package/dist/Incentives/ERC20Incentive.cjs +1 -1
  38. package/dist/Incentives/ERC20Incentive.js +15 -15
  39. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentive.cjs +2 -0
  40. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentive.cjs.map +1 -0
  41. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentive.d.ts +1093 -0
  42. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentive.d.ts.map +1 -0
  43. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentive.js +604 -0
  44. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentive.js.map +1 -0
  45. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentiveV2.cjs +1 -1
  46. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentiveV2.cjs.map +1 -1
  47. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentiveV2.d.ts +4 -4
  48. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentiveV2.d.ts.map +1 -1
  49. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentiveV2.js +33 -33
  50. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentiveV2.js.map +1 -1
  51. package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs +2 -0
  52. package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs.map +1 -0
  53. package/dist/Incentives/ERC20VariableCriteriaIncentive.d.ts +884 -0
  54. package/dist/Incentives/ERC20VariableCriteriaIncentive.d.ts.map +1 -0
  55. package/dist/Incentives/ERC20VariableCriteriaIncentive.js +239 -0
  56. package/dist/Incentives/ERC20VariableCriteriaIncentive.js.map +1 -0
  57. package/dist/Incentives/ERC20VariableCriteriaIncentiveV2.cjs +1 -1
  58. package/dist/Incentives/ERC20VariableCriteriaIncentiveV2.cjs.map +1 -1
  59. package/dist/Incentives/ERC20VariableCriteriaIncentiveV2.d.ts +7 -7
  60. package/dist/Incentives/ERC20VariableCriteriaIncentiveV2.d.ts.map +1 -1
  61. package/dist/Incentives/ERC20VariableCriteriaIncentiveV2.js +11 -11
  62. package/dist/Incentives/ERC20VariableCriteriaIncentiveV2.js.map +1 -1
  63. package/dist/Incentives/ERC20VariableIncentive.cjs +1 -1
  64. package/dist/Incentives/ERC20VariableIncentive.js +12 -12
  65. package/dist/Incentives/Incentive.cjs +1 -1
  66. package/dist/Incentives/Incentive.d.ts +6 -4
  67. package/dist/Incentives/Incentive.d.ts.map +1 -1
  68. package/dist/Incentives/Incentive.js +23 -19
  69. package/dist/Incentives/Incentive.js.map +1 -1
  70. package/dist/Incentives/PointsIncentive.cjs +1 -1
  71. package/dist/Incentives/PointsIncentive.js +8 -8
  72. package/dist/{SimpleDenyList-CWthbyj7.cjs → SimpleDenyList-B_AcmgYq.cjs} +2 -2
  73. package/dist/{SimpleDenyList-CWthbyj7.cjs.map → SimpleDenyList-B_AcmgYq.cjs.map} +1 -1
  74. package/dist/{SimpleDenyList-C1C_BHkY.js → SimpleDenyList-BbDLzRw7.js} +14 -14
  75. package/dist/{SimpleDenyList-C1C_BHkY.js.map → SimpleDenyList-BbDLzRw7.js.map} +1 -1
  76. package/dist/Validators/LimitedSignerValidator.cjs +1 -1
  77. package/dist/Validators/LimitedSignerValidator.js +17 -17
  78. package/dist/Validators/SignerValidator.cjs +1 -1
  79. package/dist/Validators/SignerValidator.js +6 -6
  80. package/dist/Validators/Validator.cjs +1 -1
  81. package/dist/Validators/Validator.js +2 -2
  82. package/dist/componentInterfaces-C5ig8mCK.cjs +2 -0
  83. package/dist/componentInterfaces-C5ig8mCK.cjs.map +1 -0
  84. package/dist/componentInterfaces-Ddus5rIA.js +23 -0
  85. package/dist/componentInterfaces-Ddus5rIA.js.map +1 -0
  86. package/dist/deployments-C17nvui-.cjs +2 -0
  87. package/dist/deployments-C17nvui-.cjs.map +1 -0
  88. package/dist/{deployments-De8_J7SS.js → deployments-CH4Xmkbv.js} +41 -29
  89. package/dist/{deployments-De8_J7SS.js.map → deployments-CH4Xmkbv.js.map} +1 -1
  90. package/dist/{generated-BJfQ-EBO.js → generated-CINzoGbl.js} +1890 -765
  91. package/dist/generated-CINzoGbl.js.map +1 -0
  92. package/dist/generated-C_JEoLDO.cjs +3 -0
  93. package/dist/generated-C_JEoLDO.cjs.map +1 -0
  94. package/dist/index.cjs +1 -1
  95. package/dist/index.d.ts +2 -0
  96. package/dist/index.d.ts.map +1 -1
  97. package/dist/index.js +150 -141
  98. package/dist/index.js.map +1 -1
  99. package/package.json +13 -1
  100. package/src/Incentives/ERC20PeggedVariableCriteriaIncentive.ts +852 -0
  101. package/src/Incentives/ERC20PeggedVariableCriteriaIncentiveV2.test.ts +6 -6
  102. package/src/Incentives/ERC20PeggedVariableCriteriaIncentiveV2.ts +5 -5
  103. package/src/Incentives/ERC20VariableCriteriaIncentive.ts +437 -0
  104. package/src/Incentives/ERC20VariableCriteriaIncentiveV2.test.ts +6 -6
  105. package/src/Incentives/ERC20VariableCriteriaIncentiveV2.ts +7 -7
  106. package/src/Incentives/Incentive.ts +11 -0
  107. package/src/index.ts +2 -0
  108. package/dist/Incentive-CLKutfnD.js +0 -445
  109. package/dist/componentInterfaces-BVHB4Fjw.js +0 -21
  110. package/dist/componentInterfaces-BVHB4Fjw.js.map +0 -1
  111. package/dist/componentInterfaces-BqhL-meV.cjs +0 -2
  112. package/dist/componentInterfaces-BqhL-meV.cjs.map +0 -1
  113. package/dist/deployments-D9QxJGrC.cjs +0 -2
  114. package/dist/deployments-D9QxJGrC.cjs.map +0 -1
  115. package/dist/generated-BJfQ-EBO.js.map +0 -1
  116. package/dist/generated-mJJNq-xb.cjs +0 -3
  117. package/dist/generated-mJJNq-xb.cjs.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../generated-mJJNq-xb.cjs"),t=require("viem"),y=require("../deployments-D9QxJGrC.cjs"),u=require("../Deployable/DeployableTarget.cjs"),c=require("../claiming.cjs"),g=require("../utils.cjs"),w="0x6080604052348015600e575f80fd5b5060156019565b607c565b63409feecd198054600181161560365763f92ee8a95f526004601cfd5b6001600160401b03808260011c146077578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b612149806100895f395ff3fe608060405260043610610243575f3560e01c806354d1f13d11610131578063c884ef83116100ac578063ec87621c1161007c578063f2fde38b11610062578063f2fde38b14610677578063fe9fbb801461068a578063fee81cf4146106a9575f80fd5b8063ec87621c14610650578063f04e283e14610664575f80fd5b8063c884ef83146105cf578063db09da12146105fd578063dcc213611461061c578063dcc59b6f1461063b575f80fd5b8063a4d66daf11610101578063b30906d4116100e7578063b30906d414610572578063bb1757cf14610591578063be4994f8146105b0575f80fd5b8063a4d66daf14610537578063a8c62e761461054c575f80fd5b806354d1f13d146104fb578063715018a61461050357806375b238fc1461050b5780638da5cb5b1461051f575f80fd5b80632de94807116101c1578063439fab91116101915780634a4ee7b1116101775780634a4ee7b1146104875780634e7165a21461049a578063514e62fc146104c6575f80fd5b8063439fab911461041f578063474f5a441461043e575f80fd5b80632de948071461035f57806330db555f1461039057806338d52e0f146103af5780634359d28a14610400575f80fd5b80631cd64df411610216578063228cb733116101fc578063228cb73314610309578063256929621461031d57806328d6183b14610325575f80fd5b80631cd64df4146102c05780632275aea9146102f5575f80fd5b806301ffc9a71461024757806307621eca1461027b578063183a4f6e146102985780631c10893f146102ad575b5f80fd5b348015610252575f80fd5b506102666102613660046119ee565b6106da565b60405190151581526020015b60405180910390f35b348015610286575f80fd5b505f545b604051908152602001610272565b6102ab6102a6366004611a2d565b610735565b005b6102ab6102bb366004611a6c565b610742565b3480156102cb575f80fd5b506102666102da366004611a6c565b638b78c6d8600c9081525f9290925260209091205481161490565b348015610300575f80fd5b506102ab610758565b348015610314575f80fd5b5061028a5f5481565b6102ab6108d7565b348015610330575f80fd5b506040517f7cc1d5bb000000000000000000000000000000000000000000000000000000008152602001610272565b34801561036a575f80fd5b5061028a610379366004611a94565b638b78c6d8600c9081525f91909152602090205490565b34801561039b575f80fd5b506102ab6103aa366004611a2d565b610924565b3480156103ba575f80fd5b506004546103db9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610272565b34801561040b575f80fd5b506102ab61041a366004611af5565b610a83565b34801561042a575f80fd5b506102ab610439366004611b9f565b610b7d565b348015610449575f80fd5b5061045d610458366004611b9f565b610e4a565b6040805192835273ffffffffffffffffffffffffffffffffffffffff909116602083015201610272565b6102ab610495366004611a6c565b61104d565b3480156104a5575f80fd5b506104b96104b4366004611b9f565b61105f565b6040516102729190611c0c565b3480156104d1575f80fd5b506102666104e0366004611a6c565b638b78c6d8600c9081525f9290925260209091205416151590565b6102ab61112f565b6102ab611168565b348015610516575f80fd5b5061028a600281565b34801561052a575f80fd5b50638b78c6d819546103db565b348015610542575f80fd5b5061028a60065481565b348015610557575f80fd5b506002546105659060ff1681565b6040516102729190611c5f565b34801561057d575f80fd5b506103db61058c366004611a2d565b61117b565b34801561059c575f80fd5b506102666105ab366004611c6d565b6111b0565b3480156105bb575f80fd5b506102ab6105ca366004611af5565b611421565b3480156105da575f80fd5b506102666105e9366004611a94565b60016020525f908152604090205460ff1681565b348015610608575f80fd5b50610266610617366004611c6d565b6114bf565b348015610627575f80fd5b506102ab610636366004611af5565b6114d1565b348015610646575f80fd5b5061028a60055481565b34801561065b575f80fd5b5061028a600181565b6102ab610672366004611a94565b61156f565b6102ab610685366004611a94565b6115a9565b348015610695575f80fd5b506102666106a4366004611a94565b6115cf565b3480156106b4575f80fd5b5061028a6106c3366004611a94565b63389a75e1600c9081525f91909152602090205490565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7cc1d5bb00000000000000000000000000000000000000000000000000000000148061072f575061072f8261162e565b92915050565b61073f3382611683565b50565b61074a61168e565b61075482826116a8565b5050565b6001610763816116b4565b600160025460ff16600181111561077c5761077c611c1e565b146107b3576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f604051806020016040528042446107cb9190611ce9565b905260038054602083208084529293505f926107e79190611d29565b815481106107f7576107f7611d3c565b5f918252602082200154905460045473ffffffffffffffffffffffffffffffffffffffff928316935061082d92169083906116d8565b6004545f546040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606093841b811660208301529284901b9092166034830152604882015273ffffffffffffffffffffffffffffffffffffffff8216907f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d39060680160408051601f19818403018152908290526108ca91611c0c565b60405180910390a2505050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b600161092f8161172b565b815f03610968576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60045461098d9073ffffffffffffffffffffffffffffffffffffffff1633308561175c565b600160025460ff1660018111156109a6576109a6611c1e565b036109dd576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f546109e99083611d29565b15610a20576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8054610a2d9084611d69565b90508060065f828254610a409190611ce9565b909155505060408051338152602081018590527fa64c2da41decbd538f8629e54c8fa0b7362c9102b691386a0fb6a1797454e9c6910160405180910390a1505050565b6002610a8e8161172b565b838214610ac7576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610b75575f848483818110610ae457610ae4611d3c565b9050602002016020810190610af99190611d7c565b9050801515600103610b3b57610b36878784818110610b1a57610b1a611d3c565b9050602002016020810190610b2f9190611a94565b60016116a8565b610b6c565b610b6c878784818110610b5057610b50611d3c565b9050602002016020810190610b659190611a94565b6001611683565b50600101610ac9565b505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011328054600382558015610bce5760018160011c14303b10610bc55763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f610bdc83850185611e22565b905080604001515f1480610bf257506060810151155b15610c29576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f600182602001516001811115610c4257610c42611c1e565b03610c51578160400151610c65565b81606001518260400151610c659190611ea7565b82519091505f90610c8c9073ffffffffffffffffffffffffffffffffffffffff16306117be565b905081811015610cf65782516040517f5c54305e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015260248101829052604481018390526064015b60405180910390fd5b8251600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790556020830151600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660018381811115610d7a57610d7a611c1e565b021790555060408301515f556060830151600655610d97336117f1565b610da683608001516001611839565b825f015173ffffffffffffffffffffffffffffffffffffffff167fe83379cf1b79044fa1d0063e68012349f4f5fb730e6a875bdc9d463747ecd0858460200151856040015186606001518760800151604051610e059493929190611ebe565b60405180910390a25050508015610e45576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f806001610e578161172b565b5f610e6485870187611efd565b90505f8160200151806020019051810190610e7f9190611fd4565b9050600160025460ff166001811115610e9a57610e9a611c1e565b03610f11575f5481141580610eb057505f600554115b15610f08573382604051602001610ec79190611feb565b60408051601f19818403018152908290527f4139d81d000000000000000000000000000000000000000000000000000000008252610ced9291600401612025565b5f600655610f56565b5f54610f1d9082611d29565b15610f34573382604051602001610ec79190611feb565b5f54610f409082611d69565b60065f828254610f509190612053565b90915550505b8151600454610f7e9173ffffffffffffffffffffffffffffffffffffffff90911690836116d8565b81516004546040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606092831b811660208301529183901b90911660348201526048810183905273ffffffffffffffffffffffffffffffffffffffff909116907f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d39060680160408051601f198184030181529082905261101e91611c0c565b60405180910390a260045490945073ffffffffffffffffffffffffffffffffffffffff16925050509250929050565b61105561168e565b6107548282611683565b60605f61106e83850185611e22565b90505f60018260200151600181111561108957611089611c1e565b036110985781604001516110ac565b816060015182604001516110ac9190611ea7565b6040805160808101825260018152845173ffffffffffffffffffffffffffffffffffffffff16602080830191909152308284015282518082018452849052825180820185905283518082038301815290840184526060830152915192935061111692909101612066565b6040516020818303038152906040529250505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b61117061168e565b6111795f61187a565b565b6003818154811061118a575f80fd5b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b5f6111b961168e565b6111c2846118c4565b6111f8576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60025460ff16600181111561121057611210611c1e565b036113375760058054905f611224836120dc565b909155505073ffffffffffffffffffffffffffffffffffffffff8085165f908152600160208190526040822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690911790555460045461128a92169086906116d8565b6004545f546040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606093841b811660208301529287901b9092166034830152604882015273ffffffffffffffffffffffffffffffffffffffff8516907f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d39060680160408051601f198184030181529082905261132791611c0c565b60405180910390a250600161141a565b60058054905f611346836120dc565b909155505073ffffffffffffffffffffffffffffffffffffffff84165f81815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560038054928301815583527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055517ff0abe0f5c6f02112a9a4332e7b091bf49040ffddeedb73785a9b9a0a3ca7f1539190a25060015b9392505050565b600261142c8161172b565b838214611465576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610b75576114b786868381811061148457611484611d3c565b90506020020160208101906114999190611a94565b8585848181106114ab576114ab611d3c565b905060200201356116a8565b600101611467565b5f6114c9846118c4565b949350505050565b60026114dc8161172b565b838214611515576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610b755761156786868381811061153457611534611d3c565b90506020020160208101906115499190611a94565b85858481811061155b5761155b611d3c565b90506020020135611683565b600101611517565b61157761168e565b63389a75e1600c52805f526020600c20805442111561159d57636f5e88185f526004601cfd5b5f905561073f8161187a565b6115b161168e565b8060601b6115c657637448fbae5f526004601cfd5b61073f8161187a565b5f8173ffffffffffffffffffffffffffffffffffffffff166115f4638b78c6d8195490565b73ffffffffffffffffffffffffffffffffffffffff16148061072f5750638b78c6d8600c9081525f8390526020902054600316151561072f565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fa921670500000000000000000000000000000000000000000000000000000000148061072f575061072f82611901565b61075482825f611997565b638b78c6d819543314611179576382b429005f526004601cfd5b61075482826001611997565b638b78c6d8600c52335f52806020600c20541661073f576382b429005f526004601cfd5b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f51141661172157803d853b151710611721576390b8ec185f526004601cfd5b505f603452505050565b638b78c6d81954331461073f57638b78c6d8600c52335f52806020600c20541661073f576382b429005f526004601cfd5b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af18060015f5114166117b057803d873b1517106117b057637939f4245f526004601cfd5b505f60605260405250505050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b73ffffffffffffffffffffffffffffffffffffffff16638b78c6d819819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b638b78c6d819805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001602052604081205460ff1615801561072f57506006546005541092915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f6ab67a0d00000000000000000000000000000000000000000000000000000000148061072f57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000083161461072f565b638b78c6d8600c52825f526020600c208054838117836119b8575080841681185b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f602082840312156119fe575f80fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461141a575f80fd5b5f60208284031215611a3d575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611a67575f80fd5b919050565b5f8060408385031215611a7d575f80fd5b611a8683611a44565b946020939093013593505050565b5f60208284031215611aa4575f80fd5b61141a82611a44565b5f8083601f840112611abd575f80fd5b50813567ffffffffffffffff811115611ad4575f80fd5b6020830191508360208260051b8501011115611aee575f80fd5b9250929050565b5f805f8060408587031215611b08575f80fd5b843567ffffffffffffffff811115611b1e575f80fd5b611b2a87828801611aad565b909550935050602085013567ffffffffffffffff811115611b49575f80fd5b611b5587828801611aad565b95989497509550505050565b5f8083601f840112611b71575f80fd5b50813567ffffffffffffffff811115611b88575f80fd5b602083019150836020828501011115611aee575f80fd5b5f8060208385031215611bb0575f80fd5b823567ffffffffffffffff811115611bc6575f80fd5b611bd285828601611b61565b90969095509350505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61141a6020830184611bde565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60028110611c5b57611c5b611c1e565b9052565b6020810161072f8284611c4b565b5f805f60408486031215611c7f575f80fd5b611c8884611a44565b9250602084013567ffffffffffffffff811115611ca3575f80fd5b611caf86828701611b61565b9497909650939450505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561072f5761072f611cbc565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82611d3757611d37611cfc565b500690565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82611d7757611d77611cfc565b500490565b5f60208284031215611d8c575f80fd5b8135801515811461141a575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff81118282101715611deb57611deb611d9b565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611e1a57611e1a611d9b565b604052919050565b5f60a0828403128015611e33575f80fd5b5060405160a0810167ffffffffffffffff81118282101715611e5757611e57611d9b565b604052611e6383611a44565b8152602083013560028110611e76575f80fd5b60208201526040838101359082015260608084013590820152611e9b60808401611a44565b60808201529392505050565b808202811582820484141761072f5761072f611cbc565b60808101611ecc8287611c4b565b84602083015283604083015273ffffffffffffffffffffffffffffffffffffffff8316606083015295945050505050565b5f60208284031215611f0d575f80fd5b813567ffffffffffffffff811115611f23575f80fd5b820160408185031215611f34575f80fd5b611f3c611dc8565b611f4582611a44565b8152602082013567ffffffffffffffff811115611f60575f80fd5b80830192505084601f830112611f74575f80fd5b813567ffffffffffffffff811115611f8e57611f8e611d9b565b611fa16020601f19601f84011601611df1565b818152866020838601011115611fb5575f80fd5b816020850160208301375f602092820183015290820152949350505050565b5f60208284031215611fe4575f80fd5b5051919050565b6020815273ffffffffffffffffffffffffffffffffffffffff82511660208201525f60208301516040808401526114c96060840182611bde565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201525f6114c96040830184611bde565b8181038181111561072f5761072f611cbc565b602081525f82516003811061207d5761207d611c1e565b8060208401525073ffffffffffffffffffffffffffffffffffffffff602084015116604083015273ffffffffffffffffffffffffffffffffffffffff604084015116606083015260608301516080808401526114c960a0840182611bde565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361210c5761210c611cbc565b506001019056fea26469706673582212209def68a22e935c7af91e946bb2187abd14944a4cd3b455abbdb234120eea61b564736f6c634300081a0033",i=class i extends u.DeployableTarget{constructor(){super(...arguments),this.abi=a.b}async owner(f){return await a.VI(this._config,{address:this.assertValidAddress(),args:[],...f})}async currentReward(f){return await a.II(this._config,{address:this.assertValidAddress(),args:[],...f})}async claims(f){return await a.hI(this._config,{address:this.assertValidAddress(),args:[],...f})}async claimed(f,b){return await a.AI(this._config,{address:this.assertValidAddress(),args:[f],...b})}async asset(f){return await a.gI(this._config,{address:this.assertValidAddress(),...f})}strategy(f){return a.SI(this._config,{address:this.assertValidAddress(),...f})}async reward(f){return await a.HI(this._config,{address:this.assertValidAddress(),...f})}async limit(f){return await a.BI(this._config,{address:this.assertValidAddress(),...f})}async entries(f,b){return await a.NI(this._config,{address:this.assertValidAddress(),args:[f],...b})}async claim(f,b){return await this.awaitResult(this.claimRaw(f,b))}async claimRaw(f,b){const{request:e,result:d}=await a.aN(this._config,{address:this.assertValidAddress(),args:[c.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...b});return{hash:await a.LI(this._config,e),result:d}}async clawback(f,b){return await this.awaitResult(this.clawbackRaw(f,b))}async clawbackRaw(f,b){const{request:e,result:d}=await a.iN(this._config,{address:this.assertValidAddress(),args:[c.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...b});return{hash:await a.DI(this._config,e),result:d}}async isClaimable(f,b){return await a.EI(this._config,{address:this.assertValidAddress(),args:[f.target,f.data],...b})}async drawRaffle(f){return await this.awaitResult(this.drawRaffleRaw(f))}async drawRaffleRaw(f){const{request:b,result:e}=await a.rN(this._config,{address:this.assertValidAddress(),...this.optionallyAttachAccount(),...f});return{hash:await a.WI(this._config,b),result:e}}async getTotalBudget(f){var s,l,o;if(((s=this.payload)==null?void 0:s.strategy)!==void 0&&((l=this.payload)==null?void 0:l.limit)!==void 0&&((o=this.payload)==null?void 0:o.reward)!==void 0)return this.payload.strategy===c.StrategyType.POOL?this.payload.limit*this.payload.reward:this.payload.reward;const[b,e,d]=await Promise.all([this.strategy(f),this.limit(f),this.reward(f)]);return b===c.StrategyType.POOL?e*d:d}async canBeClaimed(f){return await this.getRemainingClaimPotential(f)>0n}async getRemainingClaimPotential(f){const[b,e]=await Promise.all([this.claims(f),this.limit(f)]);return e-b}buildParameters(f,b){const[e,d]=this.validateDeploymentConfig(f,b);return{abi:a.b,bytecode:w,args:[n(e)],...this.optionallyAttachAccount(d.account)}}buildClawbackData(f){return t.encodeAbiParameters([{type:"uint256"}],[f])}async getTopupPayload(f){var d;const e={asset:await this.asset()||t.zeroAddress,strategy:c.StrategyType.POOL,reward:1n,limit:f,manager:((d=this.payload)==null?void 0:d.manager)||t.zeroAddress};return n(e)}buildClaimData(){return t.zeroHash}};i.bases={31337:void 0,...y.ERC20Incentive},i.registryType=g.RegistryType.INCENTIVE;let r=i;function n({asset:h,strategy:f,reward:b,limit:e,manager:d=t.zeroAddress}){return t.encodeAbiParameters([{type:"address",name:"asset"},{type:"uint8",name:"strategy"},{type:"uint256",name:"reward"},{type:"uint256",name:"limit"},{type:"address",name:"manager"}],[h,f,b,e===0n&&f===c.StrategyType.RAFFLE?1n:e,d])}exports.erc20IncentiveAbi=a.b;exports.ERC20Incentive=r;exports.prepareERC20IncentivePayload=n;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../generated-C_JEoLDO.cjs"),t=require("viem"),y=require("../deployments-C17nvui-.cjs"),u=require("../Deployable/DeployableTarget.cjs"),c=require("../claiming.cjs"),g=require("../utils.cjs"),w="0x6080604052348015600e575f80fd5b5060156019565b607c565b63409feecd198054600181161560365763f92ee8a95f526004601cfd5b6001600160401b03808260011c146077578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b612149806100895f395ff3fe608060405260043610610243575f3560e01c806354d1f13d11610131578063c884ef83116100ac578063ec87621c1161007c578063f2fde38b11610062578063f2fde38b14610677578063fe9fbb801461068a578063fee81cf4146106a9575f80fd5b8063ec87621c14610650578063f04e283e14610664575f80fd5b8063c884ef83146105cf578063db09da12146105fd578063dcc213611461061c578063dcc59b6f1461063b575f80fd5b8063a4d66daf11610101578063b30906d4116100e7578063b30906d414610572578063bb1757cf14610591578063be4994f8146105b0575f80fd5b8063a4d66daf14610537578063a8c62e761461054c575f80fd5b806354d1f13d146104fb578063715018a61461050357806375b238fc1461050b5780638da5cb5b1461051f575f80fd5b80632de94807116101c1578063439fab91116101915780634a4ee7b1116101775780634a4ee7b1146104875780634e7165a21461049a578063514e62fc146104c6575f80fd5b8063439fab911461041f578063474f5a441461043e575f80fd5b80632de948071461035f57806330db555f1461039057806338d52e0f146103af5780634359d28a14610400575f80fd5b80631cd64df411610216578063228cb733116101fc578063228cb73314610309578063256929621461031d57806328d6183b14610325575f80fd5b80631cd64df4146102c05780632275aea9146102f5575f80fd5b806301ffc9a71461024757806307621eca1461027b578063183a4f6e146102985780631c10893f146102ad575b5f80fd5b348015610252575f80fd5b506102666102613660046119ee565b6106da565b60405190151581526020015b60405180910390f35b348015610286575f80fd5b505f545b604051908152602001610272565b6102ab6102a6366004611a2d565b610735565b005b6102ab6102bb366004611a6c565b610742565b3480156102cb575f80fd5b506102666102da366004611a6c565b638b78c6d8600c9081525f9290925260209091205481161490565b348015610300575f80fd5b506102ab610758565b348015610314575f80fd5b5061028a5f5481565b6102ab6108d7565b348015610330575f80fd5b506040517f7cc1d5bb000000000000000000000000000000000000000000000000000000008152602001610272565b34801561036a575f80fd5b5061028a610379366004611a94565b638b78c6d8600c9081525f91909152602090205490565b34801561039b575f80fd5b506102ab6103aa366004611a2d565b610924565b3480156103ba575f80fd5b506004546103db9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610272565b34801561040b575f80fd5b506102ab61041a366004611af5565b610a83565b34801561042a575f80fd5b506102ab610439366004611b9f565b610b7d565b348015610449575f80fd5b5061045d610458366004611b9f565b610e4a565b6040805192835273ffffffffffffffffffffffffffffffffffffffff909116602083015201610272565b6102ab610495366004611a6c565b61104d565b3480156104a5575f80fd5b506104b96104b4366004611b9f565b61105f565b6040516102729190611c0c565b3480156104d1575f80fd5b506102666104e0366004611a6c565b638b78c6d8600c9081525f9290925260209091205416151590565b6102ab61112f565b6102ab611168565b348015610516575f80fd5b5061028a600281565b34801561052a575f80fd5b50638b78c6d819546103db565b348015610542575f80fd5b5061028a60065481565b348015610557575f80fd5b506002546105659060ff1681565b6040516102729190611c5f565b34801561057d575f80fd5b506103db61058c366004611a2d565b61117b565b34801561059c575f80fd5b506102666105ab366004611c6d565b6111b0565b3480156105bb575f80fd5b506102ab6105ca366004611af5565b611421565b3480156105da575f80fd5b506102666105e9366004611a94565b60016020525f908152604090205460ff1681565b348015610608575f80fd5b50610266610617366004611c6d565b6114bf565b348015610627575f80fd5b506102ab610636366004611af5565b6114d1565b348015610646575f80fd5b5061028a60055481565b34801561065b575f80fd5b5061028a600181565b6102ab610672366004611a94565b61156f565b6102ab610685366004611a94565b6115a9565b348015610695575f80fd5b506102666106a4366004611a94565b6115cf565b3480156106b4575f80fd5b5061028a6106c3366004611a94565b63389a75e1600c9081525f91909152602090205490565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7cc1d5bb00000000000000000000000000000000000000000000000000000000148061072f575061072f8261162e565b92915050565b61073f3382611683565b50565b61074a61168e565b61075482826116a8565b5050565b6001610763816116b4565b600160025460ff16600181111561077c5761077c611c1e565b146107b3576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f604051806020016040528042446107cb9190611ce9565b905260038054602083208084529293505f926107e79190611d29565b815481106107f7576107f7611d3c565b5f918252602082200154905460045473ffffffffffffffffffffffffffffffffffffffff928316935061082d92169083906116d8565b6004545f546040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606093841b811660208301529284901b9092166034830152604882015273ffffffffffffffffffffffffffffffffffffffff8216907f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d39060680160408051601f19818403018152908290526108ca91611c0c565b60405180910390a2505050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b600161092f8161172b565b815f03610968576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60045461098d9073ffffffffffffffffffffffffffffffffffffffff1633308561175c565b600160025460ff1660018111156109a6576109a6611c1e565b036109dd576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f546109e99083611d29565b15610a20576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8054610a2d9084611d69565b90508060065f828254610a409190611ce9565b909155505060408051338152602081018590527fa64c2da41decbd538f8629e54c8fa0b7362c9102b691386a0fb6a1797454e9c6910160405180910390a1505050565b6002610a8e8161172b565b838214610ac7576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610b75575f848483818110610ae457610ae4611d3c565b9050602002016020810190610af99190611d7c565b9050801515600103610b3b57610b36878784818110610b1a57610b1a611d3c565b9050602002016020810190610b2f9190611a94565b60016116a8565b610b6c565b610b6c878784818110610b5057610b50611d3c565b9050602002016020810190610b659190611a94565b6001611683565b50600101610ac9565b505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011328054600382558015610bce5760018160011c14303b10610bc55763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f610bdc83850185611e22565b905080604001515f1480610bf257506060810151155b15610c29576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f600182602001516001811115610c4257610c42611c1e565b03610c51578160400151610c65565b81606001518260400151610c659190611ea7565b82519091505f90610c8c9073ffffffffffffffffffffffffffffffffffffffff16306117be565b905081811015610cf65782516040517f5c54305e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015260248101829052604481018390526064015b60405180910390fd5b8251600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790556020830151600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660018381811115610d7a57610d7a611c1e565b021790555060408301515f556060830151600655610d97336117f1565b610da683608001516001611839565b825f015173ffffffffffffffffffffffffffffffffffffffff167fe83379cf1b79044fa1d0063e68012349f4f5fb730e6a875bdc9d463747ecd0858460200151856040015186606001518760800151604051610e059493929190611ebe565b60405180910390a25050508015610e45576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f806001610e578161172b565b5f610e6485870187611efd565b90505f8160200151806020019051810190610e7f9190611fd4565b9050600160025460ff166001811115610e9a57610e9a611c1e565b03610f11575f5481141580610eb057505f600554115b15610f08573382604051602001610ec79190611feb565b60408051601f19818403018152908290527f4139d81d000000000000000000000000000000000000000000000000000000008252610ced9291600401612025565b5f600655610f56565b5f54610f1d9082611d29565b15610f34573382604051602001610ec79190611feb565b5f54610f409082611d69565b60065f828254610f509190612053565b90915550505b8151600454610f7e9173ffffffffffffffffffffffffffffffffffffffff90911690836116d8565b81516004546040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606092831b811660208301529183901b90911660348201526048810183905273ffffffffffffffffffffffffffffffffffffffff909116907f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d39060680160408051601f198184030181529082905261101e91611c0c565b60405180910390a260045490945073ffffffffffffffffffffffffffffffffffffffff16925050509250929050565b61105561168e565b6107548282611683565b60605f61106e83850185611e22565b90505f60018260200151600181111561108957611089611c1e565b036110985781604001516110ac565b816060015182604001516110ac9190611ea7565b6040805160808101825260018152845173ffffffffffffffffffffffffffffffffffffffff16602080830191909152308284015282518082018452849052825180820185905283518082038301815290840184526060830152915192935061111692909101612066565b6040516020818303038152906040529250505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b61117061168e565b6111795f61187a565b565b6003818154811061118a575f80fd5b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b5f6111b961168e565b6111c2846118c4565b6111f8576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60025460ff16600181111561121057611210611c1e565b036113375760058054905f611224836120dc565b909155505073ffffffffffffffffffffffffffffffffffffffff8085165f908152600160208190526040822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690911790555460045461128a92169086906116d8565b6004545f546040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606093841b811660208301529287901b9092166034830152604882015273ffffffffffffffffffffffffffffffffffffffff8516907f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d39060680160408051601f198184030181529082905261132791611c0c565b60405180910390a250600161141a565b60058054905f611346836120dc565b909155505073ffffffffffffffffffffffffffffffffffffffff84165f81815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560038054928301815583527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055517ff0abe0f5c6f02112a9a4332e7b091bf49040ffddeedb73785a9b9a0a3ca7f1539190a25060015b9392505050565b600261142c8161172b565b838214611465576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610b75576114b786868381811061148457611484611d3c565b90506020020160208101906114999190611a94565b8585848181106114ab576114ab611d3c565b905060200201356116a8565b600101611467565b5f6114c9846118c4565b949350505050565b60026114dc8161172b565b838214611515576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610b755761156786868381811061153457611534611d3c565b90506020020160208101906115499190611a94565b85858481811061155b5761155b611d3c565b90506020020135611683565b600101611517565b61157761168e565b63389a75e1600c52805f526020600c20805442111561159d57636f5e88185f526004601cfd5b5f905561073f8161187a565b6115b161168e565b8060601b6115c657637448fbae5f526004601cfd5b61073f8161187a565b5f8173ffffffffffffffffffffffffffffffffffffffff166115f4638b78c6d8195490565b73ffffffffffffffffffffffffffffffffffffffff16148061072f5750638b78c6d8600c9081525f8390526020902054600316151561072f565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fa921670500000000000000000000000000000000000000000000000000000000148061072f575061072f82611901565b61075482825f611997565b638b78c6d819543314611179576382b429005f526004601cfd5b61075482826001611997565b638b78c6d8600c52335f52806020600c20541661073f576382b429005f526004601cfd5b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f51141661172157803d853b151710611721576390b8ec185f526004601cfd5b505f603452505050565b638b78c6d81954331461073f57638b78c6d8600c52335f52806020600c20541661073f576382b429005f526004601cfd5b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af18060015f5114166117b057803d873b1517106117b057637939f4245f526004601cfd5b505f60605260405250505050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b73ffffffffffffffffffffffffffffffffffffffff16638b78c6d819819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b638b78c6d819805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001602052604081205460ff1615801561072f57506006546005541092915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f6ab67a0d00000000000000000000000000000000000000000000000000000000148061072f57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000083161461072f565b638b78c6d8600c52825f526020600c208054838117836119b8575080841681185b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f602082840312156119fe575f80fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461141a575f80fd5b5f60208284031215611a3d575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611a67575f80fd5b919050565b5f8060408385031215611a7d575f80fd5b611a8683611a44565b946020939093013593505050565b5f60208284031215611aa4575f80fd5b61141a82611a44565b5f8083601f840112611abd575f80fd5b50813567ffffffffffffffff811115611ad4575f80fd5b6020830191508360208260051b8501011115611aee575f80fd5b9250929050565b5f805f8060408587031215611b08575f80fd5b843567ffffffffffffffff811115611b1e575f80fd5b611b2a87828801611aad565b909550935050602085013567ffffffffffffffff811115611b49575f80fd5b611b5587828801611aad565b95989497509550505050565b5f8083601f840112611b71575f80fd5b50813567ffffffffffffffff811115611b88575f80fd5b602083019150836020828501011115611aee575f80fd5b5f8060208385031215611bb0575f80fd5b823567ffffffffffffffff811115611bc6575f80fd5b611bd285828601611b61565b90969095509350505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61141a6020830184611bde565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60028110611c5b57611c5b611c1e565b9052565b6020810161072f8284611c4b565b5f805f60408486031215611c7f575f80fd5b611c8884611a44565b9250602084013567ffffffffffffffff811115611ca3575f80fd5b611caf86828701611b61565b9497909650939450505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561072f5761072f611cbc565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82611d3757611d37611cfc565b500690565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82611d7757611d77611cfc565b500490565b5f60208284031215611d8c575f80fd5b8135801515811461141a575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff81118282101715611deb57611deb611d9b565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611e1a57611e1a611d9b565b604052919050565b5f60a0828403128015611e33575f80fd5b5060405160a0810167ffffffffffffffff81118282101715611e5757611e57611d9b565b604052611e6383611a44565b8152602083013560028110611e76575f80fd5b60208201526040838101359082015260608084013590820152611e9b60808401611a44565b60808201529392505050565b808202811582820484141761072f5761072f611cbc565b60808101611ecc8287611c4b565b84602083015283604083015273ffffffffffffffffffffffffffffffffffffffff8316606083015295945050505050565b5f60208284031215611f0d575f80fd5b813567ffffffffffffffff811115611f23575f80fd5b820160408185031215611f34575f80fd5b611f3c611dc8565b611f4582611a44565b8152602082013567ffffffffffffffff811115611f60575f80fd5b80830192505084601f830112611f74575f80fd5b813567ffffffffffffffff811115611f8e57611f8e611d9b565b611fa16020601f19601f84011601611df1565b818152866020838601011115611fb5575f80fd5b816020850160208301375f602092820183015290820152949350505050565b5f60208284031215611fe4575f80fd5b5051919050565b6020815273ffffffffffffffffffffffffffffffffffffffff82511660208201525f60208301516040808401526114c96060840182611bde565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201525f6114c96040830184611bde565b8181038181111561072f5761072f611cbc565b602081525f82516003811061207d5761207d611c1e565b8060208401525073ffffffffffffffffffffffffffffffffffffffff602084015116604083015273ffffffffffffffffffffffffffffffffffffffff604084015116606083015260608301516080808401526114c960a0840182611bde565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361210c5761210c611cbc565b506001019056fea26469706673582212209def68a22e935c7af91e946bb2187abd14944a4cd3b455abbdb234120eea61b564736f6c634300081a0033",i=class i extends u.DeployableTarget{constructor(){super(...arguments),this.abi=a.T}async owner(f){return await a.AM(this._config,{address:this.assertValidAddress(),args:[],...f})}async currentReward(f){return await a.mM(this._config,{address:this.assertValidAddress(),args:[],...f})}async claims(f){return await a.cM(this._config,{address:this.assertValidAddress(),args:[],...f})}async claimed(f,b){return await a.dM(this._config,{address:this.assertValidAddress(),args:[f],...b})}async asset(f){return await a.yM(this._config,{address:this.assertValidAddress(),...f})}strategy(f){return a.CM(this._config,{address:this.assertValidAddress(),...f})}async reward(f){return await a.MM(this._config,{address:this.assertValidAddress(),...f})}async limit(f){return await a.IM(this._config,{address:this.assertValidAddress(),...f})}async entries(f,b){return await a.bM(this._config,{address:this.assertValidAddress(),args:[f],...b})}async claim(f,b){return await this.awaitResult(this.claimRaw(f,b))}async claimRaw(f,b){const{request:e,result:d}=await a.$M(this._config,{address:this.assertValidAddress(),args:[c.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...b});return{hash:await a.zM(this._config,e),result:d}}async clawback(f,b){return await this.awaitResult(this.clawbackRaw(f,b))}async clawbackRaw(f,b){const{request:e,result:d}=await a.QM(this._config,{address:this.assertValidAddress(),args:[c.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...b});return{hash:await a.BM(this._config,e),result:d}}async isClaimable(f,b){return await a.gM(this._config,{address:this.assertValidAddress(),args:[f.target,f.data],...b})}async drawRaffle(f){return await this.awaitResult(this.drawRaffleRaw(f))}async drawRaffleRaw(f){const{request:b,result:e}=await a.KM(this._config,{address:this.assertValidAddress(),...this.optionallyAttachAccount(),...f});return{hash:await a.xM(this._config,b),result:e}}async getTotalBudget(f){var s,l,o;if(((s=this.payload)==null?void 0:s.strategy)!==void 0&&((l=this.payload)==null?void 0:l.limit)!==void 0&&((o=this.payload)==null?void 0:o.reward)!==void 0)return this.payload.strategy===c.StrategyType.POOL?this.payload.limit*this.payload.reward:this.payload.reward;const[b,e,d]=await Promise.all([this.strategy(f),this.limit(f),this.reward(f)]);return b===c.StrategyType.POOL?e*d:d}async canBeClaimed(f){return await this.getRemainingClaimPotential(f)>0n}async getRemainingClaimPotential(f){const[b,e]=await Promise.all([this.claims(f),this.limit(f)]);return e-b}buildParameters(f,b){const[e,d]=this.validateDeploymentConfig(f,b);return{abi:a.T,bytecode:w,args:[n(e)],...this.optionallyAttachAccount(d.account)}}buildClawbackData(f){return t.encodeAbiParameters([{type:"uint256"}],[f])}async getTopupPayload(f){var d;const e={asset:await this.asset()||t.zeroAddress,strategy:c.StrategyType.POOL,reward:1n,limit:f,manager:((d=this.payload)==null?void 0:d.manager)||t.zeroAddress};return n(e)}buildClaimData(){return t.zeroHash}};i.bases={31337:void 0,...y.ERC20Incentive},i.registryType=g.RegistryType.INCENTIVE;let r=i;function n({asset:h,strategy:f,reward:b,limit:e,manager:d=t.zeroAddress}){return t.encodeAbiParameters([{type:"address",name:"asset"},{type:"uint8",name:"strategy"},{type:"uint256",name:"reward"},{type:"uint256",name:"limit"},{type:"address",name:"manager"}],[h,f,b,e===0n&&f===c.StrategyType.RAFFLE?1n:e,d])}exports.erc20IncentiveAbi=a.T;exports.ERC20Incentive=r;exports.prepareERC20IncentivePayload=n;
2
2
  //# sourceMappingURL=ERC20Incentive.cjs.map
@@ -1,10 +1,10 @@
1
- import { b as n, aO as g, aP as w, aQ as m, aR as p, aS as A, aT as R, aU as I, aV as V, aW as _, aX as P, aY as C, aZ as T, a_ as O, a$ as N, b0 as D, b1 as L } from "../generated-BJfQ-EBO.js";
2
- import { encodeAbiParameters as y, zeroAddress as t, zeroHash as k } from "viem";
3
- import { E as v } from "../deployments-De8_J7SS.js";
4
- import { DeployableTarget as E } from "../Deployable/DeployableTarget.js";
1
+ import { T as n, aQ as g, aR as w, aS as m, aT as p, aU as A, aV as M, aW as R, aX as V, aY as _, aZ as P, a_ as C, a$ as T, b0 as O, b1 as k, b2 as v, b3 as x } from "../generated-CINzoGbl.js";
2
+ import { encodeAbiParameters as y, zeroAddress as t, zeroHash as D } from "viem";
3
+ import { E as L } from "../deployments-CH4Xmkbv.js";
4
+ import { DeployableTarget as q } from "../Deployable/DeployableTarget.js";
5
5
  import { prepareClaimPayload as o, StrategyType as c } from "../claiming.js";
6
- import { RegistryType as q } from "../utils.js";
7
- const x = "0x6080604052348015600e575f80fd5b5060156019565b607c565b63409feecd198054600181161560365763f92ee8a95f526004601cfd5b6001600160401b03808260011c146077578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b612149806100895f395ff3fe608060405260043610610243575f3560e01c806354d1f13d11610131578063c884ef83116100ac578063ec87621c1161007c578063f2fde38b11610062578063f2fde38b14610677578063fe9fbb801461068a578063fee81cf4146106a9575f80fd5b8063ec87621c14610650578063f04e283e14610664575f80fd5b8063c884ef83146105cf578063db09da12146105fd578063dcc213611461061c578063dcc59b6f1461063b575f80fd5b8063a4d66daf11610101578063b30906d4116100e7578063b30906d414610572578063bb1757cf14610591578063be4994f8146105b0575f80fd5b8063a4d66daf14610537578063a8c62e761461054c575f80fd5b806354d1f13d146104fb578063715018a61461050357806375b238fc1461050b5780638da5cb5b1461051f575f80fd5b80632de94807116101c1578063439fab91116101915780634a4ee7b1116101775780634a4ee7b1146104875780634e7165a21461049a578063514e62fc146104c6575f80fd5b8063439fab911461041f578063474f5a441461043e575f80fd5b80632de948071461035f57806330db555f1461039057806338d52e0f146103af5780634359d28a14610400575f80fd5b80631cd64df411610216578063228cb733116101fc578063228cb73314610309578063256929621461031d57806328d6183b14610325575f80fd5b80631cd64df4146102c05780632275aea9146102f5575f80fd5b806301ffc9a71461024757806307621eca1461027b578063183a4f6e146102985780631c10893f146102ad575b5f80fd5b348015610252575f80fd5b506102666102613660046119ee565b6106da565b60405190151581526020015b60405180910390f35b348015610286575f80fd5b505f545b604051908152602001610272565b6102ab6102a6366004611a2d565b610735565b005b6102ab6102bb366004611a6c565b610742565b3480156102cb575f80fd5b506102666102da366004611a6c565b638b78c6d8600c9081525f9290925260209091205481161490565b348015610300575f80fd5b506102ab610758565b348015610314575f80fd5b5061028a5f5481565b6102ab6108d7565b348015610330575f80fd5b506040517f7cc1d5bb000000000000000000000000000000000000000000000000000000008152602001610272565b34801561036a575f80fd5b5061028a610379366004611a94565b638b78c6d8600c9081525f91909152602090205490565b34801561039b575f80fd5b506102ab6103aa366004611a2d565b610924565b3480156103ba575f80fd5b506004546103db9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610272565b34801561040b575f80fd5b506102ab61041a366004611af5565b610a83565b34801561042a575f80fd5b506102ab610439366004611b9f565b610b7d565b348015610449575f80fd5b5061045d610458366004611b9f565b610e4a565b6040805192835273ffffffffffffffffffffffffffffffffffffffff909116602083015201610272565b6102ab610495366004611a6c565b61104d565b3480156104a5575f80fd5b506104b96104b4366004611b9f565b61105f565b6040516102729190611c0c565b3480156104d1575f80fd5b506102666104e0366004611a6c565b638b78c6d8600c9081525f9290925260209091205416151590565b6102ab61112f565b6102ab611168565b348015610516575f80fd5b5061028a600281565b34801561052a575f80fd5b50638b78c6d819546103db565b348015610542575f80fd5b5061028a60065481565b348015610557575f80fd5b506002546105659060ff1681565b6040516102729190611c5f565b34801561057d575f80fd5b506103db61058c366004611a2d565b61117b565b34801561059c575f80fd5b506102666105ab366004611c6d565b6111b0565b3480156105bb575f80fd5b506102ab6105ca366004611af5565b611421565b3480156105da575f80fd5b506102666105e9366004611a94565b60016020525f908152604090205460ff1681565b348015610608575f80fd5b50610266610617366004611c6d565b6114bf565b348015610627575f80fd5b506102ab610636366004611af5565b6114d1565b348015610646575f80fd5b5061028a60055481565b34801561065b575f80fd5b5061028a600181565b6102ab610672366004611a94565b61156f565b6102ab610685366004611a94565b6115a9565b348015610695575f80fd5b506102666106a4366004611a94565b6115cf565b3480156106b4575f80fd5b5061028a6106c3366004611a94565b63389a75e1600c9081525f91909152602090205490565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7cc1d5bb00000000000000000000000000000000000000000000000000000000148061072f575061072f8261162e565b92915050565b61073f3382611683565b50565b61074a61168e565b61075482826116a8565b5050565b6001610763816116b4565b600160025460ff16600181111561077c5761077c611c1e565b146107b3576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f604051806020016040528042446107cb9190611ce9565b905260038054602083208084529293505f926107e79190611d29565b815481106107f7576107f7611d3c565b5f918252602082200154905460045473ffffffffffffffffffffffffffffffffffffffff928316935061082d92169083906116d8565b6004545f546040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606093841b811660208301529284901b9092166034830152604882015273ffffffffffffffffffffffffffffffffffffffff8216907f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d39060680160408051601f19818403018152908290526108ca91611c0c565b60405180910390a2505050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b600161092f8161172b565b815f03610968576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60045461098d9073ffffffffffffffffffffffffffffffffffffffff1633308561175c565b600160025460ff1660018111156109a6576109a6611c1e565b036109dd576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f546109e99083611d29565b15610a20576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8054610a2d9084611d69565b90508060065f828254610a409190611ce9565b909155505060408051338152602081018590527fa64c2da41decbd538f8629e54c8fa0b7362c9102b691386a0fb6a1797454e9c6910160405180910390a1505050565b6002610a8e8161172b565b838214610ac7576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610b75575f848483818110610ae457610ae4611d3c565b9050602002016020810190610af99190611d7c565b9050801515600103610b3b57610b36878784818110610b1a57610b1a611d3c565b9050602002016020810190610b2f9190611a94565b60016116a8565b610b6c565b610b6c878784818110610b5057610b50611d3c565b9050602002016020810190610b659190611a94565b6001611683565b50600101610ac9565b505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011328054600382558015610bce5760018160011c14303b10610bc55763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f610bdc83850185611e22565b905080604001515f1480610bf257506060810151155b15610c29576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f600182602001516001811115610c4257610c42611c1e565b03610c51578160400151610c65565b81606001518260400151610c659190611ea7565b82519091505f90610c8c9073ffffffffffffffffffffffffffffffffffffffff16306117be565b905081811015610cf65782516040517f5c54305e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015260248101829052604481018390526064015b60405180910390fd5b8251600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790556020830151600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660018381811115610d7a57610d7a611c1e565b021790555060408301515f556060830151600655610d97336117f1565b610da683608001516001611839565b825f015173ffffffffffffffffffffffffffffffffffffffff167fe83379cf1b79044fa1d0063e68012349f4f5fb730e6a875bdc9d463747ecd0858460200151856040015186606001518760800151604051610e059493929190611ebe565b60405180910390a25050508015610e45576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f806001610e578161172b565b5f610e6485870187611efd565b90505f8160200151806020019051810190610e7f9190611fd4565b9050600160025460ff166001811115610e9a57610e9a611c1e565b03610f11575f5481141580610eb057505f600554115b15610f08573382604051602001610ec79190611feb565b60408051601f19818403018152908290527f4139d81d000000000000000000000000000000000000000000000000000000008252610ced9291600401612025565b5f600655610f56565b5f54610f1d9082611d29565b15610f34573382604051602001610ec79190611feb565b5f54610f409082611d69565b60065f828254610f509190612053565b90915550505b8151600454610f7e9173ffffffffffffffffffffffffffffffffffffffff90911690836116d8565b81516004546040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606092831b811660208301529183901b90911660348201526048810183905273ffffffffffffffffffffffffffffffffffffffff909116907f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d39060680160408051601f198184030181529082905261101e91611c0c565b60405180910390a260045490945073ffffffffffffffffffffffffffffffffffffffff16925050509250929050565b61105561168e565b6107548282611683565b60605f61106e83850185611e22565b90505f60018260200151600181111561108957611089611c1e565b036110985781604001516110ac565b816060015182604001516110ac9190611ea7565b6040805160808101825260018152845173ffffffffffffffffffffffffffffffffffffffff16602080830191909152308284015282518082018452849052825180820185905283518082038301815290840184526060830152915192935061111692909101612066565b6040516020818303038152906040529250505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b61117061168e565b6111795f61187a565b565b6003818154811061118a575f80fd5b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b5f6111b961168e565b6111c2846118c4565b6111f8576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60025460ff16600181111561121057611210611c1e565b036113375760058054905f611224836120dc565b909155505073ffffffffffffffffffffffffffffffffffffffff8085165f908152600160208190526040822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690911790555460045461128a92169086906116d8565b6004545f546040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606093841b811660208301529287901b9092166034830152604882015273ffffffffffffffffffffffffffffffffffffffff8516907f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d39060680160408051601f198184030181529082905261132791611c0c565b60405180910390a250600161141a565b60058054905f611346836120dc565b909155505073ffffffffffffffffffffffffffffffffffffffff84165f81815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560038054928301815583527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055517ff0abe0f5c6f02112a9a4332e7b091bf49040ffddeedb73785a9b9a0a3ca7f1539190a25060015b9392505050565b600261142c8161172b565b838214611465576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610b75576114b786868381811061148457611484611d3c565b90506020020160208101906114999190611a94565b8585848181106114ab576114ab611d3c565b905060200201356116a8565b600101611467565b5f6114c9846118c4565b949350505050565b60026114dc8161172b565b838214611515576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610b755761156786868381811061153457611534611d3c565b90506020020160208101906115499190611a94565b85858481811061155b5761155b611d3c565b90506020020135611683565b600101611517565b61157761168e565b63389a75e1600c52805f526020600c20805442111561159d57636f5e88185f526004601cfd5b5f905561073f8161187a565b6115b161168e565b8060601b6115c657637448fbae5f526004601cfd5b61073f8161187a565b5f8173ffffffffffffffffffffffffffffffffffffffff166115f4638b78c6d8195490565b73ffffffffffffffffffffffffffffffffffffffff16148061072f5750638b78c6d8600c9081525f8390526020902054600316151561072f565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fa921670500000000000000000000000000000000000000000000000000000000148061072f575061072f82611901565b61075482825f611997565b638b78c6d819543314611179576382b429005f526004601cfd5b61075482826001611997565b638b78c6d8600c52335f52806020600c20541661073f576382b429005f526004601cfd5b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f51141661172157803d853b151710611721576390b8ec185f526004601cfd5b505f603452505050565b638b78c6d81954331461073f57638b78c6d8600c52335f52806020600c20541661073f576382b429005f526004601cfd5b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af18060015f5114166117b057803d873b1517106117b057637939f4245f526004601cfd5b505f60605260405250505050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b73ffffffffffffffffffffffffffffffffffffffff16638b78c6d819819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b638b78c6d819805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001602052604081205460ff1615801561072f57506006546005541092915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f6ab67a0d00000000000000000000000000000000000000000000000000000000148061072f57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000083161461072f565b638b78c6d8600c52825f526020600c208054838117836119b8575080841681185b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f602082840312156119fe575f80fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461141a575f80fd5b5f60208284031215611a3d575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611a67575f80fd5b919050565b5f8060408385031215611a7d575f80fd5b611a8683611a44565b946020939093013593505050565b5f60208284031215611aa4575f80fd5b61141a82611a44565b5f8083601f840112611abd575f80fd5b50813567ffffffffffffffff811115611ad4575f80fd5b6020830191508360208260051b8501011115611aee575f80fd5b9250929050565b5f805f8060408587031215611b08575f80fd5b843567ffffffffffffffff811115611b1e575f80fd5b611b2a87828801611aad565b909550935050602085013567ffffffffffffffff811115611b49575f80fd5b611b5587828801611aad565b95989497509550505050565b5f8083601f840112611b71575f80fd5b50813567ffffffffffffffff811115611b88575f80fd5b602083019150836020828501011115611aee575f80fd5b5f8060208385031215611bb0575f80fd5b823567ffffffffffffffff811115611bc6575f80fd5b611bd285828601611b61565b90969095509350505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61141a6020830184611bde565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60028110611c5b57611c5b611c1e565b9052565b6020810161072f8284611c4b565b5f805f60408486031215611c7f575f80fd5b611c8884611a44565b9250602084013567ffffffffffffffff811115611ca3575f80fd5b611caf86828701611b61565b9497909650939450505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561072f5761072f611cbc565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82611d3757611d37611cfc565b500690565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82611d7757611d77611cfc565b500490565b5f60208284031215611d8c575f80fd5b8135801515811461141a575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff81118282101715611deb57611deb611d9b565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611e1a57611e1a611d9b565b604052919050565b5f60a0828403128015611e33575f80fd5b5060405160a0810167ffffffffffffffff81118282101715611e5757611e57611d9b565b604052611e6383611a44565b8152602083013560028110611e76575f80fd5b60208201526040838101359082015260608084013590820152611e9b60808401611a44565b60808201529392505050565b808202811582820484141761072f5761072f611cbc565b60808101611ecc8287611c4b565b84602083015283604083015273ffffffffffffffffffffffffffffffffffffffff8316606083015295945050505050565b5f60208284031215611f0d575f80fd5b813567ffffffffffffffff811115611f23575f80fd5b820160408185031215611f34575f80fd5b611f3c611dc8565b611f4582611a44565b8152602082013567ffffffffffffffff811115611f60575f80fd5b80830192505084601f830112611f74575f80fd5b813567ffffffffffffffff811115611f8e57611f8e611d9b565b611fa16020601f19601f84011601611df1565b818152866020838601011115611fb5575f80fd5b816020850160208301375f602092820183015290820152949350505050565b5f60208284031215611fe4575f80fd5b5051919050565b6020815273ffffffffffffffffffffffffffffffffffffffff82511660208201525f60208301516040808401526114c96060840182611bde565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201525f6114c96040830184611bde565b8181038181111561072f5761072f611cbc565b602081525f82516003811061207d5761207d611c1e565b8060208401525073ffffffffffffffffffffffffffffffffffffffff602084015116604083015273ffffffffffffffffffffffffffffffffffffffff604084015116606083015260608301516080808401526114c960a0840182611bde565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361210c5761210c611cbc565b506001019056fea26469706673582212209def68a22e935c7af91e946bb2187abd14944a4cd3b455abbdb234120eea61b564736f6c634300081a0033", s = class s extends E {
6
+ import { RegistryType as z } from "../utils.js";
7
+ const B = "0x6080604052348015600e575f80fd5b5060156019565b607c565b63409feecd198054600181161560365763f92ee8a95f526004601cfd5b6001600160401b03808260011c146077578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b612149806100895f395ff3fe608060405260043610610243575f3560e01c806354d1f13d11610131578063c884ef83116100ac578063ec87621c1161007c578063f2fde38b11610062578063f2fde38b14610677578063fe9fbb801461068a578063fee81cf4146106a9575f80fd5b8063ec87621c14610650578063f04e283e14610664575f80fd5b8063c884ef83146105cf578063db09da12146105fd578063dcc213611461061c578063dcc59b6f1461063b575f80fd5b8063a4d66daf11610101578063b30906d4116100e7578063b30906d414610572578063bb1757cf14610591578063be4994f8146105b0575f80fd5b8063a4d66daf14610537578063a8c62e761461054c575f80fd5b806354d1f13d146104fb578063715018a61461050357806375b238fc1461050b5780638da5cb5b1461051f575f80fd5b80632de94807116101c1578063439fab91116101915780634a4ee7b1116101775780634a4ee7b1146104875780634e7165a21461049a578063514e62fc146104c6575f80fd5b8063439fab911461041f578063474f5a441461043e575f80fd5b80632de948071461035f57806330db555f1461039057806338d52e0f146103af5780634359d28a14610400575f80fd5b80631cd64df411610216578063228cb733116101fc578063228cb73314610309578063256929621461031d57806328d6183b14610325575f80fd5b80631cd64df4146102c05780632275aea9146102f5575f80fd5b806301ffc9a71461024757806307621eca1461027b578063183a4f6e146102985780631c10893f146102ad575b5f80fd5b348015610252575f80fd5b506102666102613660046119ee565b6106da565b60405190151581526020015b60405180910390f35b348015610286575f80fd5b505f545b604051908152602001610272565b6102ab6102a6366004611a2d565b610735565b005b6102ab6102bb366004611a6c565b610742565b3480156102cb575f80fd5b506102666102da366004611a6c565b638b78c6d8600c9081525f9290925260209091205481161490565b348015610300575f80fd5b506102ab610758565b348015610314575f80fd5b5061028a5f5481565b6102ab6108d7565b348015610330575f80fd5b506040517f7cc1d5bb000000000000000000000000000000000000000000000000000000008152602001610272565b34801561036a575f80fd5b5061028a610379366004611a94565b638b78c6d8600c9081525f91909152602090205490565b34801561039b575f80fd5b506102ab6103aa366004611a2d565b610924565b3480156103ba575f80fd5b506004546103db9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610272565b34801561040b575f80fd5b506102ab61041a366004611af5565b610a83565b34801561042a575f80fd5b506102ab610439366004611b9f565b610b7d565b348015610449575f80fd5b5061045d610458366004611b9f565b610e4a565b6040805192835273ffffffffffffffffffffffffffffffffffffffff909116602083015201610272565b6102ab610495366004611a6c565b61104d565b3480156104a5575f80fd5b506104b96104b4366004611b9f565b61105f565b6040516102729190611c0c565b3480156104d1575f80fd5b506102666104e0366004611a6c565b638b78c6d8600c9081525f9290925260209091205416151590565b6102ab61112f565b6102ab611168565b348015610516575f80fd5b5061028a600281565b34801561052a575f80fd5b50638b78c6d819546103db565b348015610542575f80fd5b5061028a60065481565b348015610557575f80fd5b506002546105659060ff1681565b6040516102729190611c5f565b34801561057d575f80fd5b506103db61058c366004611a2d565b61117b565b34801561059c575f80fd5b506102666105ab366004611c6d565b6111b0565b3480156105bb575f80fd5b506102ab6105ca366004611af5565b611421565b3480156105da575f80fd5b506102666105e9366004611a94565b60016020525f908152604090205460ff1681565b348015610608575f80fd5b50610266610617366004611c6d565b6114bf565b348015610627575f80fd5b506102ab610636366004611af5565b6114d1565b348015610646575f80fd5b5061028a60055481565b34801561065b575f80fd5b5061028a600181565b6102ab610672366004611a94565b61156f565b6102ab610685366004611a94565b6115a9565b348015610695575f80fd5b506102666106a4366004611a94565b6115cf565b3480156106b4575f80fd5b5061028a6106c3366004611a94565b63389a75e1600c9081525f91909152602090205490565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7cc1d5bb00000000000000000000000000000000000000000000000000000000148061072f575061072f8261162e565b92915050565b61073f3382611683565b50565b61074a61168e565b61075482826116a8565b5050565b6001610763816116b4565b600160025460ff16600181111561077c5761077c611c1e565b146107b3576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f604051806020016040528042446107cb9190611ce9565b905260038054602083208084529293505f926107e79190611d29565b815481106107f7576107f7611d3c565b5f918252602082200154905460045473ffffffffffffffffffffffffffffffffffffffff928316935061082d92169083906116d8565b6004545f546040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606093841b811660208301529284901b9092166034830152604882015273ffffffffffffffffffffffffffffffffffffffff8216907f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d39060680160408051601f19818403018152908290526108ca91611c0c565b60405180910390a2505050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b600161092f8161172b565b815f03610968576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60045461098d9073ffffffffffffffffffffffffffffffffffffffff1633308561175c565b600160025460ff1660018111156109a6576109a6611c1e565b036109dd576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f546109e99083611d29565b15610a20576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8054610a2d9084611d69565b90508060065f828254610a409190611ce9565b909155505060408051338152602081018590527fa64c2da41decbd538f8629e54c8fa0b7362c9102b691386a0fb6a1797454e9c6910160405180910390a1505050565b6002610a8e8161172b565b838214610ac7576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610b75575f848483818110610ae457610ae4611d3c565b9050602002016020810190610af99190611d7c565b9050801515600103610b3b57610b36878784818110610b1a57610b1a611d3c565b9050602002016020810190610b2f9190611a94565b60016116a8565b610b6c565b610b6c878784818110610b5057610b50611d3c565b9050602002016020810190610b659190611a94565b6001611683565b50600101610ac9565b505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011328054600382558015610bce5760018160011c14303b10610bc55763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f610bdc83850185611e22565b905080604001515f1480610bf257506060810151155b15610c29576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f600182602001516001811115610c4257610c42611c1e565b03610c51578160400151610c65565b81606001518260400151610c659190611ea7565b82519091505f90610c8c9073ffffffffffffffffffffffffffffffffffffffff16306117be565b905081811015610cf65782516040517f5c54305e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015260248101829052604481018390526064015b60405180910390fd5b8251600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790556020830151600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660018381811115610d7a57610d7a611c1e565b021790555060408301515f556060830151600655610d97336117f1565b610da683608001516001611839565b825f015173ffffffffffffffffffffffffffffffffffffffff167fe83379cf1b79044fa1d0063e68012349f4f5fb730e6a875bdc9d463747ecd0858460200151856040015186606001518760800151604051610e059493929190611ebe565b60405180910390a25050508015610e45576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f806001610e578161172b565b5f610e6485870187611efd565b90505f8160200151806020019051810190610e7f9190611fd4565b9050600160025460ff166001811115610e9a57610e9a611c1e565b03610f11575f5481141580610eb057505f600554115b15610f08573382604051602001610ec79190611feb565b60408051601f19818403018152908290527f4139d81d000000000000000000000000000000000000000000000000000000008252610ced9291600401612025565b5f600655610f56565b5f54610f1d9082611d29565b15610f34573382604051602001610ec79190611feb565b5f54610f409082611d69565b60065f828254610f509190612053565b90915550505b8151600454610f7e9173ffffffffffffffffffffffffffffffffffffffff90911690836116d8565b81516004546040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606092831b811660208301529183901b90911660348201526048810183905273ffffffffffffffffffffffffffffffffffffffff909116907f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d39060680160408051601f198184030181529082905261101e91611c0c565b60405180910390a260045490945073ffffffffffffffffffffffffffffffffffffffff16925050509250929050565b61105561168e565b6107548282611683565b60605f61106e83850185611e22565b90505f60018260200151600181111561108957611089611c1e565b036110985781604001516110ac565b816060015182604001516110ac9190611ea7565b6040805160808101825260018152845173ffffffffffffffffffffffffffffffffffffffff16602080830191909152308284015282518082018452849052825180820185905283518082038301815290840184526060830152915192935061111692909101612066565b6040516020818303038152906040529250505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b61117061168e565b6111795f61187a565b565b6003818154811061118a575f80fd5b5f9182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b5f6111b961168e565b6111c2846118c4565b6111f8576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60025460ff16600181111561121057611210611c1e565b036113375760058054905f611224836120dc565b909155505073ffffffffffffffffffffffffffffffffffffffff8085165f908152600160208190526040822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690911790555460045461128a92169086906116d8565b6004545f546040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606093841b811660208301529287901b9092166034830152604882015273ffffffffffffffffffffffffffffffffffffffff8516907f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d39060680160408051601f198184030181529082905261132791611c0c565b60405180910390a250600161141a565b60058054905f611346836120dc565b909155505073ffffffffffffffffffffffffffffffffffffffff84165f81815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168317905560038054928301815583527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055517ff0abe0f5c6f02112a9a4332e7b091bf49040ffddeedb73785a9b9a0a3ca7f1539190a25060015b9392505050565b600261142c8161172b565b838214611465576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610b75576114b786868381811061148457611484611d3c565b90506020020160208101906114999190611a94565b8585848181106114ab576114ab611d3c565b905060200201356116a8565b600101611467565b5f6114c9846118c4565b949350505050565b60026114dc8161172b565b838214611515576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610b755761156786868381811061153457611534611d3c565b90506020020160208101906115499190611a94565b85858481811061155b5761155b611d3c565b90506020020135611683565b600101611517565b61157761168e565b63389a75e1600c52805f526020600c20805442111561159d57636f5e88185f526004601cfd5b5f905561073f8161187a565b6115b161168e565b8060601b6115c657637448fbae5f526004601cfd5b61073f8161187a565b5f8173ffffffffffffffffffffffffffffffffffffffff166115f4638b78c6d8195490565b73ffffffffffffffffffffffffffffffffffffffff16148061072f5750638b78c6d8600c9081525f8390526020902054600316151561072f565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fa921670500000000000000000000000000000000000000000000000000000000148061072f575061072f82611901565b61075482825f611997565b638b78c6d819543314611179576382b429005f526004601cfd5b61075482826001611997565b638b78c6d8600c52335f52806020600c20541661073f576382b429005f526004601cfd5b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f51141661172157803d853b151710611721576390b8ec185f526004601cfd5b505f603452505050565b638b78c6d81954331461073f57638b78c6d8600c52335f52806020600c20541661073f576382b429005f526004601cfd5b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af18060015f5114166117b057803d873b1517106117b057637939f4245f526004601cfd5b505f60605260405250505050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b73ffffffffffffffffffffffffffffffffffffffff16638b78c6d819819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b638b78c6d819805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001602052604081205460ff1615801561072f57506006546005541092915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f6ab67a0d00000000000000000000000000000000000000000000000000000000148061072f57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000083161461072f565b638b78c6d8600c52825f526020600c208054838117836119b8575080841681185b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f602082840312156119fe575f80fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461141a575f80fd5b5f60208284031215611a3d575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611a67575f80fd5b919050565b5f8060408385031215611a7d575f80fd5b611a8683611a44565b946020939093013593505050565b5f60208284031215611aa4575f80fd5b61141a82611a44565b5f8083601f840112611abd575f80fd5b50813567ffffffffffffffff811115611ad4575f80fd5b6020830191508360208260051b8501011115611aee575f80fd5b9250929050565b5f805f8060408587031215611b08575f80fd5b843567ffffffffffffffff811115611b1e575f80fd5b611b2a87828801611aad565b909550935050602085013567ffffffffffffffff811115611b49575f80fd5b611b5587828801611aad565b95989497509550505050565b5f8083601f840112611b71575f80fd5b50813567ffffffffffffffff811115611b88575f80fd5b602083019150836020828501011115611aee575f80fd5b5f8060208385031215611bb0575f80fd5b823567ffffffffffffffff811115611bc6575f80fd5b611bd285828601611b61565b90969095509350505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61141a6020830184611bde565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60028110611c5b57611c5b611c1e565b9052565b6020810161072f8284611c4b565b5f805f60408486031215611c7f575f80fd5b611c8884611a44565b9250602084013567ffffffffffffffff811115611ca3575f80fd5b611caf86828701611b61565b9497909650939450505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561072f5761072f611cbc565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82611d3757611d37611cfc565b500690565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82611d7757611d77611cfc565b500490565b5f60208284031215611d8c575f80fd5b8135801515811461141a575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff81118282101715611deb57611deb611d9b565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611e1a57611e1a611d9b565b604052919050565b5f60a0828403128015611e33575f80fd5b5060405160a0810167ffffffffffffffff81118282101715611e5757611e57611d9b565b604052611e6383611a44565b8152602083013560028110611e76575f80fd5b60208201526040838101359082015260608084013590820152611e9b60808401611a44565b60808201529392505050565b808202811582820484141761072f5761072f611cbc565b60808101611ecc8287611c4b565b84602083015283604083015273ffffffffffffffffffffffffffffffffffffffff8316606083015295945050505050565b5f60208284031215611f0d575f80fd5b813567ffffffffffffffff811115611f23575f80fd5b820160408185031215611f34575f80fd5b611f3c611dc8565b611f4582611a44565b8152602082013567ffffffffffffffff811115611f60575f80fd5b80830192505084601f830112611f74575f80fd5b813567ffffffffffffffff811115611f8e57611f8e611d9b565b611fa16020601f19601f84011601611df1565b818152866020838601011115611fb5575f80fd5b816020850160208301375f602092820183015290820152949350505050565b5f60208284031215611fe4575f80fd5b5051919050565b6020815273ffffffffffffffffffffffffffffffffffffffff82511660208201525f60208301516040808401526114c96060840182611bde565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201525f6114c96040830184611bde565b8181038181111561072f5761072f611cbc565b602081525f82516003811061207d5761207d611c1e565b8060208401525073ffffffffffffffffffffffffffffffffffffffff602084015116604083015273ffffffffffffffffffffffffffffffffffffffff604084015116606083015260608301516080808401526114c960a0840182611bde565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361210c5761210c611cbc565b506001019056fea26469706673582212209def68a22e935c7af91e946bb2187abd14944a4cd3b455abbdb234120eea61b564736f6c634300081a0033", s = class s extends q {
8
8
  constructor() {
9
9
  super(...arguments), this.abi = n;
10
10
  }
@@ -97,7 +97,7 @@ const x = "0x6080604052348015600e575f80fd5b5060156019565b607c565b63409feecd19805
97
97
  * @returns {Promise<StrategyType>}
98
98
  */
99
99
  strategy(f) {
100
- return R(this._config, {
100
+ return M(this._config, {
101
101
  address: this.assertValidAddress(),
102
102
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
103
103
  ...f
@@ -112,7 +112,7 @@ const x = "0x6080604052348015600e575f80fd5b5060156019565b607c565b63409feecd19805
112
112
  * @returns {Promise<bigint>}
113
113
  */
114
114
  async reward(f) {
115
- return await I(this._config, {
115
+ return await R(this._config, {
116
116
  address: this.assertValidAddress(),
117
117
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
118
118
  ...f
@@ -228,7 +228,7 @@ const x = "0x6080604052348015600e575f80fd5b5060156019565b607c565b63409feecd19805
228
228
  * @returns {Promise<boolean>} = True if the incentive is claimable based on the data payload
229
229
  */
230
230
  async isClaimable(f, b) {
231
- return await N(this._config, {
231
+ return await k(this._config, {
232
232
  address: this.assertValidAddress(),
233
233
  args: [f.target, f.data],
234
234
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
@@ -255,7 +255,7 @@ const x = "0x6080604052348015600e575f80fd5b5060156019565b607c565b63409feecd19805
255
255
  * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
256
256
  */
257
257
  async drawRaffleRaw(f) {
258
- const { request: b, result: a } = await D(
258
+ const { request: b, result: a } = await v(
259
259
  this._config,
260
260
  {
261
261
  address: this.assertValidAddress(),
@@ -264,7 +264,7 @@ const x = "0x6080604052348015600e575f80fd5b5060156019565b607c565b63409feecd19805
264
264
  ...f
265
265
  }
266
266
  );
267
- return { hash: await L(this._config, b), result: a };
267
+ return { hash: await x(this._config, b), result: a };
268
268
  }
269
269
  /**
270
270
  * Get the maximum amount that can be claimed by this incentive. Useful when used in conjunction with `BoostCore.calculateProtocolFee`
@@ -326,7 +326,7 @@ const x = "0x6080604052348015600e575f80fd5b5060156019565b607c565b63409feecd19805
326
326
  );
327
327
  return {
328
328
  abi: n,
329
- bytecode: x,
329
+ bytecode: B,
330
330
  args: [h(a)],
331
331
  ...this.optionallyAttachAccount(d.account)
332
332
  };
@@ -373,13 +373,13 @@ const x = "0x6080604052348015600e575f80fd5b5060156019565b607c565b63409feecd19805
373
373
  * @description This function returns `zeroHash` because ERC20Incentive doesn't use any specific claim data.
374
374
  */
375
375
  buildClaimData() {
376
- return k;
376
+ return D;
377
377
  }
378
378
  };
379
379
  s.bases = {
380
380
  31337: void 0,
381
- ...v
382
- }, s.registryType = q.INCENTIVE;
381
+ ...L
382
+ }, s.registryType = z.INCENTIVE;
383
383
  let l = s;
384
384
  function h({
385
385
  asset: u,
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../generated-C_JEoLDO.cjs"),m=require("@wagmi/core"),s=require("viem"),R=require("../deployments-C17nvui-.cjs"),p=require("../Actions/EventAction.cjs"),v=require("../Deployable/DeployableTarget.cjs"),w=require("../claiming.cjs"),r=require("../errors.cjs"),A=require("../utils.cjs"),D="0x6080604052348015600e575f80fd5b5060156019565b607c565b63409feecd198054600181161560365763f92ee8a95f526004601cfd5b6001600160401b03808260011c146077578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b6121b3806100895f395ff3fe6080604052600436106102ab575f3560e01c8063715018a611610165578063c884ef83116100c6578063ec87621c1161007c578063f2fde38b11610062578063f2fde38b1461078d578063fe9fbb80146107a0578063fee81cf4146107bf575f80fd5b8063ec87621c14610766578063f04e283e1461077a575f80fd5b8063db09da12116100ac578063db09da1214610713578063dcc2136114610732578063dcc59b6f14610751575f80fd5b8063c884ef83146106d0578063d54ad2a1146106fe575f80fd5b8063a4d66daf1161011b578063bb1757cf11610101578063bb1757cf1461067e578063be4994f81461069d578063c213f3f9146106bc575f80fd5b8063a4d66daf14610648578063a871ced21461065d575f80fd5b8063775486871161014b57806377548687146105b45780638da5cb5b146106065780639214fa4d1461061e575f80fd5b8063715018a61461059857806375b238fc146105a0575f80fd5b806330db555f1161020f5780634a4ee7b1116101c5578063514e62fc116101ab578063514e62fc14610546578063547d18641461057b57806354d1f13d14610590575f80fd5b80634a4ee7b1146105075780634e7165a21461051a575f80fd5b80634359d28a116101f55780634359d28a14610480578063439fab911461049f578063474f5a44146104be575f80fd5b806330db555f1461043557806338d52e0f14610454575f80fd5b80631f1cb62b11610264578063256929621161024a57806325692962146103c257806328d6183b146103ca5780632de9480714610404575f80fd5b80631f1cb62b1461035d578063228cb733146103ae575f80fd5b8063183a4f6e11610294578063183a4f6e146103005780631c10893f146103155780631cd64df414610328575f80fd5b806301ffc9a7146102af57806307621eca146102e3575b5f80fd5b3480156102ba575f80fd5b506102ce6102c93660046118fe565b6107f0565b60405190151581526020015b60405180910390f35b3480156102ee575f80fd5b505f545b6040519081526020016102da565b61031361030e366004611944565b61084b565b005b610313610323366004611983565b610858565b348015610333575f80fd5b506102ce610342366004611983565b638b78c6d8600c9081525f9290925260209091205481161490565b348015610368575f80fd5b50600a546103899073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102da565b3480156103b9575f80fd5b506102f25f5481565b61031361086e565b3480156103d5575f80fd5b506040517ff60c99c90000000000000000000000000000000000000000000000000000000081526020016102da565b34801561040f575f80fd5b506102f261041e3660046119ab565b638b78c6d8600c9081525f91909152602090205490565b348015610440575f80fd5b5061031361044f366004611944565b6108bb565b34801561045f575f80fd5b506006546103899073ffffffffffffffffffffffffffffffffffffffff1681565b34801561048b575f80fd5b5061031361049a366004611a0c565b610977565b3480156104aa575f80fd5b506103136104b9366004611ab6565b610a71565b3480156104c9575f80fd5b506104dd6104d8366004611ab6565b610da1565b6040805192835273ffffffffffffffffffffffffffffffffffffffff9091166020830152016102da565b610313610515366004611983565b610f03565b348015610525575f80fd5b50610539610534366004611ab6565b610f15565b6040516102da9190611b41565b348015610551575f80fd5b506102ce610560366004611983565b638b78c6d8600c9081525f9290925260209091205416151590565b348015610586575f80fd5b506102f260025481565b610313610faf565b610313610fe8565b3480156105ab575f80fd5b506102f2600281565b3480156105bf575f80fd5b506003546004546005546105f69260ff908116929190811690610100900473ffffffffffffffffffffffffffffffffffffffff1684565b6040516102da9493929190611b94565b348015610611575f80fd5b50638b78c6d81954610389565b348015610629575f80fd5b50600a5473ffffffffffffffffffffffffffffffffffffffff16610389565b348015610653575f80fd5b506102f260085481565b348015610668575f80fd5b50610671610ffb565b6040516102da9190611c1c565b348015610689575f80fd5b506102ce610698366004611c2a565b611095565b3480156106a8575f80fd5b506103136106b7366004611a0c565b6112c2565b3480156106c7575f80fd5b50600b546102f2565b3480156106db575f80fd5b506102ce6106ea3660046119ab565b60016020525f908152604090205460ff1681565b348015610709575f80fd5b506102f260095481565b34801561071e575f80fd5b506102ce61072d366004611c2a565b611360565b34801561073d575f80fd5b5061031361074c366004611a0c565b6113d3565b34801561075c575f80fd5b506102f260075481565b348015610771575f80fd5b506102f2600181565b6103136107883660046119ab565b611471565b61031361079b3660046119ab565b6114ab565b3480156107ab575f80fd5b506102ce6107ba3660046119ab565b6114d1565b3480156107ca575f80fd5b506102f26107d93660046119ab565b63389a75e1600c9081525f91909152602090205490565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167ff60c99c9000000000000000000000000000000000000000000000000000000001480610845575061084582611530565b92915050565b6108553382611585565b50565b610860611590565b61086a82826115aa565b5050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60016108c6816115b6565b815f036108ff576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006546109249073ffffffffffffffffffffffffffffffffffffffff163330856115e7565b8160085f8282546109359190611ca6565b909155505060408051338152602081018490527fa64c2da41decbd538f8629e54c8fa0b7362c9102b691386a0fb6a1797454e9c6910160405180910390a15050565b6002610982816115b6565b8382146109bb576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610a69575f8484838181106109d8576109d8611cb9565b90506020020160208101906109ed9190611ce6565b9050801515600103610a2f57610a2a878784818110610a0e57610a0e611cb9565b9050602002016020810190610a2391906119ab565b60016115aa565b610a60565b610a60878784818110610a4457610a44611cb9565b9050602002016020810190610a5991906119ab565b6001611585565b506001016109bd565b505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011328054600382558015610ac25760018160011c14303b10610ab95763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f610ad083850185611da1565b905080606001515f03610b0f576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081015181515f90610b389073ffffffffffffffffffffffffffffffffffffffff1630611649565b905081811015610ba15782516040517f5c54305e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018290526044810183905260640160405180910390fd5b60c083015183516006805473ffffffffffffffffffffffffffffffffffffffff9283167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216179091556020860151600a805491909316911617905560408401515f55606084015160085560a0840151600b5580516003805483929082907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660018381811115610c5557610c55611b53565b02179055506020820151600182015560408201516002909101805460609093015173ffffffffffffffffffffffffffffffffffffffff16610100027fffffffffffffffffffffff00000000000000000000000000000000000000000090931660ff90921691909117919091179055610ccc3361167c565b610cdb846080015160016116c4565b836020015173ffffffffffffffffffffffffffffffffffffffff16845f015173ffffffffffffffffffffffffffffffffffffffff167fdc505a50c6f2c816d981a377c8177e2604d8302821a502bc9f742e0748f338428660400151876060015188608001518960a001518a60c00151604051610d5b959493929190611e9a565b60405180910390a3505050508015610d9c576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f806001610dae816115b6565b5f610dbb85870187611f8c565b90505f8160200151806020019051810190610dd69190612009565b90508060085f828254610de99190612020565b90915550508151600654610e169173ffffffffffffffffffffffffffffffffffffffff9091169083611705565b81516006546040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606092831b811660208301529183901b90911660348201526048810183905273ffffffffffffffffffffffffffffffffffffffff909116907f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d390606801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610ed491611b41565b60405180910390a260065490945073ffffffffffffffffffffffffffffffffffffffff16925050509250929050565b610f0b611590565b61086a8282611585565b60605f610f2483850185611da1565b6060818101516040805160808101825260018152845173ffffffffffffffffffffffffffffffffffffffff16602080830191909152308284015282518082018452849052825180820185905283518082038301815290840184529482019490945290519394509092610f969201612033565b6040516020818303038152906040529250505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610ff0611590565b610ff95f611758565b565b604080516080810182525f808252602082018190529181018290526060810191909152604080516080810190915260038054829060ff16600181111561104357611043611b53565b600181111561105457611054611b53565b81526001820154602082015260029091015460ff81166040830152610100900473ffffffffffffffffffffffffffffffffffffffff16606090910152919050565b5f61109e611590565b5f6110ab838501856120b1565b90505f81602001518060200190518101906110c69190612009565b90505f80545f036110d85750806110fb565b670de0b6b3a7640000825f546110ee919061212e565b6110f89190612145565b90505b600b541580159061110d5750600b5481115b156111175750600b545b611120816117a2565b611156576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600854816009546111679190611ca6565b111561119f576040517f360e42e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060095f8282546111b09190611ca6565b92505081905550600160075f8282546111c99190611ca6565b90915550506006546111f29073ffffffffffffffffffffffffffffffffffffffff168883611705565b6006546040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606092831b811660208301529189901b90911660348201526048810182905273ffffffffffffffffffffffffffffffffffffffff8816907f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d390606801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526112ad91611b41565b60405180910390a25060019695505050505050565b60026112cd816115b6565b838214611306576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610a695761135886868381811061132557611325611cb9565b905060200201602081019061133a91906119ab565b85858481811061134c5761134c611cb9565b905060200201356115aa565b600101611308565b5f808061136f848601866120b1565b90505f816020015180602001905181019061138a9190612009565b90505f545f0361139c578092506113bf565b670de0b6b3a7640000815f546113b2919061212e565b6113bc9190612145565b92505b6113c8836117a2565b979650505050505050565b60026113de816115b6565b838214611417576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610a695761146986868381811061143657611436611cb9565b905060200201602081019061144b91906119ab565b85858481811061145d5761145d611cb9565b90506020020135611585565b600101611419565b611479611590565b63389a75e1600c52805f526020600c20805442111561149f57636f5e88185f526004601cfd5b5f905561085581611758565b6114b3611590565b8060601b6114c857637448fbae5f526004601cfd5b61085581611758565b5f8173ffffffffffffffffffffffffffffffffffffffff166114f6638b78c6d8195490565b73ffffffffffffffffffffffffffffffffffffffff1614806108455750638b78c6d8600c9081525f83905260209020546003161515610845565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f565863380000000000000000000000000000000000000000000000000000000014806108455750610845826117bc565b61086a82825f611811565b638b78c6d819543314610ff9576382b429005f526004601cfd5b61086a82826001611811565b638b78c6d81954331461085557638b78c6d8600c52335f52806020600c205416610855576382b429005f526004601cfd5b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af18060015f51141661163b57803d873b15171061163b57637939f4245f526004601cfd5b505f60605260405250505050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b73ffffffffffffffffffffffffffffffffffffffff16638b78c6d819819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f51141661174e57803d853b15171061174e576390b8ec185f526004601cfd5b505f603452505050565b638b78c6d819805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b5f600854826009546117b49190611ca6565b111592915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fa9216705000000000000000000000000000000000000000000000000000000001480610845575061084582611868565b638b78c6d8600c52825f526020600c20805483811783611832575080841681185b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f6ab67a0d00000000000000000000000000000000000000000000000000000000148061084557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610845565b5f6020828403121561190e575f80fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461193d575f80fd5b9392505050565b5f60208284031215611954575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461197e575f80fd5b919050565b5f8060408385031215611994575f80fd5b61199d8361195b565b946020939093013593505050565b5f602082840312156119bb575f80fd5b61193d8261195b565b5f8083601f8401126119d4575f80fd5b50813567ffffffffffffffff8111156119eb575f80fd5b6020830191508360208260051b8501011115611a05575f80fd5b9250929050565b5f805f8060408587031215611a1f575f80fd5b843567ffffffffffffffff811115611a35575f80fd5b611a41878288016119c4565b909550935050602085013567ffffffffffffffff811115611a60575f80fd5b611a6c878288016119c4565b95989497509550505050565b5f8083601f840112611a88575f80fd5b50813567ffffffffffffffff811115611a9f575f80fd5b602083019150836020828501011115611a05575f80fd5b5f8060208385031215611ac7575f80fd5b823567ffffffffffffffff811115611add575f80fd5b611ae985828601611a78565b90969095509350505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f61193d6020830184611af5565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60028110611b9057611b90611b53565b9052565b60808101611ba28287611b80565b84602083015260ff8416604083015273ffffffffffffffffffffffffffffffffffffffff8316606083015295945050505050565b611be1828251611b80565b6020810151602083015260ff604082015116604083015273ffffffffffffffffffffffffffffffffffffffff60608201511660608301525050565b608081016108458284611bd6565b5f805f60408486031215611c3c575f80fd5b611c458461195b565b9250602084013567ffffffffffffffff811115611c60575f80fd5b611c6c86828701611a78565b9497909650939450505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561084557610845611c79565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215611cf6575f80fd5b8135801515811461193d575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160e0810167ffffffffffffffff81118282101715611d5557611d55611d05565b60405290565b6040516080810167ffffffffffffffff81118282101715611d5557611d55611d05565b6040805190810167ffffffffffffffff81118282101715611d5557611d55611d05565b5f81830361014081128015611db4575f80fd5b50611dbd611d32565b611dc68461195b565b8152611dd46020850161195b565b60208201526040848101359082015260608085013590820152611df96080850161195b565b60808281019190915260a085810135908301527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4083011215611e39575f80fd5b611e41611d5b565b915060c084013560028110611e54575f80fd5b825260e0840135602083015261010084013560ff81168114611e74575f80fd5b6040830152611e86610120850161195b565b606083015260c08101919091529392505050565b8581526020810185905273ffffffffffffffffffffffffffffffffffffffff84166040820152606081018390526101008101611ed96080830184611bd6565b9695505050505050565b5f82601f830112611ef2575f80fd5b813567ffffffffffffffff811115611f0c57611f0c611d05565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810167ffffffffffffffff81118282101715611f5957611f59611d05565b604052818152838201602001851015611f70575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611f9c575f80fd5b813567ffffffffffffffff811115611fb2575f80fd5b820160408185031215611fc3575f80fd5b611fcb611d7e565b611fd48261195b565b8152602082013567ffffffffffffffff811115611fef575f80fd5b611ffb86828501611ee3565b602083015250949350505050565b5f60208284031215612019575f80fd5b5051919050565b8181038181111561084557610845611c79565b602081525f82516003811061204a5761204a611b53565b8060208401525073ffffffffffffffffffffffffffffffffffffffff602084015116604083015273ffffffffffffffffffffffffffffffffffffffff604084015116606083015260608301516080808401526120a960a0840182611af5565b949350505050565b5f602082840312156120c1575f80fd5b813567ffffffffffffffff8111156120d7575f80fd5b8201604081850312156120e8575f80fd5b6120f0611d7e565b813567ffffffffffffffff811115612106575f80fd5b61211286828501611ee3565b825250602082013567ffffffffffffffff811115611fef575f80fd5b808202811582820484141761084557610845611c79565b5f82612178577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea264697066735822122098c803dd4f42edf25288bd3c5b3e7bf9935c3d848f118a09f85d1ebc21194d1164736f6c634300081a0033",g=class g extends v.DeployableTarget{constructor(){super(...arguments),this.abi=c.y}async owner(f){return await c.ZR(this._config,{address:this.assertValidAddress(),args:[],...f})}async currentReward(f){return await c.FR(this._config,{address:this.assertValidAddress(),args:[],...f})}async getMaxReward(f){return await c.SR(this._config,{...f,address:this.assertValidAddress()})}async getIncentiveScalar({chainId:f,hash:e,knownSignatures:b},d){var t;const a=await this.getIncentiveCriteria(d);if(a.criteriaType===p.SignatureType.EVENT){const i=await m.getTransactionReceipt(this._config,{chainId:f,hash:e});if(a.fieldIndex===A.CheatCodes.GAS_REBATE_INCENTIVE)return i.gasUsed*i.effectiveGasPrice+(i.blobGasUsed??0n)*(i.blobGasPrice??0n);const o=i.logs;if(o.length===0)throw new r.NoMatchingLogsError(`No logs found for event signature ${a.signature}`);try{const l=b[a.signature],n=s.parseEventLogs({abi:[l],logs:o});if(n==null||n.length===0)throw new r.NoMatchingLogsError(`No logs found for event signature ${a.signature}`);const h=((t=n[0])==null?void 0:t.args)[a.fieldIndex];if(h===void 0)throw new r.DecodedArgsError(`Decoded argument at index ${a.fieldIndex} is undefined`);return BigInt(h)}catch(l){throw new r.DecodedArgsError(`Failed to decode event log for signature ${a.signature}: ${l.message}`)}}else if(a.criteriaType===p.SignatureType.FUNC){const i=await m.getTransaction(this._config,{chainId:f,hash:e});try{const o=b[a.signature],n=s.decodeFunctionData({abi:[o],data:i.input}).args[a.fieldIndex];if(n==null)throw new r.DecodedArgsError(`Decoded argument at index ${a.fieldIndex} is undefined`);return BigInt(n)}catch(o){throw new r.DecodedArgsError(`Failed to decode function data for signature ${a.signature}: ${o.message}`)}}else throw new r.InvalidCriteriaTypeError(`Invalid criteria type ${a.criteriaType}`)}async claims(f){return await c.xR(this._config,{address:this.assertValidAddress(),args:[],...f})}async totalClaimed(f){return await c.eC(this._config,{address:this.assertValidAddress(),args:[],...f})}async claimed(f,e){return await c.HR(this._config,{address:this.assertValidAddress(),args:[f],...e})}async asset(f){return await c.BR(this._config,{address:this.assertValidAddress(),...f})}async peg(f){return await c.$R(this._config,{address:this.assertValidAddress(),...f})}async reward(f){return await c.JR(this._config,{address:this.assertValidAddress(),...f})}async limit(f){return await c.UR(this._config,{address:this.assertValidAddress(),...f})}async claim(f,e){return await this.awaitResult(this.claimRaw(f,e))}async claimRaw(f,e){const{request:b,result:d}=await c.wC(this._config,{address:this.assertValidAddress(),args:[w.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...e});return{hash:await c.aC(this._config,b),result:d}}async clawback(f,e){return await this.awaitResult(this.clawbackRaw(f,e))}async clawbackRaw(f,e){const{request:b,result:d}=await c.gC(this._config,{address:this.assertValidAddress(),args:[w.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...e});return{hash:await c.iC(this._config,b),result:d}}async isClaimable(f,e){return await c.GR(this._config,{address:this.assertValidAddress(),args:[f.target,f.data],...e})}async getPeg(f){return await c._R(this._config,{address:this.assertValidAddress(),args:[],...f})}async getTotalBudget(f){return await this.limit(f)}async canBeClaimed(f){return await this.getRemainingClaimPotential(f)>0n}async getRemainingClaimPotential(f){const[e,b]=await Promise.all([this.totalClaimed(f),this.limit(f)]);return b-e}async getIncentiveCriteria(f){try{return await c.PR(this._config,{...f,address:this.assertValidAddress()})}catch(e){throw new r.IncentiveCriteriaNotFoundError(e)}}async getTopupPayload(f){var e,b,d,a,t;return y({asset:await this.asset()??s.zeroAddress,peg:((e=this.payload)==null?void 0:e.peg)??s.zeroAddress,reward:((b=this.payload)==null?void 0:b.reward)??0n,limit:f,maxReward:((d=this.payload)==null?void 0:d.maxReward)??0n,manager:((a=this.payload)==null?void 0:a.manager)??s.zeroAddress,criteria:((t=this.payload)==null?void 0:t.criteria)??{criteriaType:0,signature:s.zeroHash,fieldIndex:0,targetContract:s.zeroAddress}})}buildParameters(f,e){const[b,d]=this.validateDeploymentConfig(f,e);return{abi:c.y,bytecode:D,args:[y(b)],...this.optionallyAttachAccount(d.account)}}buildClawbackData(f){return s.encodeAbiParameters([{type:"uint256"}],[f])}buildClaimData(f){return s.encodeAbiParameters([{type:"uint256",name:"signedAmount"}],[f])}async decodeClaimData(f){const e=s.decodeAbiParameters([{type:"tuple",name:"BoostClaimData",components:[{type:"bytes",name:"validatorData"},{type:"bytes",name:"incentiveData"}]}],f),b=s.decodeAbiParameters([{type:"uint256"}],e[0].incentiveData)[0];let d=b;const[a,t]=await Promise.all([this.reward(),this.getMaxReward()]);return a===0n||(d=a*b/s.parseEther("1"),t!==0n&&d>t&&(d=t)),d}decodeClaimDataWithRewardDetails(f,e,b){const d=s.decodeAbiParameters([{type:"tuple",name:"BoostClaimData",components:[{type:"bytes",name:"validatorData"},{type:"bytes",name:"incentiveData"}]}],f),a=s.decodeAbiParameters([{type:"uint256"}],d[0].incentiveData)[0];let t=a;return e===0n||(t=e*a/s.parseEther("1"),b!==0n&&t>b&&(t=b)),t}};g.bases={31337:void 0,...R.ERC20PeggedVariableCriteriaIncentive},g.registryType=A.RegistryType.INCENTIVE;let u=g;function y({asset:C,peg:f,reward:e,limit:b,maxReward:d=0n,manager:a=s.zeroAddress,criteria:t}){return s.encodeAbiParameters([{type:"tuple",name:"initPayloadExtended",components:[{type:"address",name:"asset"},{type:"address",name:"peg"},{type:"uint256",name:"reward"},{type:"uint256",name:"limit"},{type:"address",name:"manager"},{type:"uint256",name:"maxReward"},{type:"tuple",name:"criteria",components:[{type:"uint8",name:"criteriaType"},{type:"bytes32",name:"signature"},{type:"uint8",name:"fieldIndex"},{type:"address",name:"targetContract"}]}]}],[{asset:C,peg:f,reward:e,limit:b,manager:a,maxReward:d,criteria:{criteriaType:t.criteriaType,signature:t.signature,fieldIndex:t.fieldIndex,targetContract:t.targetContract}}])}exports.erc20PeggedVariableCriteriaIncentiveAbi=c.y;exports.ERC20PeggedVariableCriteriaIncentive=u;exports.prepareERC20PeggedVariableCriteriaIncentivePayload=y;
2
+ //# sourceMappingURL=ERC20PeggedVariableCriteriaIncentive.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ERC20PeggedVariableCriteriaIncentive.cjs","sources":["../../src/Incentives/ERC20PeggedVariableCriteriaIncentive.ts"],"sourcesContent":["import {\n erc20PeggedVariableCriteriaIncentiveAbi,\n readErc20PeggedVariableCriteriaIncentiveAsset,\n readErc20PeggedVariableCriteriaIncentiveClaimed,\n readErc20PeggedVariableCriteriaIncentiveClaims,\n readErc20PeggedVariableCriteriaIncentiveCurrentReward,\n readErc20PeggedVariableCriteriaIncentiveGetIncentiveCriteria,\n readErc20PeggedVariableCriteriaIncentiveGetMaxReward,\n readErc20PeggedVariableCriteriaIncentiveGetPeg,\n readErc20PeggedVariableCriteriaIncentiveIsClaimable,\n readErc20PeggedVariableCriteriaIncentiveLimit,\n readErc20PeggedVariableCriteriaIncentiveOwner,\n readErc20PeggedVariableCriteriaIncentivePeg,\n readErc20PeggedVariableCriteriaIncentiveReward,\n readErc20PeggedVariableCriteriaIncentiveTotalClaimed,\n simulateErc20PeggedVariableCriteriaIncentiveClaim,\n simulateErc20PeggedVariableCriteriaIncentiveClawback,\n writeErc20PeggedVariableCriteriaIncentiveClaim,\n writeErc20PeggedVariableCriteriaIncentiveClawback,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/incentives/ERC20PeggedVariableCriteriaIncentive.sol/ERC20PeggedVariableCriteriaIncentive.json';\nimport { getTransaction, getTransactionReceipt } from '@wagmi/core';\nimport type { AbiEvent } from 'abitype';\nimport {\n type AbiFunction,\n type Address,\n type ContractEventName,\n type Hex,\n decodeAbiParameters,\n decodeFunctionData,\n encodeAbiParameters,\n parseEther,\n parseEventLogs,\n zeroAddress,\n zeroHash,\n} from 'viem';\nimport { ERC20PeggedVariableCriteriaIncentive as ERC20PeggedVariableCriteriaIncentiveBases } from '../../dist/deployments.json';\nimport { SignatureType } from '../Actions/EventAction';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport { DeployableTarget } from '../Deployable/DeployableTarget';\nimport { type ClaimPayload, prepareClaimPayload } from '../claiming';\nimport {\n DecodedArgsError,\n IncentiveCriteriaNotFoundError,\n InvalidCriteriaTypeError,\n NoMatchingLogsError,\n} from '../errors';\nimport {\n CheatCodes,\n type GenericLog,\n type ReadParams,\n RegistryType,\n type WriteParams,\n} from '../utils';\nimport type {\n GetIncentiveScalarParams,\n IncentiveCriteria,\n} from './ERC20VariableCriteriaIncentive';\n\nexport { erc20PeggedVariableCriteriaIncentiveAbi };\n\n/**\n * The object representation of a `Erc20PeggedVariableCriteriaIncentive.InitPayload`\n *\n * @export\n * @deprecated Please use only v2 implementations\n * @interface Erc20PeggedVariableCriteriaIncentive\n * @typedef {Erc20PeggedVariableCriteriaIncentive}\n */\nexport interface ERC20PeggedVariableCriteriaIncentivePayload {\n /**\n * The address of the incentivized asset.\n *\n * @type {Address}\n */\n asset: Address;\n /**\n * The peg to normalize to.\n *\n * @type {Address}\n */\n peg: Address;\n /**\n * The amount of the asset to distribute.\n *\n * @type {bigint}\n */\n reward: bigint;\n /**\n * Total spend for the incentive.\n *\n * @type {bigint}\n */\n limit: bigint;\n /**\n * Maximum reward each claim is elligible for.\n *\n * @type {bigint}\n */\n maxReward: bigint;\n /**\n * (Optional) The address of the entity that can managed the incentive.\n *\n * @type {Address}\n * @optional\n */\n manager?: Address;\n /**\n * The criteria for the incentive that determines how the reward is distributed.\n *\n * @type {IncentiveCriteria}\n */\n criteria: IncentiveCriteria;\n}\n\n/**\n * A generic `viem.Log` event with support for `Erc20PeggedVariableCriteriaIncentive` event types.\n *\n * @export\n * @typedef {Erc20PeggedVariableCriteriaIncentiveLog}\n * @template {ContractEventName<typeof erc20PeggedVariableCriteriaIncentiveAbi>} [event=ContractEventName<\n * typeof erc20PeggedVariableCriteriaIncentiveAbi\n * >]\n */\nexport type Erc20PeggedVariableCriteriaIncentiveLog<\n event extends ContractEventName<\n typeof erc20PeggedVariableCriteriaIncentiveAbi\n > = ContractEventName<typeof erc20PeggedVariableCriteriaIncentiveAbi>,\n> = GenericLog<typeof erc20PeggedVariableCriteriaIncentiveAbi, event>;\n\n/**\n * A simple ERC20 incentive implementation that allows claiming of tokens\n *\n * @export\n * @deprecated Please use only v2 implementations\n * @class Erc20PeggedVariableCriteriaIncentive\n * @typedef {ERC20PeggedVariableCriteriaIncentive}\n * @extends {DeployableTarget<ERC20PeggedVariableCriteriaIncentive>}\n */\nexport class ERC20PeggedVariableCriteriaIncentive extends DeployableTarget<\n ERC20PeggedVariableCriteriaIncentivePayload,\n typeof erc20PeggedVariableCriteriaIncentiveAbi\n> {\n public override readonly abi = erc20PeggedVariableCriteriaIncentiveAbi;\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_ERC20_INCENTIVE_BASE,\n ...(ERC20PeggedVariableCriteriaIncentiveBases as Record<number, Address>),\n };\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {RegistryType}\n */\n public static override registryType: RegistryType = RegistryType.INCENTIVE;\n\n /**\n * The owner of the incentive\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<Address>}\n */\n public async owner(params?: ReadParams) {\n return await readErc20PeggedVariableCriteriaIncentiveOwner(this._config, {\n address: this.assertValidAddress(),\n args: [],\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 * Calculates the current reward based on the time since the last claim. The reward is calculated based on the time since the last claim, the available budget, and the reward parameters. It increases linearly over time in the absence of claims, with each hour adding `rewardBoost` to the current reward, up to the available budget. For example, if there is one claim in the first hour, then no claims for three hours, the claimable reward would be `initialReward - rewardDecay + (rewardBoost * 3)`\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - The current reward\n */\n public async currentReward(params?: ReadParams) {\n return await readErc20PeggedVariableCriteriaIncentiveCurrentReward(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [],\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 /**\n * Retrieves the maximum reward amount per claim.\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} The maximum reward amount per claim\n */\n public async getMaxReward(params?: ReadParams): Promise<bigint> {\n const maxReward =\n await readErc20PeggedVariableCriteriaIncentiveGetMaxReward(this._config, {\n ...params,\n address: this.assertValidAddress(),\n });\n\n return maxReward;\n }\n\n /**\n * Fetches the incentive scalar from a transaction hash\n *\n * @param {GetIncentiveScalarParams} params\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>}\n * @throws {InvalidCriteriaTypeError | NoMatchingLogsError | DecodedArgsError}\n */\n public async getIncentiveScalar(\n { chainId, hash, knownSignatures }: GetIncentiveScalarParams,\n params?: ReadParams,\n ): Promise<bigint> {\n const criteria = await this.getIncentiveCriteria(params);\n if (criteria.criteriaType === SignatureType.EVENT) {\n const transactionReceipt = await getTransactionReceipt(this._config, {\n chainId,\n hash,\n });\n if (criteria.fieldIndex === CheatCodes.GAS_REBATE_INCENTIVE) {\n const totalCost =\n transactionReceipt.gasUsed * transactionReceipt.effectiveGasPrice + // Normal gas cost\n (transactionReceipt.blobGasUsed ?? 0n) *\n (transactionReceipt.blobGasPrice ?? 0n); // Blob gas cost - account for potential undefined values\n return totalCost;\n }\n const logs = transactionReceipt.logs;\n\n if (logs.length === 0) {\n throw new NoMatchingLogsError(\n `No logs found for event signature ${criteria.signature}`,\n );\n }\n\n // Decode the event log\n try {\n // Decode function data\n const eventAbi = knownSignatures[criteria.signature] as AbiEvent;\n const decodedEvents = parseEventLogs({\n abi: [eventAbi],\n logs,\n });\n if (decodedEvents == undefined || decodedEvents.length === 0) {\n throw new NoMatchingLogsError(\n `No logs found for event signature ${criteria.signature}`,\n );\n }\n const scalarValue = (decodedEvents[0]?.args as string[])[\n criteria.fieldIndex\n ];\n\n if (scalarValue === undefined) {\n throw new DecodedArgsError(\n `Decoded argument at index ${criteria.fieldIndex} is undefined`,\n );\n }\n return BigInt(scalarValue);\n } catch (e) {\n throw new DecodedArgsError(\n `Failed to decode event log for signature ${criteria.signature}: ${(e as Error).message}`,\n );\n }\n } else if (criteria.criteriaType === SignatureType.FUNC) {\n // Fetch the transaction data\n const transaction = await getTransaction(this._config, {\n chainId,\n hash,\n });\n try {\n // Decode function data\n const func = knownSignatures[criteria.signature] as AbiFunction;\n const decodedFunction = decodeFunctionData({\n abi: [func],\n data: transaction.input,\n });\n const scalarValue = decodedFunction.args[criteria.fieldIndex] as string;\n if (scalarValue === undefined || scalarValue === null) {\n throw new DecodedArgsError(\n `Decoded argument at index ${criteria.fieldIndex} is undefined`,\n );\n }\n return BigInt(scalarValue);\n } catch (e) {\n throw new DecodedArgsError(\n `Failed to decode function data for signature ${criteria.signature}: ${(e as Error).message}`,\n );\n }\n } else {\n throw new InvalidCriteriaTypeError(\n `Invalid criteria type ${criteria.criteriaType}`,\n );\n }\n }\n\n /**\n * The number of claims that have been made\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>}\n */\n public async claims(params?: ReadParams) {\n return await readErc20PeggedVariableCriteriaIncentiveClaims(this._config, {\n address: this.assertValidAddress(),\n args: [],\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 * The total amount of rewards claimed\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>}\n */\n public async totalClaimed(params?: ReadParams) {\n return await readErc20PeggedVariableCriteriaIncentiveTotalClaimed(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [],\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 /**\n * A mapping of address to claim status\n *\n * @public\n * @async\n * @param {Address} address\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>}\n */\n public async claimed(address: Address, params?: ReadParams) {\n return await readErc20PeggedVariableCriteriaIncentiveClaimed(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 * The address of the ERC20-like token\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<Address>}\n */\n public async asset(params?: ReadParams) {\n return await readErc20PeggedVariableCriteriaIncentiveAsset(this._config, {\n address: this.assertValidAddress(),\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 * The address of the pegged ERC20-like token\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<Address>}\n */\n public async peg(params?: ReadParams) {\n return await readErc20PeggedVariableCriteriaIncentivePeg(this._config, {\n address: this.assertValidAddress(),\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 * The reward amount issued for each claim\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>}\n */\n public async reward(params?: ReadParams) {\n return await readErc20PeggedVariableCriteriaIncentiveReward(this._config, {\n address: this.assertValidAddress(),\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 * The limit (max possible rewards payout in reward token)\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>}\n */\n public async limit(params?: ReadParams) {\n return await readErc20PeggedVariableCriteriaIncentiveLimit(this._config, {\n address: this.assertValidAddress(),\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 * Claim the incentive\n *\n * @public\n * @async\n * @param {ClaimPayload} payload\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - Returns true if successfully claimed\n */\n protected async claim(payload: ClaimPayload, params?: WriteParams) {\n return await this.awaitResult(this.claimRaw(payload, params));\n }\n\n /**\n * Claim the incentive\n *\n * @public\n * @async\n * @param {ClaimPayload} payload\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - Returns true if successfully claimed\n */\n protected async claimRaw(payload: ClaimPayload, params?: WriteParams) {\n const { request, result } =\n await simulateErc20PeggedVariableCriteriaIncentiveClaim(this._config, {\n address: this.assertValidAddress(),\n args: [prepareClaimPayload(payload)],\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 writeErc20PeggedVariableCriteriaIncentiveClaim(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Clawback assets from the incentive\n *\n * @public\n * @async\n * @param {ClaimPayload} payload\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if the assets were successfully clawbacked\n */\n public async clawback(payload: ClaimPayload, params?: WriteParams) {\n return await this.awaitResult(this.clawbackRaw(payload, params));\n }\n\n /**\n * Clawback assets from the incentive\n *\n * @public\n * @async\n * @param {ClaimPayload} payload\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the assets were successfully clawbacked\n */\n public async clawbackRaw(payload: ClaimPayload, params?: WriteParams) {\n const { request, result } =\n await simulateErc20PeggedVariableCriteriaIncentiveClawback(this._config, {\n address: this.assertValidAddress(),\n args: [prepareClaimPayload(payload)],\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 writeErc20PeggedVariableCriteriaIncentiveClawback(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Check if an incentive is claimable.\n *\n * @public\n * @async\n * @param {ClaimPayload} payload\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} = True if the incentive is claimable based on the data payload\n */\n public async isClaimable(payload: ClaimPayload, params?: ReadParams) {\n return await readErc20PeggedVariableCriteriaIncentiveIsClaimable(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [payload.target, payload.data],\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 /**\n * read the peg token for the incentive.\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<Address>} = The address of the token the reward is pegged to\n */\n public async getPeg(params?: ReadParams) {\n return await readErc20PeggedVariableCriteriaIncentiveGetPeg(this._config, {\n address: this.assertValidAddress(),\n args: [],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Get the maximum amount that can be claimed by this incentive. Useful when used in conjunction with `BoostCore.calculateProtocolFee`\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} = Return a bigint representing that maximum amount that can be distributed by this incentive.\n */\n public async getTotalBudget(params?: ReadParams) {\n return await this.limit(params);\n }\n\n /**\n * Check if any claims remain by comparing the incentive's total claims against its limit. Does not take requesting user's elligibility into account.\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} - True if total claims is less than limit\n */\n public async canBeClaimed(params?: ReadParams) {\n return (await this.getRemainingClaimPotential(params)) > 0n;\n }\n\n /**\n * Check how many claims remain by comparing the incentive's total claims against its limit. Does not take requesting user's elligibility into account.\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - True if total claims is less than limit\n */\n public async getRemainingClaimPotential(params?: ReadParams) {\n const [totalClaimed, limit] = await Promise.all([\n this.totalClaimed(params),\n this.limit(params),\n ]);\n return limit - totalClaimed;\n }\n\n /**\n *Functions from the ERC20VariableIncentive contract\n */\n\n /**\n * Fetches the IncentiveCriteria struct from the contract\n *\n * @param {?ReadParams} [params]\n * @returns {Promise<IncentiveCriteria>} Incentive criteria structure\n * @throws {IncentiveCriteriaNotFoundError}\n */\n public async getIncentiveCriteria(\n params?: ReadParams,\n ): Promise<IncentiveCriteria> {\n try {\n const criteria =\n await readErc20PeggedVariableCriteriaIncentiveGetIncentiveCriteria(\n this._config,\n {\n ...params,\n address: this.assertValidAddress(),\n },\n );\n\n return criteria;\n } catch (e) {\n throw new IncentiveCriteriaNotFoundError(e as Error);\n }\n }\n\n /**\n * Generates a top-up payload for the ERC20PeggedIncentive contract by incrementing\n * the existing `limit` field by `netAmount`. The entire payload is then re-encoded\n * via `prepareERC20PeggedIncentivePayload(...)`.\n *\n * @public\n * @param {bigint} netAmount - The additional limit to add to this incentive.\n * @returns {Hex} The ABI-encoded payload with the updated `limit`.\n */\n public async getTopupPayload(netAmount: bigint): Promise<Hex> {\n return prepareERC20PeggedVariableCriteriaIncentivePayload({\n asset: (await this.asset()) ?? zeroAddress,\n peg: this.payload?.peg ?? zeroAddress,\n reward: this.payload?.reward ?? 0n,\n limit: netAmount,\n maxReward: this.payload?.maxReward ?? 0n,\n manager: this.payload?.manager ?? zeroAddress,\n criteria: this.payload?.criteria ?? {\n criteriaType: 0,\n signature: zeroHash,\n fieldIndex: 0,\n targetContract: zeroAddress,\n },\n });\n }\n\n /**\n * @inheritdoc\n *\n * @public\n * @param {?ERC20PeggedVariableCriteriaIncentivePayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: ERC20PeggedVariableCriteriaIncentivePayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [payload, options] = this.validateDeploymentConfig(\n _payload,\n _options,\n );\n return {\n abi: erc20PeggedVariableCriteriaIncentiveAbi,\n bytecode: bytecode as Hex,\n args: [prepareERC20PeggedVariableCriteriaIncentivePayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n\n /**\n * Encodes an amount to clawback from the incentive\n *\n * @public\n * @param {bigint} amount - How much of the asset to clawback\n * @returns {Hex} - Returns an encoded uint256\n */\n public buildClawbackData(amount: bigint) {\n return encodeAbiParameters([{ type: 'uint256' }], [amount]);\n }\n\n /**\n * Builds the claim data for the ERC20PeggedVariableCriteriaIncentivePayload.\n *\n * @public\n * @param {bigint} signedAmount\n * @returns {Hash} Returns the encoded claim data\n * @description This function returns the encoded claim data for the ERC20PeggedVariableCriteriaIncentivePayload.\n */\n public buildClaimData(signedAmount: bigint) {\n return encodeAbiParameters(\n [{ type: 'uint256', name: 'signedAmount' }],\n [signedAmount],\n );\n }\n\n /**\n * Decodes claim data for the ERC20PeggedVariableCriteriaIncentive, returning the claim amount.\n * Useful when deriving amount claimed from logs.\n *\n * @public\n * @param {Hex} claimData\n * @returns {Promise<bigint>} Returns the reward amount from a claim data payload\n */\n public async decodeClaimData(claimData: Hex) {\n const boostClaimData = decodeAbiParameters(\n [\n {\n type: 'tuple',\n name: 'BoostClaimData',\n components: [\n { type: 'bytes', name: 'validatorData' },\n { type: 'bytes', name: 'incentiveData' },\n ],\n },\n ],\n claimData,\n );\n const signedAmount = decodeAbiParameters(\n [{ type: 'uint256' }],\n boostClaimData[0].incentiveData,\n )[0];\n let claimAmount = signedAmount;\n const [reward, maxReward] = await Promise.all([\n this.reward(),\n this.getMaxReward(),\n ]);\n\n if (reward === 0n) {\n return claimAmount;\n } else {\n claimAmount = (reward * signedAmount) / parseEther('1');\n }\n\n if (maxReward !== 0n && claimAmount > maxReward) {\n claimAmount = maxReward;\n }\n\n return claimAmount;\n }\n\n /**\n * Decodes claim data for the ERC20PeggedVariableCriteriaIncentive, returning the claim amount.\n * Useful when deriving amount claimed from logs.\n * Use this function instead of `decodeClaimData` if you have reward details.\n *\n * @public\n * @param {Hex} claimData\n * @param {bigint} [reward]\n * @param {bigint} [maxReward]\n * @returns {BigInt} Returns the reward amount from a claim data payload\n */\n public decodeClaimDataWithRewardDetails(\n claimData: Hex,\n reward: bigint,\n maxReward: bigint,\n ) {\n const boostClaimData = decodeAbiParameters(\n [\n {\n type: 'tuple',\n name: 'BoostClaimData',\n components: [\n { type: 'bytes', name: 'validatorData' },\n { type: 'bytes', name: 'incentiveData' },\n ],\n },\n ],\n claimData,\n );\n const signedAmount = decodeAbiParameters(\n [{ type: 'uint256' }],\n boostClaimData[0].incentiveData,\n )[0];\n let claimAmount = signedAmount;\n\n if (reward === 0n) {\n return claimAmount;\n } else {\n claimAmount = (reward * signedAmount) / parseEther('1');\n }\n\n if (maxReward !== 0n && claimAmount > maxReward) {\n claimAmount = maxReward;\n }\n\n return claimAmount;\n }\n}\n\n/**\n * Given a {@link ERC20PeggedVariableCriteriaIncentivePayload}, properly encode a `ERC20PeggedVariableCriteriaIncentivePayload.InitPayload` for use with {@link ERC20PeggedVariableCriteriaIncentivePayload} initialization.\n *\n * @param {ERC20PeggedVariableCriteriaIncentivePayload} param0\n * @param {Address} param0.asset - The address of the incentivized asset.\n * @param {Address} param0.peg - The peg to normalize to.\n * @param {bigint} param0.reward - The amount of the asset to distribute.\n * @param {bigint} param0.limit - How many times can this incentive be claimed.\n * @param {Address} [param0.manager=zeroAddress] - The entity that can manage the incentive.\n * @param {IncentiveCriteria} param0.criteria - The incentive criteria for reward distribution.\n * @returns {Hex}\n */\nexport function prepareERC20PeggedVariableCriteriaIncentivePayload({\n asset,\n peg,\n reward,\n limit,\n maxReward = 0n,\n manager = zeroAddress,\n criteria,\n}: ERC20PeggedVariableCriteriaIncentivePayload) {\n return encodeAbiParameters(\n [\n {\n type: 'tuple',\n name: 'initPayloadExtended',\n components: [\n { type: 'address', name: 'asset' },\n { type: 'address', name: 'peg' },\n { type: 'uint256', name: 'reward' },\n { type: 'uint256', name: 'limit' },\n { type: 'address', name: 'manager' },\n { type: 'uint256', name: 'maxReward' },\n {\n type: 'tuple',\n name: 'criteria',\n components: [\n { type: 'uint8', name: 'criteriaType' },\n { type: 'bytes32', name: 'signature' },\n { type: 'uint8', name: 'fieldIndex' },\n { type: 'address', name: 'targetContract' },\n ],\n },\n ],\n },\n ],\n [\n {\n asset,\n peg,\n reward,\n limit,\n manager,\n maxReward,\n criteria: {\n criteriaType: criteria.criteriaType,\n signature: criteria.signature,\n fieldIndex: criteria.fieldIndex,\n targetContract: criteria.targetContract,\n },\n },\n ],\n );\n}\n"],"names":["_ERC20PeggedVariableCriteriaIncentive","DeployableTarget","erc20PeggedVariableCriteriaIncentiveAbi","params","readErc20PeggedVariableCriteriaIncentiveOwner","readErc20PeggedVariableCriteriaIncentiveCurrentReward","readErc20PeggedVariableCriteriaIncentiveGetMaxReward","chainId","hash","knownSignatures","criteria","SignatureType","transactionReceipt","getTransactionReceipt","CheatCodes","logs","NoMatchingLogsError","eventAbi","decodedEvents","parseEventLogs","scalarValue","_a","DecodedArgsError","e","transaction","getTransaction","func","decodeFunctionData","InvalidCriteriaTypeError","readErc20PeggedVariableCriteriaIncentiveClaims","readErc20PeggedVariableCriteriaIncentiveTotalClaimed","address","readErc20PeggedVariableCriteriaIncentiveClaimed","readErc20PeggedVariableCriteriaIncentiveAsset","readErc20PeggedVariableCriteriaIncentivePeg","readErc20PeggedVariableCriteriaIncentiveReward","readErc20PeggedVariableCriteriaIncentiveLimit","payload","request","result","simulateErc20PeggedVariableCriteriaIncentiveClaim","prepareClaimPayload","writeErc20PeggedVariableCriteriaIncentiveClaim","simulateErc20PeggedVariableCriteriaIncentiveClawback","writeErc20PeggedVariableCriteriaIncentiveClawback","readErc20PeggedVariableCriteriaIncentiveIsClaimable","readErc20PeggedVariableCriteriaIncentiveGetPeg","totalClaimed","limit","readErc20PeggedVariableCriteriaIncentiveGetIncentiveCriteria","IncentiveCriteriaNotFoundError","netAmount","prepareERC20PeggedVariableCriteriaIncentivePayload","zeroAddress","_b","_c","_d","_e","zeroHash","_payload","_options","options","bytecode","amount","encodeAbiParameters","signedAmount","claimData","boostClaimData","decodeAbiParameters","claimAmount","reward","maxReward","parseEther","ERC20PeggedVariableCriteriaIncentiveBases","RegistryType","ERC20PeggedVariableCriteriaIncentive","asset","peg","manager"],"mappings":"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"}