@boostxyz/sdk 2.0.0-alpha.28 → 2.0.0-alpha.30

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 (87) hide show
  1. package/dist/Actions/Action.cjs +1 -1
  2. package/dist/Actions/Action.js +2 -2
  3. package/dist/Actions/EventAction.cjs +1 -1
  4. package/dist/Actions/EventAction.cjs.map +1 -1
  5. package/dist/Actions/EventAction.d.ts +3 -1
  6. package/dist/Actions/EventAction.d.ts.map +1 -1
  7. package/dist/Actions/EventAction.js +158 -142
  8. package/dist/Actions/EventAction.js.map +1 -1
  9. package/dist/AllowLists/AllowList.cjs +1 -1
  10. package/dist/AllowLists/AllowList.js +3 -3
  11. package/dist/AllowLists/SimpleAllowList.cjs +1 -1
  12. package/dist/AllowLists/SimpleAllowList.js +6 -6
  13. package/dist/AllowLists/SimpleDenyList.cjs +1 -1
  14. package/dist/AllowLists/SimpleDenyList.js +3 -3
  15. package/dist/Auth/PassthroughAuth.cjs +1 -1
  16. package/dist/Auth/PassthroughAuth.js +1 -1
  17. package/dist/BoostCore.cjs +2 -2
  18. package/dist/BoostCore.cjs.map +1 -1
  19. package/dist/BoostCore.js +13 -13
  20. package/dist/BoostRegistry.cjs +1 -1
  21. package/dist/BoostRegistry.js +13 -13
  22. package/dist/Budgets/Budget.cjs +1 -1
  23. package/dist/Budgets/Budget.js +2 -2
  24. package/dist/Budgets/ManagedBudget.cjs +1 -1
  25. package/dist/Budgets/ManagedBudget.js +25 -25
  26. package/dist/Deployable/DeployableTarget.cjs +1 -1
  27. package/dist/Deployable/DeployableTarget.js +1 -1
  28. package/dist/Deployable/DeployableTargetWithRBAC.cjs +1 -1
  29. package/dist/Deployable/DeployableTargetWithRBAC.js +13 -13
  30. package/dist/Incentives/AllowListIncentive.cjs +1 -1
  31. package/dist/Incentives/AllowListIncentive.js +10 -10
  32. package/dist/Incentives/CGDAIncentive.cjs +1 -1
  33. package/dist/Incentives/CGDAIncentive.js +10 -10
  34. package/dist/Incentives/ERC20Incentive.cjs +1 -1
  35. package/dist/Incentives/ERC20Incentive.js +16 -16
  36. package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs +1 -1
  37. package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs.map +1 -1
  38. package/dist/Incentives/ERC20VariableCriteriaIncentive.d.ts +37 -1
  39. package/dist/Incentives/ERC20VariableCriteriaIncentive.d.ts.map +1 -1
  40. package/dist/Incentives/ERC20VariableCriteriaIncentive.js +69 -50
  41. package/dist/Incentives/ERC20VariableCriteriaIncentive.js.map +1 -1
  42. package/dist/Incentives/ERC20VariableIncentive.cjs +1 -1
  43. package/dist/Incentives/ERC20VariableIncentive.js +6 -6
  44. package/dist/Incentives/Incentive.cjs +1 -1
  45. package/dist/Incentives/Incentive.js +2 -2
  46. package/dist/Incentives/PointsIncentive.cjs +1 -1
  47. package/dist/Incentives/PointsIncentive.js +8 -8
  48. package/dist/{SimpleDenyList-DqM-Bczx.cjs → SimpleDenyList-DEOJMCvF.cjs} +2 -2
  49. package/dist/{SimpleDenyList-DqM-Bczx.cjs.map → SimpleDenyList-DEOJMCvF.cjs.map} +1 -1
  50. package/dist/{SimpleDenyList-7BojkCuF.js → SimpleDenyList-Ddg3_VkW.js} +13 -13
  51. package/dist/{SimpleDenyList-7BojkCuF.js.map → SimpleDenyList-Ddg3_VkW.js.map} +1 -1
  52. package/dist/Validators/LimitedSignerValidator.cjs +1 -1
  53. package/dist/Validators/LimitedSignerValidator.js +2 -2
  54. package/dist/Validators/SignerValidator.cjs +1 -1
  55. package/dist/Validators/SignerValidator.js +5 -5
  56. package/dist/Validators/Validator.cjs +1 -1
  57. package/dist/Validators/Validator.js +2 -2
  58. package/dist/{componentInterfaces-BJ_XfE8j.cjs → componentInterfaces-BQw7DH-m.cjs} +2 -2
  59. package/dist/componentInterfaces-BQw7DH-m.cjs.map +1 -0
  60. package/dist/componentInterfaces-C0vuWQlh.js +15 -0
  61. package/dist/componentInterfaces-C0vuWQlh.js.map +1 -0
  62. package/dist/deployments-DAmmY7Gs.cjs +2 -0
  63. package/dist/deployments-DAmmY7Gs.cjs.map +1 -0
  64. package/dist/deployments-ZfLmhZat.js +56 -0
  65. package/dist/deployments-ZfLmhZat.js.map +1 -0
  66. package/dist/deployments.json +28 -28
  67. package/dist/{generated-Dz_g2mFT.js → generated-BwSyxdrd.js} +231 -213
  68. package/dist/generated-BwSyxdrd.js.map +1 -0
  69. package/dist/{generated-BSUMIFi5.cjs → generated-CtPS8IvR.cjs} +3 -3
  70. package/dist/generated-CtPS8IvR.cjs.map +1 -0
  71. package/dist/index.cjs +1 -1
  72. package/dist/index.js +16 -16
  73. package/package.json +2 -2
  74. package/src/Actions/EventAction.test.ts +1 -1
  75. package/src/Actions/EventAction.ts +40 -15
  76. package/src/BoostCore.test.ts +7 -7
  77. package/src/Incentives/ERC20VariableCriteriaIncentive.test.ts +3 -0
  78. package/src/Incentives/ERC20VariableCriteriaIncentive.ts +36 -0
  79. package/dist/componentInterfaces-BJ_XfE8j.cjs.map +0 -1
  80. package/dist/componentInterfaces-DBJaFhsl.js +0 -15
  81. package/dist/componentInterfaces-DBJaFhsl.js.map +0 -1
  82. package/dist/deployments-Ccx1MtoK.js +0 -56
  83. package/dist/deployments-Ccx1MtoK.js.map +0 -1
  84. package/dist/deployments-DF_6-7hH.cjs +0 -2
  85. package/dist/deployments-DF_6-7hH.cjs.map +0 -1
  86. package/dist/generated-BSUMIFi5.cjs.map +0 -1
  87. package/dist/generated-Dz_g2mFT.js.map +0 -1
@@ -1,12 +1,12 @@
1
- import { b as l, aM as I } from "../generated-Dz_g2mFT.js";
2
- import { getTransactionReceipt as v, getTransaction as w } from "@wagmi/core";
3
- import { parseEventLogs as E, decodeFunctionData as C, encodeAbiParameters as T, zeroHash as x, zeroAddress as A } from "viem";
4
- import { b as N } from "../deployments-Ccx1MtoK.js";
1
+ import { c as l, aM as w, aN as I } from "../generated-BwSyxdrd.js";
2
+ import { getTransactionReceipt as v, getTransaction as E } from "@wagmi/core";
3
+ import { parseEventLogs as x, decodeFunctionData as C, encodeAbiParameters as T, zeroHash as A, zeroAddress as N } from "viem";
4
+ import { b as R } from "../deployments-ZfLmhZat.js";
5
5
  import { SignatureType as o } from "../Actions/EventAction.js";
6
- import { IncentiveCriteriaNotFoundError as $, NoMatchingLogsError as p, DecodedArgsError as r, InvalidCriteriaTypeError as V } from "../errors.js";
6
+ import { IncentiveCriteriaNotFoundError as V, NoMatchingLogsError as p, DecodedArgsError as i, InvalidCriteriaTypeError as $ } from "../errors.js";
7
7
  import { CheatCodes as y } from "../utils.js";
8
- import { ERC20VariableIncentive as F } from "./ERC20VariableIncentive.js";
9
- const P = "0x608060405273deaddeaddeaddeaddeaddeaddeaddeaddeaddead5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015610062575f80fd5b5061007161007660201b60201c565b61010b565b5f6100856100e260201b60201c565b90508054600181161561009f5763f92ee8a95f526004601cfd5b8160c01c808260011c146100dd578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b612b8a806101185f395ff3fe608060405260043610610203575f3560e01c8063715018a611610117578063d54ad2a11161009f578063ec87621c1161006e578063ec87621c14610707578063f04e283e14610731578063f2fde38b1461074d578063fe9fbb8014610769578063fee81cf4146107a557610203565b8063d54ad2a11461064f578063db09da1214610679578063dcc21361146106b5578063dcc59b6f146106dd57610203565b8063a4d66daf116100e6578063a4d66daf1461055b578063a871ced214610585578063bb1757cf146105af578063be4994f8146105eb578063c884ef831461061357610203565b8063715018a6146104d057806375b238fc146104da57806377548687146105045780638da5cb5b1461053157610203565b80632de948071161019a578063474f5a4411610169578063474f5a44146103f55780634a4ee7b1146104325780634e7165a21461044e578063514e62fc1461048a57806354d1f13d146104c657610203565b80632de948071461033f57806338d52e0f1461037b5780634359d28a146103a5578063439fab91146103cd57610203565b80631cd64df4116101d65780631cd64df4146102a5578063228cb733146102e1578063256929621461030b57806328d6183b1461031557610203565b806301ffc9a71461020757806307621eca14610243578063183a4f6e1461026d5780631c10893f14610289575b5f80fd5b348015610212575f80fd5b5061022d60048036038101906102289190611b36565b6107e1565b60405161023a9190611b7b565b60405180910390f35b34801561024e575f80fd5b5061025761085a565b6040516102649190611bac565b60405180910390f35b61028760048036038101906102829190611bef565b610863565b005b6102a3600480360381019061029e9190611c74565b610870565b005b3480156102b0575f80fd5b506102cb60048036038101906102c69190611c74565b610886565b6040516102d89190611b7b565b60405180910390f35b3480156102ec575f80fd5b506102f561089c565b6040516103029190611bac565b60405180910390f35b6103136108a2565b005b348015610320575f80fd5b506103296108f3565b6040516103369190611cc1565b60405180910390f35b34801561034a575f80fd5b5061036560048036038101906103609190611cda565b61091a565b6040516103729190611bac565b60405180910390f35b348015610386575f80fd5b5061038f610933565b60405161039c9190611d14565b60405180910390f35b3480156103b0575f80fd5b506103cb60048036038101906103c69190611de3565b610956565b005b3480156103d8575f80fd5b506103f360048036038101906103ee9190611eb6565b610a64565b005b348015610400575f80fd5b5061041b60048036038101906104169190611eb6565b610ccc565b604051610429929190611f01565b60405180910390f35b61044c60048036038101906104479190611c74565b610e30565b005b348015610459575f80fd5b50610474600480360381019061046f9190611eb6565b610e46565b6040516104819190611f98565b60405180910390f35b348015610495575f80fd5b506104b060048036038101906104ab9190611c74565b610f14565b6040516104bd9190611b7b565b60405180910390f35b6104ce610f2b565b005b6104d8610f64565b005b3480156104e5575f80fd5b506104ee610f77565b6040516104fb9190611bac565b60405180910390f35b34801561050f575f80fd5b50610518610f7c565b604051610528949392919061205e565b60405180910390f35b34801561053c575f80fd5b50610545610fd1565b6040516105529190611d14565b60405180910390f35b348015610566575f80fd5b5061056f610ff9565b60405161057c9190611bac565b60405180910390f35b348015610590575f80fd5b50610599610fff565b6040516105a69190612130565b60405180910390f35b3480156105ba575f80fd5b506105d560048036038101906105d09190612149565b6110ce565b6040516105e29190611b7b565b60405180910390f35b3480156105f6575f80fd5b50610611600480360381019061060c91906121fb565b6112c2565b005b34801561061e575f80fd5b5061063960048036038101906106349190611cda565b611378565b6040516106469190611b7b565b60405180910390f35b34801561065a575f80fd5b50610663611395565b6040516106709190611bac565b60405180910390f35b348015610684575f80fd5b5061069f600480360381019061069a9190612149565b61139b565b6040516106ac9190611b7b565b60405180910390f35b3480156106c0575f80fd5b506106db60048036038101906106d691906121fb565b6113ae565b005b3480156106e8575f80fd5b506106f1611464565b6040516106fe9190611bac565b60405180910390f35b348015610712575f80fd5b5061071b61146a565b6040516107289190611bac565b60405180910390f35b61074b60048036038101906107469190611cda565b61146f565b005b61076760048036038101906107629190611cda565b6114ad565b005b348015610774575f80fd5b5061078f600480360381019061078a9190611cda565b6114d6565b60405161079c9190611b7b565b60405180910390f35b3480156107b0575f80fd5b506107cb60048036038101906107c69190611cda565b611529565b6040516107d89190611bac565b60405180910390f35b5f7ff60c99c9000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610853575061085282611542565b5b9050919050565b5f600254905090565b61086d33826115bb565b50565b6108786115ca565b6108828282611601565b5050565b5f81826108928561091a565b1614905092915050565b60025481565b5f6108ab611611565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7ff60c99c900000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026109618161161b565b8282905085859050146109a0576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015610a5c575f8484838181106109c1576109c0612279565b5b90506020020160208101906109d691906122d0565b90506001151581151503610a1b57610a168787848181106109fa576109f9612279565b5b9050602002016020810190610a0f9190611cda565b6001611601565b610a4e565b610a4d878784818110610a3157610a30612279565b5b9050602002016020810190610a469190611cda565b60016115bb565b5b5080806001019150506109a2565b505050505050565b5f610a6d611650565b90508054600382558015610a9f5760018160011c14303b10610a965763f92ee8a95f526004601cfd5b818160ff1b1b91505b50610aa933611679565b5f8383810190610ab991906124dc565b90505f815f015190505f826020015190505f836040015190505f846060015190505f8203610b13576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610b3d308673ffffffffffffffffffffffffffffffffffffffff1661174f90919063ffffffff16565b905082811015610b8b57855f015181846040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401610b8293929190612507565b60405180910390fd5b845f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600281905550826004819055505f6005819055508160065f820151815f015f6101000a81548160ff02191690836001811115610c0a57610c09611fb8565b5b0217905550602082015181600101556040820151816002015f6101000a81548160ff021916908360ff16021790555060608201518160020160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050610c8c33611679565b5050505050508015610cc7576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f806001610cd981611782565b5f8585810190610ce99190612655565b90505f8160200151806020019051810190610d0491906126b0565b90508060045f828254610d179190612708565b92505081905550610d6b825f0151825f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117a99092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d35f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f015184604051602001610ddd939291906127a0565b604051602081830303815290604052604051610df99190611f98565b60405180910390a2805f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16945094505050509250929050565b610e386115ca565b610e4282826115bb565b5050565b60605f808484810190610e599190612817565b9250509150604051806080016040528060016002811115610e7d57610e7c611fb8565b5b81526020018373ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001604051806020016040528084815250604051602001610ed99190612890565b604051602081830303815290604052815250604051602001610efb9190612997565b6040516020818303038152906040529250505092915050565b5f8082610f208561091a565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610f6c6115ca565b610f755f6117f2565b565b600281565b6006805f015f9054906101000a900460ff1690806001015490806002015f9054906101000a900460ff16908060020160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60045481565b611007611a7e565b60066040518060800160405290815f82015f9054906101000a900460ff16600181111561103757611036611fb8565b5b600181111561104957611048611fb8565b5b815260200160018201548152602001600282015f9054906101000a900460ff1660ff1660ff1681526020016002820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050905090565b5f6110d76115ca565b5f83838101906110e79190612a3c565b90505f816020015180602001905181019061110291906126b0565b90505f61110e876118b8565b611144576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6002540361115557819050611179565b670de0b6b3a76400008260025461116c9190612a83565b6111769190612af1565b90505b6004548160055461118a9190612b21565b11156111c2576040517f360e42e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060055f8282546111d39190612b21565b9250508190555061122487825f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117a99092919063ffffffff16565b8673ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d35f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff168984604051602001611290939291906127a0565b6040516020818303038152906040526040516112ac9190611f98565b60405180910390a2600193505050509392505050565b60026112cd8161161b565b82829050858590501461130c576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b858590508110156113705761136386868381811061132f5761132e612279565b5b90506020020160208101906113449190611cda565b85858481811061135757611356612279565b5b90506020020135611601565b808060010191505061130e565b505050505050565b6003602052805f5260405f205f915054906101000a900460ff1681565b60055481565b5f6113a5846118b8565b90509392505050565b60026113b98161161b565b8282905085859050146113f8576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8585905081101561145c5761144f86868381811061141b5761141a612279565b5b90506020020160208101906114309190611cda565b85858481811061144357611442612279565b5b905060200201356115bb565b80806001019150506113fa565b505050505050565b60015481565b600181565b6114776115ca565b63389a75e1600c52805f526020600c20805442111561149d57636f5e88185f526004601cfd5b5f8155506114aa816117f2565b50565b6114b56115ca565b8060601b6114ca57637448fbae5f526004601cfd5b6114d3816117f2565b50565b5f8173ffffffffffffffffffffffffffffffffffffffff166114f6610fd1565b73ffffffffffffffffffffffffffffffffffffffff1614806115225750611521826002600117610f14565b5b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f90318111000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806115b457506115b3826118c7565b5b9050919050565b6115c682825f611940565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146115ff576382b429005f526004601cfd5b565b61160d82826001611940565b5050565b5f6202a300905090565b638b78c6d81954331461164d57638b78c6d8600c52335f52806020600c20541661164c576382b429005f526004601cfd5b5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b611681611998565b156116f9577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156116bb57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061174c565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b638b78c6d8600c52335f52806020600c2054166117a6576382b429005f526004601cfd5b50565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f511417166117e9576390b8ec185f526004601cfd5b5f603452505050565b6117fa611998565b1561185f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506118b5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f600454600554109050919050565b5f7fa9216705000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061193957506119388261199c565b5b9050919050565b638b78c6d8600c52825f526020600c2080548381178361196257848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611a0e5750611a0d82611a15565b5b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60405180608001604052805f6001811115611a9c57611a9b611fb8565b5b81526020015f80191681526020015f60ff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611b1581611ae1565b8114611b1f575f80fd5b50565b5f81359050611b3081611b0c565b92915050565b5f60208284031215611b4b57611b4a611ad9565b5b5f611b5884828501611b22565b91505092915050565b5f8115159050919050565b611b7581611b61565b82525050565b5f602082019050611b8e5f830184611b6c565b92915050565b5f819050919050565b611ba681611b94565b82525050565b5f602082019050611bbf5f830184611b9d565b92915050565b611bce81611b94565b8114611bd8575f80fd5b50565b5f81359050611be981611bc5565b92915050565b5f60208284031215611c0457611c03611ad9565b5b5f611c1184828501611bdb565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611c4382611c1a565b9050919050565b611c5381611c39565b8114611c5d575f80fd5b50565b5f81359050611c6e81611c4a565b92915050565b5f8060408385031215611c8a57611c89611ad9565b5b5f611c9785828601611c60565b9250506020611ca885828601611bdb565b9150509250929050565b611cbb81611ae1565b82525050565b5f602082019050611cd45f830184611cb2565b92915050565b5f60208284031215611cef57611cee611ad9565b5b5f611cfc84828501611c60565b91505092915050565b611d0e81611c39565b82525050565b5f602082019050611d275f830184611d05565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611d4e57611d4d611d2d565b5b8235905067ffffffffffffffff811115611d6b57611d6a611d31565b5b602083019150836020820283011115611d8757611d86611d35565b5b9250929050565b5f8083601f840112611da357611da2611d2d565b5b8235905067ffffffffffffffff811115611dc057611dbf611d31565b5b602083019150836020820283011115611ddc57611ddb611d35565b5b9250929050565b5f805f8060408587031215611dfb57611dfa611ad9565b5b5f85013567ffffffffffffffff811115611e1857611e17611add565b5b611e2487828801611d39565b9450945050602085013567ffffffffffffffff811115611e4757611e46611add565b5b611e5387828801611d8e565b925092505092959194509250565b5f8083601f840112611e7657611e75611d2d565b5b8235905067ffffffffffffffff811115611e9357611e92611d31565b5b602083019150836001820283011115611eaf57611eae611d35565b5b9250929050565b5f8060208385031215611ecc57611ecb611ad9565b5b5f83013567ffffffffffffffff811115611ee957611ee8611add565b5b611ef585828601611e61565b92509250509250929050565b5f604082019050611f145f830185611b9d565b611f216020830184611d05565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611f6a82611f28565b611f748185611f32565b9350611f84818560208601611f42565b611f8d81611f50565b840191505092915050565b5f6020820190508181035f830152611fb08184611f60565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60028110611ff657611ff5611fb8565b5b50565b5f81905061200682611fe5565b919050565b5f61201582611ff9565b9050919050565b6120258161200b565b82525050565b5f819050919050565b61203d8161202b565b82525050565b5f60ff82169050919050565b61205881612043565b82525050565b5f6080820190506120715f83018761201c565b61207e6020830186612034565b61208b604083018561204f565b6120986060830184611d05565b95945050505050565b6120aa8161200b565b82525050565b6120b98161202b565b82525050565b6120c881612043565b82525050565b6120d781611c39565b82525050565b608082015f8201516120f15f8501826120a1565b50602082015161210460208501826120b0565b50604082015161211760408501826120bf565b50606082015161212a60608501826120ce565b50505050565b5f6080820190506121435f8301846120dd565b92915050565b5f805f604084860312156121605761215f611ad9565b5b5f61216d86828701611c60565b935050602084013567ffffffffffffffff81111561218e5761218d611add565b5b61219a86828701611e61565b92509250509250925092565b5f8083601f8401126121bb576121ba611d2d565b5b8235905067ffffffffffffffff8111156121d8576121d7611d31565b5b6020830191508360208202830111156121f4576121f3611d35565b5b9250929050565b5f805f806040858703121561221357612212611ad9565b5b5f85013567ffffffffffffffff8111156122305761222f611add565b5b61223c87828801611d39565b9450945050602085013567ffffffffffffffff81111561225f5761225e611add565b5b61226b878288016121a6565b925092505092959194509250565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6122af81611b61565b81146122b9575f80fd5b50565b5f813590506122ca816122a6565b92915050565b5f602082840312156122e5576122e4611ad9565b5b5f6122f2848285016122bc565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61233582611f50565b810181811067ffffffffffffffff82111715612354576123536122ff565b5b80604052505050565b5f612366611ad0565b9050612372828261232c565b919050565b5f80fd5b60028110612387575f80fd5b50565b5f813590506123988161237b565b92915050565b6123a78161202b565b81146123b1575f80fd5b50565b5f813590506123c28161239e565b92915050565b6123d181612043565b81146123db575f80fd5b50565b5f813590506123ec816123c8565b92915050565b5f60808284031215612407576124066122fb565b5b612411608061235d565b90505f6124208482850161238a565b5f830152506020612433848285016123b4565b6020830152506040612447848285016123de565b604083015250606061245b84828501611c60565b60608301525092915050565b5f60e0828403121561247c5761247b6122fb565b5b612486608061235d565b90505f61249584828501611c60565b5f8301525060206124a884828501611bdb565b60208301525060406124bc84828501611bdb565b60408301525060606124d0848285016123f2565b60608301525092915050565b5f60e082840312156124f1576124f0611ad9565b5b5f6124fe84828501612467565b91505092915050565b5f60608201905061251a5f830186611d05565b6125276020830185611b9d565b6125346040830184611b9d565b949350505050565b5f80fd5b5f67ffffffffffffffff82111561255a576125596122ff565b5b61256382611f50565b9050602081019050919050565b828183375f83830152505050565b5f61259061258b84612540565b61235d565b9050828152602081018484840111156125ac576125ab61253c565b5b6125b7848285612570565b509392505050565b5f82601f8301126125d3576125d2611d2d565b5b81356125e384826020860161257e565b91505092915050565b5f60408284031215612601576126006122fb565b5b61260b604061235d565b90505f61261a84828501611c60565b5f83015250602082013567ffffffffffffffff81111561263d5761263c612377565b5b612649848285016125bf565b60208301525092915050565b5f6020828403121561266a57612669611ad9565b5b5f82013567ffffffffffffffff81111561268757612686611add565b5b612693848285016125ec565b91505092915050565b5f815190506126aa81611bc5565b92915050565b5f602082840312156126c5576126c4611ad9565b5b5f6126d28482850161269c565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61271282611b94565b915061271d83611b94565b9250828203905081811115612735576127346126db565b5b92915050565b5f8160601b9050919050565b5f6127518261273b565b9050919050565b5f61276282612747565b9050919050565b61277a61277582611c39565b612758565b82525050565b5f819050919050565b61279a61279582611b94565b612780565b82525050565b5f6127ab8286612769565b6014820191506127bb8285612769565b6014820191506127cb8284612789565b602082019150819050949350505050565b5f6127e682611c1a565b9050919050565b6127f6816127dc565b8114612800575f80fd5b50565b5f81359050612811816127ed565b92915050565b5f805f6060848603121561282e5761282d611ad9565b5b5f61283b86828701612803565b935050602061284c86828701611bdb565b925050604061285d86828701611bdb565b9150509250925092565b61287081611b94565b82525050565b602082015f82015161288a5f850182612867565b50505050565b5f6020820190506128a35f830184612876565b92915050565b600381106128ba576128b9611fb8565b5b50565b5f8190506128ca826128a9565b919050565b5f6128d9826128bd565b9050919050565b6128e9816128cf565b82525050565b5f82825260208201905092915050565b5f61290982611f28565b61291381856128ef565b9350612923818560208601611f42565b61292c81611f50565b840191505092915050565b5f608083015f83015161294c5f8601826128e0565b50602083015161295f60208601826120ce565b50604083015161297260408601826120ce565b506060830151848203606086015261298a82826128ff565b9150508091505092915050565b5f6020820190508181035f8301526129af8184612937565b905092915050565b5f604082840312156129cc576129cb6122fb565b5b6129d6604061235d565b90505f82013567ffffffffffffffff8111156129f5576129f4612377565b5b612a01848285016125bf565b5f83015250602082013567ffffffffffffffff811115612a2457612a23612377565b5b612a30848285016125bf565b60208301525092915050565b5f60208284031215612a5157612a50611ad9565b5b5f82013567ffffffffffffffff811115612a6e57612a6d611add565b5b612a7a848285016129b7565b91505092915050565b5f612a8d82611b94565b9150612a9883611b94565b9250828202612aa681611b94565b91508282048414831517612abd57612abc6126db565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612afb82611b94565b9150612b0683611b94565b925082612b1657612b15612ac4565b5b828204905092915050565b5f612b2b82611b94565b9150612b3683611b94565b9250828201905080821115612b4e57612b4d6126db565b5b9291505056fea2646970667358221220457c071126566a0e3303f013a5ec378938c30fd38fe414171da94970b6b1579d64736f6c634300081a0033", s = class s extends F {
8
+ import { ERC20VariableIncentive as _ } from "./ERC20VariableIncentive.js";
9
+ const F = "0x608060405273deaddeaddeaddeaddeaddeaddeaddeaddeaddead5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015610062575f80fd5b5061007161007660201b60201c565b61010b565b5f6100856100e260201b60201c565b90508054600181161561009f5763f92ee8a95f526004601cfd5b8160c01c808260011c146100dd578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b612c47806101185f395ff3fe608060405260043610610219575f3560e01c8063715018a611610122578063c884ef83116100aa578063ec87621c1161006e578063ec87621c14610771578063f04e283e1461079b578063f2fde38b146107b7578063fe9fbb80146107d3578063fee81cf41461080f57610219565b8063c884ef831461067d578063d54ad2a1146106b9578063db09da12146106e3578063dcc213611461071f578063dcc59b6f1461074757610219565b8063a4d66daf116100f1578063a4d66daf1461059b578063a871ced2146105c5578063bb1757cf146105ef578063be4994f81461062b578063c213f3f91461065357610219565b8063715018a61461051057806375b238fc1461051a57806377548687146105445780638da5cb5b1461057157610219565b806338d52e0f116101a55780634a4ee7b1116101745780634a4ee7b1146104485780634e7165a214610464578063514e62fc146104a057806354d1f13d146104dc57806366a78e6c146104e657610219565b806338d52e0f146103915780634359d28a146103bb578063439fab91146103e3578063474f5a441461040b57610219565b80631cd64df4116101ec5780631cd64df4146102bb578063228cb733146102f7578063256929621461032157806328d6183b1461032b5780632de948071461035557610219565b806301ffc9a71461021d57806307621eca14610259578063183a4f6e146102835780631c10893f1461029f575b5f80fd5b348015610228575f80fd5b50610243600480360381019061023e9190611bdd565b61084b565b6040516102509190611c22565b60405180910390f35b348015610264575f80fd5b5061026d6108c4565b60405161027a9190611c53565b60405180910390f35b61029d60048036038101906102989190611c96565b6108cd565b005b6102b960048036038101906102b49190611d1b565b6108da565b005b3480156102c6575f80fd5b506102e160048036038101906102dc9190611d1b565b6108f0565b6040516102ee9190611c22565b60405180910390f35b348015610302575f80fd5b5061030b610906565b6040516103189190611c53565b60405180910390f35b61032961090c565b005b348015610336575f80fd5b5061033f61095d565b60405161034c9190611d68565b60405180910390f35b348015610360575f80fd5b5061037b60048036038101906103769190611d81565b610984565b6040516103889190611c53565b60405180910390f35b34801561039c575f80fd5b506103a561099d565b6040516103b29190611dbb565b60405180910390f35b3480156103c6575f80fd5b506103e160048036038101906103dc9190611e8a565b6109c0565b005b3480156103ee575f80fd5b5061040960048036038101906104049190611f5d565b610ace565b005b348015610416575f80fd5b50610431600480360381019061042c9190611f5d565b610d46565b60405161043f929190611fa8565b60405180910390f35b610462600480360381019061045d9190611d1b565b610eaa565b005b34801561046f575f80fd5b5061048a60048036038101906104859190611f5d565b610ec0565b604051610497919061203f565b60405180910390f35b3480156104ab575f80fd5b506104c660048036038101906104c19190611d1b565b610f8e565b6040516104d39190611c22565b60405180910390f35b6104e4610fa5565b005b3480156104f1575f80fd5b506104fa610fde565b6040516105079190611c53565b60405180910390f35b610518610fe4565b005b348015610525575f80fd5b5061052e610ff7565b60405161053b9190611c53565b60405180910390f35b34801561054f575f80fd5b50610558610ffc565b6040516105689493929190612105565b60405180910390f35b34801561057c575f80fd5b50610585611051565b6040516105929190611dbb565b60405180910390f35b3480156105a6575f80fd5b506105af611079565b6040516105bc9190611c53565b60405180910390f35b3480156105d0575f80fd5b506105d961107f565b6040516105e691906121d7565b60405180910390f35b3480156105fa575f80fd5b50610615600480360381019061061091906121f0565b61114e565b6040516106229190611c22565b60405180910390f35b348015610636575f80fd5b50610651600480360381019061064c91906122a2565b611360565b005b34801561065e575f80fd5b50610667611416565b6040516106749190611c53565b60405180910390f35b348015610688575f80fd5b506106a3600480360381019061069e9190611d81565b61141f565b6040516106b09190611c22565b60405180910390f35b3480156106c4575f80fd5b506106cd61143c565b6040516106da9190611c53565b60405180910390f35b3480156106ee575f80fd5b50610709600480360381019061070491906121f0565b611442565b6040516107169190611c22565b60405180910390f35b34801561072a575f80fd5b50610745600480360381019061074091906122a2565b611455565b005b348015610752575f80fd5b5061075b61150b565b6040516107689190611c53565b60405180910390f35b34801561077c575f80fd5b50610785611511565b6040516107929190611c53565b60405180910390f35b6107b560048036038101906107b09190611d81565b611516565b005b6107d160048036038101906107cc9190611d81565b611554565b005b3480156107de575f80fd5b506107f960048036038101906107f49190611d81565b61157d565b6040516108069190611c22565b60405180910390f35b34801561081a575f80fd5b5061083560048036038101906108309190611d81565b6115d0565b6040516108429190611c53565b60405180910390f35b5f7f52b8e45c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108bd57506108bc826115e9565b5b9050919050565b5f600254905090565b6108d73382611662565b50565b6108e2611671565b6108ec82826116a8565b5050565b5f81826108fc85610984565b1614905092915050565b60025481565b5f6109156116b8565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f52b8e45c00000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026109cb816116c2565b828290508585905014610a0a576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015610ac6575f848483818110610a2b57610a2a612320565b5b9050602002016020810190610a409190612377565b90506001151581151503610a8557610a80878784818110610a6457610a63612320565b5b9050602002016020810190610a799190611d81565b60016116a8565b610ab8565b610ab7878784818110610a9b57610a9a612320565b5b9050602002016020810190610ab09190611d81565b6001611662565b5b508080600101915050610a0c565b505050505050565b5f610ad76116f7565b90508054600382558015610b095760018160011c14303b10610b005763f92ee8a95f526004601cfd5b818160ff1b1b91505b50610b1333611720565b5f8383810190610b239190612598565b90505f815f015190505f826020015190505f836040015190505f846060015190505f856080015190505f8303610b85576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610baf308773ffffffffffffffffffffffffffffffffffffffff166117f690919063ffffffff16565b905083811015610bfd57865f015181856040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401610bf4939291906125c4565b60405180910390fd5b855f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508460028190555083600481905550826006819055505f6005819055508160075f820151815f015f6101000a81548160ff02191690836001811115610c8357610c8261205f565b5b0217905550602082015181600101556040820151816002015f6101000a81548160ff021916908360ff16021790555060608201518160020160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050610d0533611720565b505050505050508015610d41576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f806001610d5381611829565b5f8585810190610d639190612712565b90505f8160200151806020019051810190610d7e919061276d565b90508060045f828254610d9191906127c5565b92505081905550610de5825f0151825f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118509092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d35f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f015184604051602001610e579392919061285d565b604051602081830303815290604052604051610e73919061203f565b60405180910390a2805f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16945094505050509250929050565b610eb2611671565b610ebc8282611662565b5050565b60605f808484810190610ed391906128d4565b9250509150604051806080016040528060016002811115610ef757610ef661205f565b5b81526020018373ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001604051806020016040528084815250604051602001610f53919061294d565b604051602081830303815290604052815250604051602001610f759190612a54565b6040516020818303038152906040529250505092915050565b5f8082610f9a85610984565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b60065481565b610fec611671565b610ff55f611899565b565b600281565b6007805f015f9054906101000a900460ff1690806001015490806002015f9054906101000a900460ff16908060020160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60045481565b611087611b25565b60076040518060800160405290815f82015f9054906101000a900460ff1660018111156110b7576110b661205f565b5b60018111156110c9576110c861205f565b5b815260200160018201548152602001600282015f9054906101000a900460ff1660ff1660ff1681526020016002820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050905090565b5f611157611671565b5f83838101906111679190612af9565b90505f8160200151806020019051810190611182919061276d565b90505f61118e8761195f565b6111c4576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f600254036111d5578190506111f9565b670de0b6b3a7640000826002546111ec9190612b40565b6111f69190612bae565b90505b5f6006541415801561120c575060065481115b156112175760065490505b600454816005546112289190612bde565b1115611260576040517f360e42e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060055f8282546112719190612bde565b925050819055506112c287825f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118509092919063ffffffff16565b8673ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d35f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16898460405160200161132e9392919061285d565b60405160208183030381529060405260405161134a919061203f565b60405180910390a2600193505050509392505050565b600261136b816116c2565b8282905085859050146113aa576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8585905081101561140e576114018686838181106113cd576113cc612320565b5b90506020020160208101906113e29190611d81565b8585848181106113f5576113f4612320565b5b905060200201356116a8565b80806001019150506113ac565b505050505050565b5f600654905090565b6003602052805f5260405f205f915054906101000a900460ff1681565b60055481565b5f61144c8461195f565b90509392505050565b6002611460816116c2565b82829050858590501461149f576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015611503576114f68686838181106114c2576114c1612320565b5b90506020020160208101906114d79190611d81565b8585848181106114ea576114e9612320565b5b90506020020135611662565b80806001019150506114a1565b505050505050565b60015481565b600181565b61151e611671565b63389a75e1600c52805f526020600c20805442111561154457636f5e88185f526004601cfd5b5f81555061155181611899565b50565b61155c611671565b8060601b61157157637448fbae5f526004601cfd5b61157a81611899565b50565b5f8173ffffffffffffffffffffffffffffffffffffffff1661159d611051565b73ffffffffffffffffffffffffffffffffffffffff1614806115c957506115c8826002600117610f8e565b5b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f90318111000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061165b575061165a8261196e565b5b9050919050565b61166d82825f6119e7565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146116a6576382b429005f526004601cfd5b565b6116b4828260016119e7565b5050565b5f6202a300905090565b638b78c6d8195433146116f457638b78c6d8600c52335f52806020600c2054166116f3576382b429005f526004601cfd5b5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b611728611a3f565b156117a0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561176257630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506117f3565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b638b78c6d8600c52335f52806020600c20541661184d576382b429005f526004601cfd5b50565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716611890576390b8ec185f526004601cfd5b5f603452505050565b6118a1611a3f565b15611906577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061195c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f600454600554109050919050565b5f7fa9216705000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806119e057506119df82611a43565b5b9050919050565b638b78c6d8600c52825f526020600c20805483811783611a0957848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611ab55750611ab482611abc565b5b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60405180608001604052805f6001811115611b4357611b4261205f565b5b81526020015f80191681526020015f60ff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611bbc81611b88565b8114611bc6575f80fd5b50565b5f81359050611bd781611bb3565b92915050565b5f60208284031215611bf257611bf1611b80565b5b5f611bff84828501611bc9565b91505092915050565b5f8115159050919050565b611c1c81611c08565b82525050565b5f602082019050611c355f830184611c13565b92915050565b5f819050919050565b611c4d81611c3b565b82525050565b5f602082019050611c665f830184611c44565b92915050565b611c7581611c3b565b8114611c7f575f80fd5b50565b5f81359050611c9081611c6c565b92915050565b5f60208284031215611cab57611caa611b80565b5b5f611cb884828501611c82565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611cea82611cc1565b9050919050565b611cfa81611ce0565b8114611d04575f80fd5b50565b5f81359050611d1581611cf1565b92915050565b5f8060408385031215611d3157611d30611b80565b5b5f611d3e85828601611d07565b9250506020611d4f85828601611c82565b9150509250929050565b611d6281611b88565b82525050565b5f602082019050611d7b5f830184611d59565b92915050565b5f60208284031215611d9657611d95611b80565b5b5f611da384828501611d07565b91505092915050565b611db581611ce0565b82525050565b5f602082019050611dce5f830184611dac565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611df557611df4611dd4565b5b8235905067ffffffffffffffff811115611e1257611e11611dd8565b5b602083019150836020820283011115611e2e57611e2d611ddc565b5b9250929050565b5f8083601f840112611e4a57611e49611dd4565b5b8235905067ffffffffffffffff811115611e6757611e66611dd8565b5b602083019150836020820283011115611e8357611e82611ddc565b5b9250929050565b5f805f8060408587031215611ea257611ea1611b80565b5b5f85013567ffffffffffffffff811115611ebf57611ebe611b84565b5b611ecb87828801611de0565b9450945050602085013567ffffffffffffffff811115611eee57611eed611b84565b5b611efa87828801611e35565b925092505092959194509250565b5f8083601f840112611f1d57611f1c611dd4565b5b8235905067ffffffffffffffff811115611f3a57611f39611dd8565b5b602083019150836001820283011115611f5657611f55611ddc565b5b9250929050565b5f8060208385031215611f7357611f72611b80565b5b5f83013567ffffffffffffffff811115611f9057611f8f611b84565b5b611f9c85828601611f08565b92509250509250929050565b5f604082019050611fbb5f830185611c44565b611fc86020830184611dac565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61201182611fcf565b61201b8185611fd9565b935061202b818560208601611fe9565b61203481611ff7565b840191505092915050565b5f6020820190508181035f8301526120578184612007565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6002811061209d5761209c61205f565b5b50565b5f8190506120ad8261208c565b919050565b5f6120bc826120a0565b9050919050565b6120cc816120b2565b82525050565b5f819050919050565b6120e4816120d2565b82525050565b5f60ff82169050919050565b6120ff816120ea565b82525050565b5f6080820190506121185f8301876120c3565b61212560208301866120db565b61213260408301856120f6565b61213f6060830184611dac565b95945050505050565b612151816120b2565b82525050565b612160816120d2565b82525050565b61216f816120ea565b82525050565b61217e81611ce0565b82525050565b608082015f8201516121985f850182612148565b5060208201516121ab6020850182612157565b5060408201516121be6040850182612166565b5060608201516121d16060850182612175565b50505050565b5f6080820190506121ea5f830184612184565b92915050565b5f805f6040848603121561220757612206611b80565b5b5f61221486828701611d07565b935050602084013567ffffffffffffffff81111561223557612234611b84565b5b61224186828701611f08565b92509250509250925092565b5f8083601f84011261226257612261611dd4565b5b8235905067ffffffffffffffff81111561227f5761227e611dd8565b5b60208301915083602082028301111561229b5761229a611ddc565b5b9250929050565b5f805f80604085870312156122ba576122b9611b80565b5b5f85013567ffffffffffffffff8111156122d7576122d6611b84565b5b6122e387828801611de0565b9450945050602085013567ffffffffffffffff81111561230657612305611b84565b5b6123128782880161224d565b925092505092959194509250565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b61235681611c08565b8114612360575f80fd5b50565b5f813590506123718161234d565b92915050565b5f6020828403121561238c5761238b611b80565b5b5f61239984828501612363565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6123dc82611ff7565b810181811067ffffffffffffffff821117156123fb576123fa6123a6565b5b80604052505050565b5f61240d611b77565b905061241982826123d3565b919050565b5f80fd5b6002811061242e575f80fd5b50565b5f8135905061243f81612422565b92915050565b61244e816120d2565b8114612458575f80fd5b50565b5f8135905061246981612445565b92915050565b612478816120ea565b8114612482575f80fd5b50565b5f813590506124938161246f565b92915050565b5f608082840312156124ae576124ad6123a2565b5b6124b86080612404565b90505f6124c784828501612431565b5f8301525060206124da8482850161245b565b60208301525060406124ee84828501612485565b604083015250606061250284828501611d07565b60608301525092915050565b5f6101008284031215612524576125236123a2565b5b61252e60a0612404565b90505f61253d84828501611d07565b5f83015250602061255084828501611c82565b602083015250604061256484828501611c82565b604083015250606061257884828501611c82565b606083015250608061258c84828501612499565b60808301525092915050565b5f61010082840312156125ae576125ad611b80565b5b5f6125bb8482850161250e565b91505092915050565b5f6060820190506125d75f830186611dac565b6125e46020830185611c44565b6125f16040830184611c44565b949350505050565b5f80fd5b5f67ffffffffffffffff821115612617576126166123a6565b5b61262082611ff7565b9050602081019050919050565b828183375f83830152505050565b5f61264d612648846125fd565b612404565b905082815260208101848484011115612669576126686125f9565b5b61267484828561262d565b509392505050565b5f82601f8301126126905761268f611dd4565b5b81356126a084826020860161263b565b91505092915050565b5f604082840312156126be576126bd6123a2565b5b6126c86040612404565b90505f6126d784828501611d07565b5f83015250602082013567ffffffffffffffff8111156126fa576126f961241e565b5b6127068482850161267c565b60208301525092915050565b5f6020828403121561272757612726611b80565b5b5f82013567ffffffffffffffff81111561274457612743611b84565b5b612750848285016126a9565b91505092915050565b5f8151905061276781611c6c565b92915050565b5f6020828403121561278257612781611b80565b5b5f61278f84828501612759565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6127cf82611c3b565b91506127da83611c3b565b92508282039050818111156127f2576127f1612798565b5b92915050565b5f8160601b9050919050565b5f61280e826127f8565b9050919050565b5f61281f82612804565b9050919050565b61283761283282611ce0565b612815565b82525050565b5f819050919050565b61285761285282611c3b565b61283d565b82525050565b5f6128688286612826565b6014820191506128788285612826565b6014820191506128888284612846565b602082019150819050949350505050565b5f6128a382611cc1565b9050919050565b6128b381612899565b81146128bd575f80fd5b50565b5f813590506128ce816128aa565b92915050565b5f805f606084860312156128eb576128ea611b80565b5b5f6128f8868287016128c0565b935050602061290986828701611c82565b925050604061291a86828701611c82565b9150509250925092565b61292d81611c3b565b82525050565b602082015f8201516129475f850182612924565b50505050565b5f6020820190506129605f830184612933565b92915050565b600381106129775761297661205f565b5b50565b5f81905061298782612966565b919050565b5f6129968261297a565b9050919050565b6129a68161298c565b82525050565b5f82825260208201905092915050565b5f6129c682611fcf565b6129d081856129ac565b93506129e0818560208601611fe9565b6129e981611ff7565b840191505092915050565b5f608083015f830151612a095f86018261299d565b506020830151612a1c6020860182612175565b506040830151612a2f6040860182612175565b5060608301518482036060860152612a4782826129bc565b9150508091505092915050565b5f6020820190508181035f830152612a6c81846129f4565b905092915050565b5f60408284031215612a8957612a886123a2565b5b612a936040612404565b90505f82013567ffffffffffffffff811115612ab257612ab161241e565b5b612abe8482850161267c565b5f83015250602082013567ffffffffffffffff811115612ae157612ae061241e565b5b612aed8482850161267c565b60208301525092915050565b5f60208284031215612b0e57612b0d611b80565b5b5f82013567ffffffffffffffff811115612b2b57612b2a611b84565b5b612b3784828501612a74565b91505092915050565b5f612b4a82611c3b565b9150612b5583611c3b565b9250828202612b6381611c3b565b91508282048414831517612b7a57612b79612798565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612bb882611c3b565b9150612bc383611c3b565b925082612bd357612bd2612b81565b5b828204905092915050565b5f612be882611c3b565b9150612bf383611c3b565b9250828201905080821115612c0b57612c0a612798565b5b9291505056fea264697066735822122018691d0d67a8f7162ab215758b57da24181399aca76f384e15724057fc89cdad64736f6c634300081a0033", s = class s extends _ {
10
10
  constructor() {
11
11
  super(...arguments), this.abi = l;
12
12
  }
@@ -20,19 +20,35 @@ const P = "0x608060405273deaddeaddeaddeaddeaddeaddeaddeaddeaddead5f806101000a815
20
20
  * @returns {Promise<IncentiveCriteria>} Incentive criteria structure
21
21
  * @throws {IncentiveCriteriaNotFoundError}
22
22
  */
23
- async getIncentiveCriteria(e) {
23
+ async getIncentiveCriteria(b) {
24
24
  try {
25
- return await I(
25
+ return await w(
26
26
  this._config,
27
27
  {
28
- ...e,
28
+ ...b,
29
29
  address: this.assertValidAddress()
30
30
  }
31
31
  );
32
- } catch (b) {
33
- throw new $(b);
32
+ } catch (e) {
33
+ throw new V(e);
34
34
  }
35
35
  }
36
+ /**
37
+ * Fetches the IncentiveCriteria struct from the contract
38
+ *
39
+ * @param {?ReadParams} [params]
40
+ * @returns {Promise<IncentiveCriteria>} Incentive criteria structure
41
+ * @throws {IncentiveCriteriaNotFoundError}
42
+ */
43
+ async getMaxReward(b) {
44
+ return await I(
45
+ this._config,
46
+ {
47
+ ...b,
48
+ address: this.assertValidAddress()
49
+ }
50
+ );
51
+ }
36
52
  /**
37
53
  * Fetches the incentive scalar from a transaction hash
38
54
  *
@@ -41,26 +57,26 @@ const P = "0x608060405273deaddeaddeaddeaddeaddeaddeaddeaddeaddead5f806101000a815
41
57
  * @returns {Promise<bigint>}
42
58
  * @throws {InvalidCriteriaTypeError | NoMatchingLogsError | DecodedArgsError}
43
59
  */
44
- async getIncentiveScalar({ chainId: e, hash: b, knownSignatures: a }, i) {
60
+ async getIncentiveScalar({ chainId: b, hash: e, knownSignatures: t }, a) {
45
61
  var u;
46
- const f = await this.getIncentiveCriteria(i);
62
+ const f = await this.getIncentiveCriteria(a);
47
63
  if (f.criteriaType === o.EVENT) {
48
64
  const d = await v(this._config, {
49
- chainId: e,
50
- hash: b
65
+ chainId: b,
66
+ hash: e
51
67
  });
52
68
  if (f.fieldIndex === y.GAS_REBATE_INCENTIVE)
53
69
  return d.gasUsed * d.effectiveGasPrice + // Normal gas cost
54
70
  (d.blobGasUsed ?? 0n) * (d.blobGasPrice ?? 0n);
55
- const t = d.logs;
56
- if (t.length === 0)
71
+ const r = d.logs;
72
+ if (r.length === 0)
57
73
  throw new p(
58
74
  `No logs found for event signature ${f.signature}`
59
75
  );
60
76
  try {
61
- const n = a[f.signature], c = E({
77
+ const n = t[f.signature], c = x({
62
78
  abi: [n],
63
- logs: t
79
+ logs: r
64
80
  });
65
81
  if (c == null || c.length === 0)
66
82
  throw new p(
@@ -68,37 +84,37 @@ const P = "0x608060405273deaddeaddeaddeaddeaddeaddeaddeaddeaddead5f806101000a815
68
84
  );
69
85
  const g = ((u = c[0]) == null ? void 0 : u.args)[f.fieldIndex];
70
86
  if (g === void 0)
71
- throw new r(
87
+ throw new i(
72
88
  `Decoded argument at index ${f.fieldIndex} is undefined`
73
89
  );
74
90
  return BigInt(g);
75
91
  } catch (n) {
76
- throw new r(
92
+ throw new i(
77
93
  `Failed to decode event log for signature ${f.signature}: ${n.message}`
78
94
  );
79
95
  }
80
96
  } else if (f.criteriaType === o.FUNC) {
81
- const d = await w(this._config, {
82
- chainId: e,
83
- hash: b
97
+ const d = await E(this._config, {
98
+ chainId: b,
99
+ hash: e
84
100
  });
85
101
  try {
86
- const t = a[f.signature], c = C({
87
- abi: [t],
102
+ const r = t[f.signature], c = C({
103
+ abi: [r],
88
104
  data: d.input
89
105
  }).args[f.fieldIndex];
90
106
  if (c == null)
91
- throw new r(
107
+ throw new i(
92
108
  `Decoded argument at index ${f.fieldIndex} is undefined`
93
109
  );
94
110
  return BigInt(c);
95
- } catch (t) {
96
- throw new r(
97
- `Failed to decode function data for signature ${f.signature}: ${t.message}`
111
+ } catch (r) {
112
+ throw new i(
113
+ `Failed to decode function data for signature ${f.signature}: ${r.message}`
98
114
  );
99
115
  }
100
116
  } else
101
- throw new V(
117
+ throw new $(
102
118
  `Invalid criteria type ${f.criteriaType}`
103
119
  );
104
120
  }
@@ -110,36 +126,37 @@ const P = "0x608060405273deaddeaddeaddeaddeaddeaddeaddeaddeaddead5f806101000a815
110
126
  * @param {?DeployableOptions} [_options]
111
127
  * @returns {GenericDeployableParams}
112
128
  */
113
- buildParameters(e, b) {
114
- const [a, i] = this.validateDeploymentConfig(
115
- e,
116
- b
129
+ buildParameters(b, e) {
130
+ const [t, a] = this.validateDeploymentConfig(
131
+ b,
132
+ e
117
133
  );
118
134
  return {
119
135
  abi: l,
120
- bytecode: P,
121
- args: [R(a)],
122
- ...this.optionallyAttachAccount(i.account)
136
+ bytecode: F,
137
+ args: [D(t)],
138
+ ...this.optionallyAttachAccount(a.account)
123
139
  };
124
140
  }
125
141
  };
126
142
  s.bases = {
127
143
  31337: void 0,
128
- ...N
144
+ ...R
129
145
  };
130
146
  let m = s;
131
- function M() {
147
+ function H() {
132
148
  return {
133
149
  criteriaType: o.EVENT,
134
- signature: x,
150
+ signature: A,
135
151
  fieldIndex: y.GAS_REBATE_INCENTIVE,
136
- targetContract: A
152
+ targetContract: N
137
153
  };
138
154
  }
139
- function R({
155
+ function D({
140
156
  asset: h,
141
- reward: e,
142
- limit: b,
157
+ reward: b,
158
+ limit: e,
159
+ maxReward: t = 0n,
143
160
  criteria: a
144
161
  }) {
145
162
  return T(
@@ -151,6 +168,7 @@ function R({
151
168
  { type: "address", name: "asset" },
152
169
  { type: "uint256", name: "reward" },
153
170
  { type: "uint256", name: "limit" },
171
+ { type: "uint256", name: "maxReward" },
154
172
  {
155
173
  type: "tuple",
156
174
  name: "criteria",
@@ -167,8 +185,9 @@ function R({
167
185
  [
168
186
  {
169
187
  asset: h,
170
- reward: e,
171
- limit: b,
188
+ reward: b,
189
+ limit: e,
190
+ maxReward: t,
172
191
  criteria: {
173
192
  criteriaType: a.criteriaType,
174
193
  signature: a.signature,
@@ -182,7 +201,7 @@ function R({
182
201
  export {
183
202
  m as ERC20VariableCriteriaIncentive,
184
203
  l as erc20VariableCriteriaIncentiveAbi,
185
- M as gasRebateIncentiveCriteria,
186
- R as prepareERC20VariableCriteriaIncentivePayload
204
+ H as gasRebateIncentiveCriteria,
205
+ D as prepareERC20VariableCriteriaIncentivePayload
187
206
  };
188
207
  //# sourceMappingURL=ERC20VariableCriteriaIncentive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ERC20VariableCriteriaIncentive.js","sources":["../../src/Incentives/ERC20VariableCriteriaIncentive.ts"],"sourcesContent":["import {\n erc20VariableCriteriaIncentiveAbi,\n readErc20VariableCriteriaIncentiveGetIncentiveCriteria,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/incentives/ERC20VariableCriteriaIncentive.sol/ERC20VariableCriteriaIncentive.json';\nimport { getTransaction, getTransactionReceipt } from '@wagmi/core';\nimport {\n type AbiEvent,\n type AbiFunction,\n type Address,\n type Hex,\n decodeFunctionData,\n encodeAbiParameters,\n parseEventLogs,\n zeroAddress,\n zeroHash,\n} from 'viem';\nimport { ERC20VariableCriteriaIncentive as ERC20VariableCriteriaIncentiveBases } from '../../dist/deployments.json';\nimport { SignatureType } from '../Actions/EventAction';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport {\n DecodedArgsError,\n IncentiveCriteriaNotFoundError,\n InvalidCriteriaTypeError,\n NoMatchingLogsError,\n} from '../errors';\nimport { CheatCodes, type ReadParams } from '../utils';\nimport { ERC20VariableIncentive } from './ERC20VariableIncentive';\n\nexport { erc20VariableCriteriaIncentiveAbi };\n\nexport interface ERC20VariableCriteriaIncentivePayload {\n /**\n * The address of the incentivized asset.\n *\n * @type {Address}\n */\n asset: Address;\n /**\n * The amount of the asset to distribute as reward.\n *\n * @type {bigint}\n */\n reward: bigint;\n /**\n * The total spending limit of the asset that will be distributed.\n *\n * @type {bigint}\n */\n limit: bigint;\n /**\n * The criteria for the incentive that determines how the reward is distributed.\n *\n * @type {IncentiveCriteria}\n */\n criteria: IncentiveCriteria;\n}\n\nexport interface IncentiveCriteria {\n /**\n * The type of criteria used, either function signature or event signature.\n *\n * @type {SignatureType}\n */\n criteriaType: SignatureType;\n /**\n * The function or event signature used for criteria matching.\n *\n * @type {Hex}\n */\n signature: Hex;\n /**\n * The index of the field from where the scalar value is extracted.\n *\n * @type {number}\n */\n fieldIndex: number;\n /**\n * The address of the contract where the event/function is called/emitted.\n *\n * @type {Address}\n */\n targetContract: Address;\n}\n\nexport interface ReadIncentiveCriteriaParams\n extends ReadParams<\n typeof erc20VariableCriteriaIncentiveAbi,\n 'getIncentiveCriteria'\n > {}\n\nexport interface GetIncentiveScalarParams {\n chainId: number;\n hash: Hex;\n knownSignatures: Record<Hex, AbiFunction | AbiEvent>;\n}\n\n/**\n * Extended ERC20 Variable Criteria Incentive class that fetches incentive criteria and scalar\n *\n * @export\n * @class ERC20VariableCriteriaIncentive\n * @typedef {ERC20VariableCriteriaIncentive}\n * @extends {ERC20VariableIncentive<ERC20VariableCriteriaIncentivePayload, typeof erc20VariableCriteriaIncentiveAbi>}\n */\nexport class ERC20VariableCriteriaIncentive extends ERC20VariableIncentive<\n ERC20VariableCriteriaIncentivePayload,\n typeof erc20VariableCriteriaIncentiveAbi\n> {\n //@ts-expect-error instantiated correctly\n public override readonly abi = erc20VariableCriteriaIncentiveAbi;\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_VARIABLE_CRITERIA_INCENTIVE_BASE,\n ...(ERC20VariableCriteriaIncentiveBases as Record<number, Address>),\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 typeof erc20VariableCriteriaIncentiveAbi,\n 'getIncentiveCriteria'\n >,\n ): Promise<IncentiveCriteria> {\n try {\n const criteria =\n await readErc20VariableCriteriaIncentiveGetIncentiveCriteria(\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 * 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 typeof erc20VariableCriteriaIncentiveAbi,\n 'getIncentiveCriteria'\n >,\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 * @inheritdoc\n *\n * @public\n * @param {?ERC20VariableCriteriaIncentivePayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: ERC20VariableCriteriaIncentivePayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [payload, options] = this.validateDeploymentConfig(\n _payload,\n _options,\n );\n return {\n abi: erc20VariableCriteriaIncentiveAbi,\n bytecode: bytecode as Hex,\n args: [prepareERC20VariableCriteriaIncentivePayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n\n/**\n * Creates an IncentiveCriteria object representing a gas rebate incentive.\n * This object defines a variable incentive criteria where the criteria will be the gas spent.\n *\n * The criteria uses a signatureType of EVENT, with a special `fieldIndex` of 255 (using CheatCodes enum), which indicates\n * that the entire gas cost of the transaction will be used as the scalar value. If you don't want to\n * rebate the entire gas cost, you can use a reward value on the incentive..\n *\n * - `criteriaType`: EVENT, indicating it's based on event logs.\n * - `signature`: A zeroed signature (0x0000...0000), matching any event.\n * - `fieldIndex`: 255, indicating the use of transaction gas cost using CheatCodes enum.\n * - `targetContract`: A zeroed address (0x0000...0000), applicable to any contract.\n *\n * @returns {IncentiveCriteria} Returns an IncentiveCriteria object for a gas rebate.\n *\n * @example\n * const incentive = gasRebateIncentiveCriteria();\n * const actionPayload = {\n * criteria: incentive,\n * asset: \"0xAssetAddress\",\n * reward: 0, // Set to zero to rebate the entire gas cost\n * limit: BigInt(1000) // This is the total spend limit for the incentive\n * };\n * deployIncentive(actionPayload);\n */\nexport function gasRebateIncentiveCriteria(): IncentiveCriteria {\n return {\n criteriaType: SignatureType.EVENT,\n signature: zeroHash,\n fieldIndex: CheatCodes.GAS_REBATE_INCENTIVE,\n targetContract: zeroAddress,\n };\n}\n\n/**\n *\n *\n * @param {InitPayloadExtended} param0\n * @param {Address} param0.asset - The address of the ERC20 asset to incentivize.\n * @param {bigint} param0.reward - The reward amount to distribute per action.\n * @param {bigint} param0.limit - The total limit of the asset distribution.\n * @param {IncentiveCriteria} param0.criteria - The incentive criteria for reward distribution.\n * @returns {Hex}\n */\nexport function prepareERC20VariableCriteriaIncentivePayload({\n asset,\n reward,\n limit,\n criteria,\n}: ERC20VariableCriteriaIncentivePayload) {\n return encodeAbiParameters(\n [\n {\n type: 'tuple',\n name: 'initPayloadExtended',\n components: [\n { type: 'address', name: 'asset' },\n { type: 'uint256', name: 'reward' },\n { type: 'uint256', name: 'limit' },\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: asset,\n reward: reward,\n limit: limit,\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":["_ERC20VariableCriteriaIncentive","ERC20VariableIncentive","erc20VariableCriteriaIncentiveAbi","params","readErc20VariableCriteriaIncentiveGetIncentiveCriteria","e","IncentiveCriteriaNotFoundError","chainId","hash","knownSignatures","criteria","SignatureType","transactionReceipt","getTransactionReceipt","CheatCodes","logs","NoMatchingLogsError","eventAbi","decodedEvents","parseEventLogs","scalarValue","_a","DecodedArgsError","transaction","getTransaction","func","decodeFunctionData","InvalidCriteriaTypeError","_payload","_options","payload","options","bytecode","prepareERC20VariableCriteriaIncentivePayload","ERC20VariableCriteriaIncentiveBases","ERC20VariableCriteriaIncentive","gasRebateIncentiveCriteria","zeroHash","zeroAddress","asset","reward","limit","encodeAbiParameters"],"mappings":"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"}
1
+ {"version":3,"file":"ERC20VariableCriteriaIncentive.js","sources":["../../src/Incentives/ERC20VariableCriteriaIncentive.ts"],"sourcesContent":["import {\n erc20VariableCriteriaIncentiveAbi,\n readErc20VariableCriteriaIncentiveGetIncentiveCriteria,\n readErc20VariableCriteriaIncentiveGetMaxReward,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/incentives/ERC20VariableCriteriaIncentive.sol/ERC20VariableCriteriaIncentive.json';\nimport { getTransaction, getTransactionReceipt } from '@wagmi/core';\nimport {\n type AbiEvent,\n type AbiFunction,\n type Address,\n type Hex,\n decodeFunctionData,\n encodeAbiParameters,\n parseEventLogs,\n zeroAddress,\n zeroHash,\n} from 'viem';\nimport { ERC20VariableCriteriaIncentive as ERC20VariableCriteriaIncentiveBases } from '../../dist/deployments.json';\nimport { SignatureType } from '../Actions/EventAction';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport {\n DecodedArgsError,\n IncentiveCriteriaNotFoundError,\n InvalidCriteriaTypeError,\n NoMatchingLogsError,\n} from '../errors';\nimport { CheatCodes, type ReadParams } from '../utils';\nimport { ERC20VariableIncentive } from './ERC20VariableIncentive';\n\nexport { erc20VariableCriteriaIncentiveAbi };\n\nexport interface ERC20VariableCriteriaIncentivePayload {\n /**\n * The address of the incentivized asset.\n *\n * @type {Address}\n */\n asset: Address;\n /**\n * The amount of the asset to distribute as reward.\n *\n * @type {bigint}\n */\n reward: bigint;\n /**\n * The total spending limit of the asset that will be distributed.\n *\n * @type {bigint}\n */\n limit: bigint;\n /**\n * The total amount claimable in a single claim or maximum per-action reward.\n *\n * @type {bigint}\n * @optional\n */\n maxReward?: bigint;\n /**\n * The criteria for the incentive that determines how the reward is distributed.\n *\n * @type {IncentiveCriteria}\n */\n criteria: IncentiveCriteria;\n}\n\nexport interface IncentiveCriteria {\n /**\n * The type of criteria used, either function signature or event signature.\n *\n * @type {SignatureType}\n */\n criteriaType: SignatureType;\n /**\n * The function or event signature used for criteria matching.\n *\n * @type {Hex}\n */\n signature: Hex;\n /**\n * The index of the field from where the scalar value is extracted.\n *\n * @type {number}\n */\n fieldIndex: number;\n /**\n * The address of the contract where the event/function is called/emitted.\n *\n * @type {Address}\n */\n targetContract: Address;\n}\n\nexport interface ReadIncentiveCriteriaParams\n extends ReadParams<\n typeof erc20VariableCriteriaIncentiveAbi,\n 'getIncentiveCriteria'\n > {}\n\nexport interface GetIncentiveScalarParams {\n chainId: number;\n hash: Hex;\n knownSignatures: Record<Hex, AbiFunction | AbiEvent>;\n}\n\n/**\n * Extended ERC20 Variable Criteria Incentive class that fetches incentive criteria and scalar\n *\n * @export\n * @class ERC20VariableCriteriaIncentive\n * @typedef {ERC20VariableCriteriaIncentive}\n * @extends {ERC20VariableIncentive<ERC20VariableCriteriaIncentivePayload, typeof erc20VariableCriteriaIncentiveAbi>}\n */\nexport class ERC20VariableCriteriaIncentive extends ERC20VariableIncentive<\n ERC20VariableCriteriaIncentivePayload,\n typeof erc20VariableCriteriaIncentiveAbi\n> {\n //@ts-expect-error instantiated correctly\n public override readonly abi = erc20VariableCriteriaIncentiveAbi;\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_VARIABLE_CRITERIA_INCENTIVE_BASE,\n ...(ERC20VariableCriteriaIncentiveBases as Record<number, Address>),\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 typeof erc20VariableCriteriaIncentiveAbi,\n 'getIncentiveCriteria'\n >,\n ): Promise<IncentiveCriteria> {\n try {\n const criteria =\n await readErc20VariableCriteriaIncentiveGetIncentiveCriteria(\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 * 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 getMaxReward(\n params?: ReadParams<\n typeof erc20VariableCriteriaIncentiveAbi,\n 'getIncentiveCriteria'\n >,\n ): Promise<bigint> {\n const maxReward = await readErc20VariableCriteriaIncentiveGetMaxReward(\n this._config,\n {\n ...params,\n address: this.assertValidAddress(),\n },\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 typeof erc20VariableCriteriaIncentiveAbi,\n 'getIncentiveCriteria'\n >,\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 * @inheritdoc\n *\n * @public\n * @param {?ERC20VariableCriteriaIncentivePayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: ERC20VariableCriteriaIncentivePayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [payload, options] = this.validateDeploymentConfig(\n _payload,\n _options,\n );\n return {\n abi: erc20VariableCriteriaIncentiveAbi,\n bytecode: bytecode as Hex,\n args: [prepareERC20VariableCriteriaIncentivePayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n\n/**\n * Creates an IncentiveCriteria object representing a gas rebate incentive.\n * This object defines a variable incentive criteria where the criteria will be the gas spent.\n *\n * The criteria uses a signatureType of EVENT, with a special `fieldIndex` of 255 (using CheatCodes enum), which indicates\n * that the entire gas cost of the transaction will be used as the scalar value. If you don't want to\n * rebate the entire gas cost, you can use a reward value on the incentive..\n *\n * - `criteriaType`: EVENT, indicating it's based on event logs.\n * - `signature`: A zeroed signature (0x0000...0000), matching any event.\n * - `fieldIndex`: 255, indicating the use of transaction gas cost using CheatCodes enum.\n * - `targetContract`: A zeroed address (0x0000...0000), applicable to any contract.\n *\n * @returns {IncentiveCriteria} Returns an IncentiveCriteria object for a gas rebate.\n *\n * @example\n * const incentive = gasRebateIncentiveCriteria();\n * const actionPayload = {\n * criteria: incentive,\n * asset: \"0xAssetAddress\",\n * reward: 0, // Set to zero to rebate the entire gas cost\n * limit: BigInt(1000) // This is the total spend limit for the incentive\n * };\n * deployIncentive(actionPayload);\n */\nexport function gasRebateIncentiveCriteria(): IncentiveCriteria {\n return {\n criteriaType: SignatureType.EVENT,\n signature: zeroHash,\n fieldIndex: CheatCodes.GAS_REBATE_INCENTIVE,\n targetContract: zeroAddress,\n };\n}\n\n/**\n *\n *\n * @param {InitPayloadExtended} param0\n * @param {Address} param0.asset - The address of the ERC20 asset to incentivize.\n * @param {bigint} param0.reward - The reward amount to distribute per action.\n * @param {bigint} param0.limit - The total limit of the asset distribution.\n * @param {bigint} param0.maxReward - The maximum value claimable from a single completion.\n * @param {IncentiveCriteria} param0.criteria - The incentive criteria for reward distribution.\n * @returns {Hex}\n */\nexport function prepareERC20VariableCriteriaIncentivePayload({\n asset,\n reward,\n limit,\n maxReward = 0n,\n criteria,\n}: ERC20VariableCriteriaIncentivePayload) {\n return encodeAbiParameters(\n [\n {\n type: 'tuple',\n name: 'initPayloadExtended',\n components: [\n { type: 'address', name: 'asset' },\n { type: 'uint256', name: 'reward' },\n { type: 'uint256', name: 'limit' },\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: asset,\n reward: reward,\n limit: limit,\n maxReward: 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":["_ERC20VariableCriteriaIncentive","ERC20VariableIncentive","erc20VariableCriteriaIncentiveAbi","params","readErc20VariableCriteriaIncentiveGetIncentiveCriteria","IncentiveCriteriaNotFoundError","readErc20VariableCriteriaIncentiveGetMaxReward","chainId","hash","knownSignatures","criteria","SignatureType","transactionReceipt","getTransactionReceipt","CheatCodes","logs","NoMatchingLogsError","eventAbi","decodedEvents","parseEventLogs","scalarValue","_a","DecodedArgsError","e","transaction","getTransaction","func","decodeFunctionData","InvalidCriteriaTypeError","_payload","_options","payload","options","bytecode","prepareERC20VariableCriteriaIncentivePayload","ERC20VariableCriteriaIncentiveBases","ERC20VariableCriteriaIncentive","gasRebateIncentiveCriteria","zeroHash","zeroAddress","asset","reward","limit","maxReward","encodeAbiParameters"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("../generated-BSUMIFi5.cjs"),r=require("viem"),o=require("../deployments-DF_6-7hH.cjs"),u=require("../Deployable/DeployableTarget.cjs"),s=require("../claiming.cjs"),h=require("../utils.cjs"),y="0x608060405273deaddeaddeaddeaddeaddeaddeaddeaddeaddead5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015610062575f80fd5b5061007161007660201b60201c565b61010b565b5f6100856100e260201b60201c565b90508054600181161561009f5763f92ee8a95f526004601cfd5b8160c01c808260011c146100dd578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b61266f806101185f395ff3fe6080604052600436106101ed575f3560e01c806354d1f13d1161010c578063d54ad2a11161009f578063ec87621c1161006e578063ec87621c1461069a578063f04e283e146106c4578063f2fde38b146106e0578063fe9fbb80146106fc578063fee81cf414610738576101ed565b8063d54ad2a1146105e2578063db09da121461060c578063dcc2136114610648578063dcc59b6f14610670576101ed565b8063a4d66daf116100db578063a4d66daf14610518578063bb1757cf14610542578063be4994f81461057e578063c884ef83146105a6576101ed565b806354d1f13d146104b0578063715018a6146104ba57806375b238fc146104c45780638da5cb5b146104ee576101ed565b80632de9480711610184578063474f5a4411610153578063474f5a44146103df5780634a4ee7b11461041c5780634e7165a214610438578063514e62fc14610474576101ed565b80632de948071461032957806338d52e0f146103655780634359d28a1461038f578063439fab91146103b7576101ed565b80631cd64df4116101c05780631cd64df41461028f578063228cb733146102cb57806325692962146102f557806328d6183b146102ff576101ed565b806301ffc9a7146101f157806307621eca1461022d578063183a4f6e146102575780631c10893f14610273575b5f80fd5b3480156101fc575f80fd5b5061021760048036038101906102129190611870565b610774565b60405161022491906118b5565b60405180910390f35b348015610238575f80fd5b506102416107ed565b60405161024e91906118e6565b60405180910390f35b610271600480360381019061026c9190611929565b6107f6565b005b61028d600480360381019061028891906119ae565b610803565b005b34801561029a575f80fd5b506102b560048036038101906102b091906119ae565b610819565b6040516102c291906118b5565b60405180910390f35b3480156102d6575f80fd5b506102df61082f565b6040516102ec91906118e6565b60405180910390f35b6102fd610835565b005b34801561030a575f80fd5b50610313610886565b60405161032091906119fb565b60405180910390f35b348015610334575f80fd5b5061034f600480360381019061034a9190611a14565b6108ad565b60405161035c91906118e6565b60405180910390f35b348015610370575f80fd5b506103796108c6565b6040516103869190611a4e565b60405180910390f35b34801561039a575f80fd5b506103b560048036038101906103b09190611b1d565b6108e9565b005b3480156103c2575f80fd5b506103dd60048036038101906103d89190611bf0565b6109f7565b005b3480156103ea575f80fd5b5061040560048036038101906104009190611bf0565b610bb4565b604051610413929190611c3b565b60405180910390f35b610436600480360381019061043191906119ae565b610d18565b005b348015610443575f80fd5b5061045e60048036038101906104599190611bf0565b610d2e565b60405161046b9190611cd2565b60405180910390f35b34801561047f575f80fd5b5061049a600480360381019061049591906119ae565b610dfc565b6040516104a791906118b5565b60405180910390f35b6104b8610e13565b005b6104c2610e4c565b005b3480156104cf575f80fd5b506104d8610e5f565b6040516104e591906118e6565b60405180910390f35b3480156104f9575f80fd5b50610502610e64565b60405161050f9190611a4e565b60405180910390f35b348015610523575f80fd5b5061052c610e8c565b60405161053991906118e6565b60405180910390f35b34801561054d575f80fd5b5061056860048036038101906105639190611cf2565b610e92565b60405161057591906118b5565b60405180910390f35b348015610589575f80fd5b506105a4600480360381019061059f9190611da4565b611086565b005b3480156105b1575f80fd5b506105cc60048036038101906105c79190611a14565b61113c565b6040516105d991906118b5565b60405180910390f35b3480156105ed575f80fd5b506105f6611159565b60405161060391906118e6565b60405180910390f35b348015610617575f80fd5b50610632600480360381019061062d9190611cf2565b61115f565b60405161063f91906118b5565b60405180910390f35b348015610653575f80fd5b5061066e60048036038101906106699190611da4565b611172565b005b34801561067b575f80fd5b50610684611228565b60405161069191906118e6565b60405180910390f35b3480156106a5575f80fd5b506106ae61122e565b6040516106bb91906118e6565b60405180910390f35b6106de60048036038101906106d99190611a14565b611233565b005b6106fa60048036038101906106f59190611a14565b611271565b005b348015610707575f80fd5b50610722600480360381019061071d9190611a14565b61129a565b60405161072f91906118b5565b60405180910390f35b348015610743575f80fd5b5061075e60048036038101906107599190611a14565b6112ed565b60405161076b91906118e6565b60405180910390f35b5f7f90318111000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806107e657506107e582611306565b5b9050919050565b5f600254905090565b610800338261137f565b50565b61080b61138e565b61081582826113c5565b5050565b5f8182610825856108ad565b1614905092915050565b60025481565b5f61083e6113d5565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f9031811100000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026108f4816113df565b828290508585905014610933576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b858590508110156109ef575f84848381811061095457610953611e22565b5b90506020020160208101906109699190611e79565b905060011515811515036109ae576109a987878481811061098d5761098c611e22565b5b90506020020160208101906109a29190611a14565b60016113c5565b6109e1565b6109e08787848181106109c4576109c3611e22565b5b90506020020160208101906109d99190611a14565b600161137f565b5b508080600101915050610935565b505050505050565b5f610a00611414565b90508054600382558015610a325760018160011c14303b10610a295763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8383810190610a439190611f85565b90505f815f015190505f826020015190505f836040015190505f8103610a95576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610abf308573ffffffffffffffffffffffffffffffffffffffff1661143d90919063ffffffff16565b905081811015610b0d57845f015181836040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401610b0493929190611fb0565b60405180910390fd5b835f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600281905550816004819055505f600581905550610b6a33611470565b610b75336001611546565b50505050508015610baf576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f806001610bc181611587565b5f8585810190610bd191906120fe565b90505f8160200151806020019051810190610bec9190612159565b90508060045f828254610bff91906121b1565b92505081905550610c53825f0151825f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115ae9092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d35f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f015184604051602001610cc593929190612249565b604051602081830303815290604052604051610ce19190611cd2565b60405180910390a2805f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16945094505050509250929050565b610d2061138e565b610d2a828261137f565b5050565b60605f808484810190610d4191906122c0565b9250509150604051806080016040528060016002811115610d6557610d64612310565b5b81526020018373ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001604051806020016040528084815250604051602001610dc19190612366565b604051602081830303815290604052815250604051602001610de3919061247c565b6040516020818303038152906040529250505092915050565b5f8082610e08856108ad565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610e5461138e565b610e5d5f6115f7565b565b600281565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60045481565b5f610e9b61138e565b5f8383810190610eab9190612521565b90505f8160200151806020019051810190610ec69190612159565b90505f610ed2876116bd565b610f08576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60025403610f1957819050610f3d565b670de0b6b3a764000082600254610f309190612568565b610f3a91906125d6565b90505b60045481600554610f4e9190612606565b1115610f86576040517f360e42e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060055f828254610f979190612606565b92505081905550610fe887825f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115ae9092919063ffffffff16565b8673ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d35f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16898460405160200161105493929190612249565b6040516020818303038152906040526040516110709190611cd2565b60405180910390a2600193505050509392505050565b6002611091816113df565b8282905085859050146110d0576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015611134576111278686838181106110f3576110f2611e22565b5b90506020020160208101906111089190611a14565b85858481811061111b5761111a611e22565b5b905060200201356113c5565b80806001019150506110d2565b505050505050565b6003602052805f5260405f205f915054906101000a900460ff1681565b60055481565b5f611169846116bd565b90509392505050565b600261117d816113df565b8282905085859050146111bc576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015611220576112138686838181106111df576111de611e22565b5b90506020020160208101906111f49190611a14565b85858481811061120757611206611e22565b5b9050602002013561137f565b80806001019150506111be565b505050505050565b60015481565b600181565b61123b61138e565b63389a75e1600c52805f526020600c20805442111561126157636f5e88185f526004601cfd5b5f81555061126e816115f7565b50565b61127961138e565b8060601b61128e57637448fbae5f526004601cfd5b611297816115f7565b50565b5f8173ffffffffffffffffffffffffffffffffffffffff166112ba610e64565b73ffffffffffffffffffffffffffffffffffffffff1614806112e657506112e5826002600117610dfc565b5b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fa9216705000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806113785750611377826116cc565b5b9050919050565b61138a82825f611745565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146113c3576382b429005f526004601cfd5b565b6113d182826001611745565b5050565b5f6202a300905090565b638b78c6d81954331461141157638b78c6d8600c52335f52806020600c205416611410576382b429005f526004601cfd5b5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b61147861179d565b156114f0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156114b257630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611543565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b638b78c6d8600c52335f52806020600c2054166115ab576382b429005f526004601cfd5b50565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f511417166115ee576390b8ec185f526004601cfd5b5f603452505050565b6115ff61179d565b15611664577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506116ba565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f600454600554109050919050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061173e575061173d826117a1565b5b9050919050565b638b78c6d8600c52825f526020600c2080548381178361176757848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61184f8161181b565b8114611859575f80fd5b50565b5f8135905061186a81611846565b92915050565b5f6020828403121561188557611884611813565b5b5f6118928482850161185c565b91505092915050565b5f8115159050919050565b6118af8161189b565b82525050565b5f6020820190506118c85f8301846118a6565b92915050565b5f819050919050565b6118e0816118ce565b82525050565b5f6020820190506118f95f8301846118d7565b92915050565b611908816118ce565b8114611912575f80fd5b50565b5f81359050611923816118ff565b92915050565b5f6020828403121561193e5761193d611813565b5b5f61194b84828501611915565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61197d82611954565b9050919050565b61198d81611973565b8114611997575f80fd5b50565b5f813590506119a881611984565b92915050565b5f80604083850312156119c4576119c3611813565b5b5f6119d18582860161199a565b92505060206119e285828601611915565b9150509250929050565b6119f58161181b565b82525050565b5f602082019050611a0e5f8301846119ec565b92915050565b5f60208284031215611a2957611a28611813565b5b5f611a368482850161199a565b91505092915050565b611a4881611973565b82525050565b5f602082019050611a615f830184611a3f565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611a8857611a87611a67565b5b8235905067ffffffffffffffff811115611aa557611aa4611a6b565b5b602083019150836020820283011115611ac157611ac0611a6f565b5b9250929050565b5f8083601f840112611add57611adc611a67565b5b8235905067ffffffffffffffff811115611afa57611af9611a6b565b5b602083019150836020820283011115611b1657611b15611a6f565b5b9250929050565b5f805f8060408587031215611b3557611b34611813565b5b5f85013567ffffffffffffffff811115611b5257611b51611817565b5b611b5e87828801611a73565b9450945050602085013567ffffffffffffffff811115611b8157611b80611817565b5b611b8d87828801611ac8565b925092505092959194509250565b5f8083601f840112611bb057611baf611a67565b5b8235905067ffffffffffffffff811115611bcd57611bcc611a6b565b5b602083019150836001820283011115611be957611be8611a6f565b5b9250929050565b5f8060208385031215611c0657611c05611813565b5b5f83013567ffffffffffffffff811115611c2357611c22611817565b5b611c2f85828601611b9b565b92509250509250929050565b5f604082019050611c4e5f8301856118d7565b611c5b6020830184611a3f565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611ca482611c62565b611cae8185611c6c565b9350611cbe818560208601611c7c565b611cc781611c8a565b840191505092915050565b5f6020820190508181035f830152611cea8184611c9a565b905092915050565b5f805f60408486031215611d0957611d08611813565b5b5f611d168682870161199a565b935050602084013567ffffffffffffffff811115611d3757611d36611817565b5b611d4386828701611b9b565b92509250509250925092565b5f8083601f840112611d6457611d63611a67565b5b8235905067ffffffffffffffff811115611d8157611d80611a6b565b5b602083019150836020820283011115611d9d57611d9c611a6f565b5b9250929050565b5f805f8060408587031215611dbc57611dbb611813565b5b5f85013567ffffffffffffffff811115611dd957611dd8611817565b5b611de587828801611a73565b9450945050602085013567ffffffffffffffff811115611e0857611e07611817565b5b611e1487828801611d4f565b925092505092959194509250565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b611e588161189b565b8114611e62575f80fd5b50565b5f81359050611e7381611e4f565b92915050565b5f60208284031215611e8e57611e8d611813565b5b5f611e9b84828501611e65565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611ede82611c8a565b810181811067ffffffffffffffff82111715611efd57611efc611ea8565b5b80604052505050565b5f611f0f61180a565b9050611f1b8282611ed5565b919050565b5f80fd5b5f60608284031215611f3957611f38611ea4565b5b611f436060611f06565b90505f611f528482850161199a565b5f830152506020611f6584828501611915565b6020830152506040611f7984828501611915565b60408301525092915050565b5f60608284031215611f9a57611f99611813565b5b5f611fa784828501611f24565b91505092915050565b5f606082019050611fc35f830186611a3f565b611fd060208301856118d7565b611fdd60408301846118d7565b949350505050565b5f80fd5b5f67ffffffffffffffff82111561200357612002611ea8565b5b61200c82611c8a565b9050602081019050919050565b828183375f83830152505050565b5f61203961203484611fe9565b611f06565b90508281526020810184848401111561205557612054611fe5565b5b612060848285612019565b509392505050565b5f82601f83011261207c5761207b611a67565b5b813561208c848260208601612027565b91505092915050565b5f604082840312156120aa576120a9611ea4565b5b6120b46040611f06565b90505f6120c38482850161199a565b5f83015250602082013567ffffffffffffffff8111156120e6576120e5611f20565b5b6120f284828501612068565b60208301525092915050565b5f6020828403121561211357612112611813565b5b5f82013567ffffffffffffffff8111156121305761212f611817565b5b61213c84828501612095565b91505092915050565b5f81519050612153816118ff565b92915050565b5f6020828403121561216e5761216d611813565b5b5f61217b84828501612145565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6121bb826118ce565b91506121c6836118ce565b92508282039050818111156121de576121dd612184565b5b92915050565b5f8160601b9050919050565b5f6121fa826121e4565b9050919050565b5f61220b826121f0565b9050919050565b61222361221e82611973565b612201565b82525050565b5f819050919050565b61224361223e826118ce565b612229565b82525050565b5f6122548286612212565b6014820191506122648285612212565b6014820191506122748284612232565b602082019150819050949350505050565b5f61228f82611954565b9050919050565b61229f81612285565b81146122a9575f80fd5b50565b5f813590506122ba81612296565b92915050565b5f805f606084860312156122d7576122d6611813565b5b5f6122e4868287016122ac565b93505060206122f586828701611915565b925050604061230686828701611915565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b612346816118ce565b82525050565b602082015f8201516123605f85018261233d565b50505050565b5f6020820190506123795f83018461234c565b92915050565b600381106123905761238f612310565b5b50565b5f8190506123a08261237f565b919050565b5f6123af82612393565b9050919050565b6123bf816123a5565b82525050565b6123ce81611973565b82525050565b5f82825260208201905092915050565b5f6123ee82611c62565b6123f881856123d4565b9350612408818560208601611c7c565b61241181611c8a565b840191505092915050565b5f608083015f8301516124315f8601826123b6565b50602083015161244460208601826123c5565b50604083015161245760408601826123c5565b506060830151848203606086015261246f82826123e4565b9150508091505092915050565b5f6020820190508181035f830152612494818461241c565b905092915050565b5f604082840312156124b1576124b0611ea4565b5b6124bb6040611f06565b90505f82013567ffffffffffffffff8111156124da576124d9611f20565b5b6124e684828501612068565b5f83015250602082013567ffffffffffffffff81111561250957612508611f20565b5b61251584828501612068565b60208301525092915050565b5f6020828403121561253657612535611813565b5b5f82013567ffffffffffffffff81111561255357612552611817565b5b61255f8482850161249c565b91505092915050565b5f612572826118ce565b915061257d836118ce565b925082820261258b816118ce565b915082820484148315176125a2576125a1612184565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6125e0826118ce565b91506125eb836118ce565b9250826125fb576125fa6125a9565b5b828204905092915050565b5f612610826118ce565b915061261b836118ce565b925082820190508082111561263357612632612184565b5b9291505056fea264697066735822122001c61f5a4b759daaab547f837f7360c758d89bd449e1e380bb437bafdcf9cf6364736f6c634300081a0033",c=class c extends u.DeployableTarget{constructor(){super(...arguments),this.abi=b.v}async owner(f){return await b.jI(this._config,{address:this.assertValidAddress(),args:[],...f})}async totalClaimed(f){return await b.XI(this._config,{address:this.assertValidAddress(),args:[],...f})}async currentReward(f){return await b.DI(this._config,{address:this.assertValidAddress(),args:[],...f})}async claims(f){return await b._I(this._config,{address:this.assertValidAddress(),args:[],...f})}async claimed(f,a){return await b.kI(this._config,{address:this.assertValidAddress(),args:[f],...a})}async asset(f){return await b.LI(this._config,{address:this.assertValidAddress(),...f})}async reward(f){return await b.WI(this._config,{address:this.assertValidAddress(),...f})}async limit(f){return await b.ZI(this._config,{address:this.assertValidAddress(),...f})}async claim(f,a){return await this.awaitResult(this.claimRaw(f,a))}async claimRaw(f,a){const{request:e,result:d}=await b.f2(this._config,{address:this.assertValidAddress(),args:[s.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...a});return{hash:await b.t2(this._config,e),result:d}}async clawback(f,a){return await this.awaitResult(this.clawbackRaw(f,a))}async clawbackRaw(f,a){const{request:e,result:d}=await b.v2(this._config,{address:this.assertValidAddress(),args:[s.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...a});return{hash:await b.n2(this._config,e),result:d}}async isClaimable(f,a){return await b.UI(this._config,{address:this.assertValidAddress(),args:[s.prepareClaimPayload(f)],...a})}buildClaimData(f){return r.encodeAbiParameters([{type:"uint256",name:"rewardAmount"}],[f])}buildParameters(f,a){const[e,d]=this.validateDeploymentConfig(f,a);return{abi:b.v,bytecode:y,args:[i(e)],...this.optionallyAttachAccount(d.account)}}};c.bases={31337:void 0,...o.ERC20VariableIncentive},c.registryType=h.RegistryType.INCENTIVE;let t=c;function i({asset:n,reward:f,limit:a}){return r.encodeAbiParameters([{type:"address",name:"asset"},{type:"uint256",name:"reward"},{type:"uint256",name:"limit"}],[n,f,a])}exports.erc20VariableIncentiveAbi=b.v;exports.ERC20VariableIncentive=t;exports.prepareERC20VariableIncentivePayload=i;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("../generated-CtPS8IvR.cjs"),r=require("viem"),o=require("../deployments-DAmmY7Gs.cjs"),u=require("../Deployable/DeployableTarget.cjs"),s=require("../claiming.cjs"),h=require("../utils.cjs"),y="0x608060405273deaddeaddeaddeaddeaddeaddeaddeaddeaddead5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015610062575f80fd5b5061007161007660201b60201c565b61010b565b5f6100856100e260201b60201c565b90508054600181161561009f5763f92ee8a95f526004601cfd5b8160c01c808260011c146100dd578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b61266f806101185f395ff3fe6080604052600436106101ed575f3560e01c806354d1f13d1161010c578063d54ad2a11161009f578063ec87621c1161006e578063ec87621c1461069a578063f04e283e146106c4578063f2fde38b146106e0578063fe9fbb80146106fc578063fee81cf414610738576101ed565b8063d54ad2a1146105e2578063db09da121461060c578063dcc2136114610648578063dcc59b6f14610670576101ed565b8063a4d66daf116100db578063a4d66daf14610518578063bb1757cf14610542578063be4994f81461057e578063c884ef83146105a6576101ed565b806354d1f13d146104b0578063715018a6146104ba57806375b238fc146104c45780638da5cb5b146104ee576101ed565b80632de9480711610184578063474f5a4411610153578063474f5a44146103df5780634a4ee7b11461041c5780634e7165a214610438578063514e62fc14610474576101ed565b80632de948071461032957806338d52e0f146103655780634359d28a1461038f578063439fab91146103b7576101ed565b80631cd64df4116101c05780631cd64df41461028f578063228cb733146102cb57806325692962146102f557806328d6183b146102ff576101ed565b806301ffc9a7146101f157806307621eca1461022d578063183a4f6e146102575780631c10893f14610273575b5f80fd5b3480156101fc575f80fd5b5061021760048036038101906102129190611870565b610774565b60405161022491906118b5565b60405180910390f35b348015610238575f80fd5b506102416107ed565b60405161024e91906118e6565b60405180910390f35b610271600480360381019061026c9190611929565b6107f6565b005b61028d600480360381019061028891906119ae565b610803565b005b34801561029a575f80fd5b506102b560048036038101906102b091906119ae565b610819565b6040516102c291906118b5565b60405180910390f35b3480156102d6575f80fd5b506102df61082f565b6040516102ec91906118e6565b60405180910390f35b6102fd610835565b005b34801561030a575f80fd5b50610313610886565b60405161032091906119fb565b60405180910390f35b348015610334575f80fd5b5061034f600480360381019061034a9190611a14565b6108ad565b60405161035c91906118e6565b60405180910390f35b348015610370575f80fd5b506103796108c6565b6040516103869190611a4e565b60405180910390f35b34801561039a575f80fd5b506103b560048036038101906103b09190611b1d565b6108e9565b005b3480156103c2575f80fd5b506103dd60048036038101906103d89190611bf0565b6109f7565b005b3480156103ea575f80fd5b5061040560048036038101906104009190611bf0565b610bb4565b604051610413929190611c3b565b60405180910390f35b610436600480360381019061043191906119ae565b610d18565b005b348015610443575f80fd5b5061045e60048036038101906104599190611bf0565b610d2e565b60405161046b9190611cd2565b60405180910390f35b34801561047f575f80fd5b5061049a600480360381019061049591906119ae565b610dfc565b6040516104a791906118b5565b60405180910390f35b6104b8610e13565b005b6104c2610e4c565b005b3480156104cf575f80fd5b506104d8610e5f565b6040516104e591906118e6565b60405180910390f35b3480156104f9575f80fd5b50610502610e64565b60405161050f9190611a4e565b60405180910390f35b348015610523575f80fd5b5061052c610e8c565b60405161053991906118e6565b60405180910390f35b34801561054d575f80fd5b5061056860048036038101906105639190611cf2565b610e92565b60405161057591906118b5565b60405180910390f35b348015610589575f80fd5b506105a4600480360381019061059f9190611da4565b611086565b005b3480156105b1575f80fd5b506105cc60048036038101906105c79190611a14565b61113c565b6040516105d991906118b5565b60405180910390f35b3480156105ed575f80fd5b506105f6611159565b60405161060391906118e6565b60405180910390f35b348015610617575f80fd5b50610632600480360381019061062d9190611cf2565b61115f565b60405161063f91906118b5565b60405180910390f35b348015610653575f80fd5b5061066e60048036038101906106699190611da4565b611172565b005b34801561067b575f80fd5b50610684611228565b60405161069191906118e6565b60405180910390f35b3480156106a5575f80fd5b506106ae61122e565b6040516106bb91906118e6565b60405180910390f35b6106de60048036038101906106d99190611a14565b611233565b005b6106fa60048036038101906106f59190611a14565b611271565b005b348015610707575f80fd5b50610722600480360381019061071d9190611a14565b61129a565b60405161072f91906118b5565b60405180910390f35b348015610743575f80fd5b5061075e60048036038101906107599190611a14565b6112ed565b60405161076b91906118e6565b60405180910390f35b5f7f90318111000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806107e657506107e582611306565b5b9050919050565b5f600254905090565b610800338261137f565b50565b61080b61138e565b61081582826113c5565b5050565b5f8182610825856108ad565b1614905092915050565b60025481565b5f61083e6113d5565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f9031811100000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026108f4816113df565b828290508585905014610933576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b858590508110156109ef575f84848381811061095457610953611e22565b5b90506020020160208101906109699190611e79565b905060011515811515036109ae576109a987878481811061098d5761098c611e22565b5b90506020020160208101906109a29190611a14565b60016113c5565b6109e1565b6109e08787848181106109c4576109c3611e22565b5b90506020020160208101906109d99190611a14565b600161137f565b5b508080600101915050610935565b505050505050565b5f610a00611414565b90508054600382558015610a325760018160011c14303b10610a295763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8383810190610a439190611f85565b90505f815f015190505f826020015190505f836040015190505f8103610a95576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610abf308573ffffffffffffffffffffffffffffffffffffffff1661143d90919063ffffffff16565b905081811015610b0d57845f015181836040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401610b0493929190611fb0565b60405180910390fd5b835f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600281905550816004819055505f600581905550610b6a33611470565b610b75336001611546565b50505050508015610baf576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f806001610bc181611587565b5f8585810190610bd191906120fe565b90505f8160200151806020019051810190610bec9190612159565b90508060045f828254610bff91906121b1565b92505081905550610c53825f0151825f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115ae9092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d35f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f015184604051602001610cc593929190612249565b604051602081830303815290604052604051610ce19190611cd2565b60405180910390a2805f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16945094505050509250929050565b610d2061138e565b610d2a828261137f565b5050565b60605f808484810190610d4191906122c0565b9250509150604051806080016040528060016002811115610d6557610d64612310565b5b81526020018373ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001604051806020016040528084815250604051602001610dc19190612366565b604051602081830303815290604052815250604051602001610de3919061247c565b6040516020818303038152906040529250505092915050565b5f8082610e08856108ad565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610e5461138e565b610e5d5f6115f7565b565b600281565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60045481565b5f610e9b61138e565b5f8383810190610eab9190612521565b90505f8160200151806020019051810190610ec69190612159565b90505f610ed2876116bd565b610f08576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60025403610f1957819050610f3d565b670de0b6b3a764000082600254610f309190612568565b610f3a91906125d6565b90505b60045481600554610f4e9190612606565b1115610f86576040517f360e42e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060055f828254610f979190612606565b92505081905550610fe887825f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115ae9092919063ffffffff16565b8673ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d35f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16898460405160200161105493929190612249565b6040516020818303038152906040526040516110709190611cd2565b60405180910390a2600193505050509392505050565b6002611091816113df565b8282905085859050146110d0576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015611134576111278686838181106110f3576110f2611e22565b5b90506020020160208101906111089190611a14565b85858481811061111b5761111a611e22565b5b905060200201356113c5565b80806001019150506110d2565b505050505050565b6003602052805f5260405f205f915054906101000a900460ff1681565b60055481565b5f611169846116bd565b90509392505050565b600261117d816113df565b8282905085859050146111bc576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015611220576112138686838181106111df576111de611e22565b5b90506020020160208101906111f49190611a14565b85858481811061120757611206611e22565b5b9050602002013561137f565b80806001019150506111be565b505050505050565b60015481565b600181565b61123b61138e565b63389a75e1600c52805f526020600c20805442111561126157636f5e88185f526004601cfd5b5f81555061126e816115f7565b50565b61127961138e565b8060601b61128e57637448fbae5f526004601cfd5b611297816115f7565b50565b5f8173ffffffffffffffffffffffffffffffffffffffff166112ba610e64565b73ffffffffffffffffffffffffffffffffffffffff1614806112e657506112e5826002600117610dfc565b5b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fa9216705000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806113785750611377826116cc565b5b9050919050565b61138a82825f611745565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146113c3576382b429005f526004601cfd5b565b6113d182826001611745565b5050565b5f6202a300905090565b638b78c6d81954331461141157638b78c6d8600c52335f52806020600c205416611410576382b429005f526004601cfd5b5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b61147861179d565b156114f0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156114b257630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611543565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b638b78c6d8600c52335f52806020600c2054166115ab576382b429005f526004601cfd5b50565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f511417166115ee576390b8ec185f526004601cfd5b5f603452505050565b6115ff61179d565b15611664577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506116ba565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f600454600554109050919050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061173e575061173d826117a1565b5b9050919050565b638b78c6d8600c52825f526020600c2080548381178361176757848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61184f8161181b565b8114611859575f80fd5b50565b5f8135905061186a81611846565b92915050565b5f6020828403121561188557611884611813565b5b5f6118928482850161185c565b91505092915050565b5f8115159050919050565b6118af8161189b565b82525050565b5f6020820190506118c85f8301846118a6565b92915050565b5f819050919050565b6118e0816118ce565b82525050565b5f6020820190506118f95f8301846118d7565b92915050565b611908816118ce565b8114611912575f80fd5b50565b5f81359050611923816118ff565b92915050565b5f6020828403121561193e5761193d611813565b5b5f61194b84828501611915565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61197d82611954565b9050919050565b61198d81611973565b8114611997575f80fd5b50565b5f813590506119a881611984565b92915050565b5f80604083850312156119c4576119c3611813565b5b5f6119d18582860161199a565b92505060206119e285828601611915565b9150509250929050565b6119f58161181b565b82525050565b5f602082019050611a0e5f8301846119ec565b92915050565b5f60208284031215611a2957611a28611813565b5b5f611a368482850161199a565b91505092915050565b611a4881611973565b82525050565b5f602082019050611a615f830184611a3f565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611a8857611a87611a67565b5b8235905067ffffffffffffffff811115611aa557611aa4611a6b565b5b602083019150836020820283011115611ac157611ac0611a6f565b5b9250929050565b5f8083601f840112611add57611adc611a67565b5b8235905067ffffffffffffffff811115611afa57611af9611a6b565b5b602083019150836020820283011115611b1657611b15611a6f565b5b9250929050565b5f805f8060408587031215611b3557611b34611813565b5b5f85013567ffffffffffffffff811115611b5257611b51611817565b5b611b5e87828801611a73565b9450945050602085013567ffffffffffffffff811115611b8157611b80611817565b5b611b8d87828801611ac8565b925092505092959194509250565b5f8083601f840112611bb057611baf611a67565b5b8235905067ffffffffffffffff811115611bcd57611bcc611a6b565b5b602083019150836001820283011115611be957611be8611a6f565b5b9250929050565b5f8060208385031215611c0657611c05611813565b5b5f83013567ffffffffffffffff811115611c2357611c22611817565b5b611c2f85828601611b9b565b92509250509250929050565b5f604082019050611c4e5f8301856118d7565b611c5b6020830184611a3f565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611ca482611c62565b611cae8185611c6c565b9350611cbe818560208601611c7c565b611cc781611c8a565b840191505092915050565b5f6020820190508181035f830152611cea8184611c9a565b905092915050565b5f805f60408486031215611d0957611d08611813565b5b5f611d168682870161199a565b935050602084013567ffffffffffffffff811115611d3757611d36611817565b5b611d4386828701611b9b565b92509250509250925092565b5f8083601f840112611d6457611d63611a67565b5b8235905067ffffffffffffffff811115611d8157611d80611a6b565b5b602083019150836020820283011115611d9d57611d9c611a6f565b5b9250929050565b5f805f8060408587031215611dbc57611dbb611813565b5b5f85013567ffffffffffffffff811115611dd957611dd8611817565b5b611de587828801611a73565b9450945050602085013567ffffffffffffffff811115611e0857611e07611817565b5b611e1487828801611d4f565b925092505092959194509250565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b611e588161189b565b8114611e62575f80fd5b50565b5f81359050611e7381611e4f565b92915050565b5f60208284031215611e8e57611e8d611813565b5b5f611e9b84828501611e65565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611ede82611c8a565b810181811067ffffffffffffffff82111715611efd57611efc611ea8565b5b80604052505050565b5f611f0f61180a565b9050611f1b8282611ed5565b919050565b5f80fd5b5f60608284031215611f3957611f38611ea4565b5b611f436060611f06565b90505f611f528482850161199a565b5f830152506020611f6584828501611915565b6020830152506040611f7984828501611915565b60408301525092915050565b5f60608284031215611f9a57611f99611813565b5b5f611fa784828501611f24565b91505092915050565b5f606082019050611fc35f830186611a3f565b611fd060208301856118d7565b611fdd60408301846118d7565b949350505050565b5f80fd5b5f67ffffffffffffffff82111561200357612002611ea8565b5b61200c82611c8a565b9050602081019050919050565b828183375f83830152505050565b5f61203961203484611fe9565b611f06565b90508281526020810184848401111561205557612054611fe5565b5b612060848285612019565b509392505050565b5f82601f83011261207c5761207b611a67565b5b813561208c848260208601612027565b91505092915050565b5f604082840312156120aa576120a9611ea4565b5b6120b46040611f06565b90505f6120c38482850161199a565b5f83015250602082013567ffffffffffffffff8111156120e6576120e5611f20565b5b6120f284828501612068565b60208301525092915050565b5f6020828403121561211357612112611813565b5b5f82013567ffffffffffffffff8111156121305761212f611817565b5b61213c84828501612095565b91505092915050565b5f81519050612153816118ff565b92915050565b5f6020828403121561216e5761216d611813565b5b5f61217b84828501612145565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6121bb826118ce565b91506121c6836118ce565b92508282039050818111156121de576121dd612184565b5b92915050565b5f8160601b9050919050565b5f6121fa826121e4565b9050919050565b5f61220b826121f0565b9050919050565b61222361221e82611973565b612201565b82525050565b5f819050919050565b61224361223e826118ce565b612229565b82525050565b5f6122548286612212565b6014820191506122648285612212565b6014820191506122748284612232565b602082019150819050949350505050565b5f61228f82611954565b9050919050565b61229f81612285565b81146122a9575f80fd5b50565b5f813590506122ba81612296565b92915050565b5f805f606084860312156122d7576122d6611813565b5b5f6122e4868287016122ac565b93505060206122f586828701611915565b925050604061230686828701611915565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b612346816118ce565b82525050565b602082015f8201516123605f85018261233d565b50505050565b5f6020820190506123795f83018461234c565b92915050565b600381106123905761238f612310565b5b50565b5f8190506123a08261237f565b919050565b5f6123af82612393565b9050919050565b6123bf816123a5565b82525050565b6123ce81611973565b82525050565b5f82825260208201905092915050565b5f6123ee82611c62565b6123f881856123d4565b9350612408818560208601611c7c565b61241181611c8a565b840191505092915050565b5f608083015f8301516124315f8601826123b6565b50602083015161244460208601826123c5565b50604083015161245760408601826123c5565b506060830151848203606086015261246f82826123e4565b9150508091505092915050565b5f6020820190508181035f830152612494818461241c565b905092915050565b5f604082840312156124b1576124b0611ea4565b5b6124bb6040611f06565b90505f82013567ffffffffffffffff8111156124da576124d9611f20565b5b6124e684828501612068565b5f83015250602082013567ffffffffffffffff81111561250957612508611f20565b5b61251584828501612068565b60208301525092915050565b5f6020828403121561253657612535611813565b5b5f82013567ffffffffffffffff81111561255357612552611817565b5b61255f8482850161249c565b91505092915050565b5f612572826118ce565b915061257d836118ce565b925082820261258b816118ce565b915082820484148315176125a2576125a1612184565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6125e0826118ce565b91506125eb836118ce565b9250826125fb576125fa6125a9565b5b828204905092915050565b5f612610826118ce565b915061261b836118ce565b925082820190508082111561263357612632612184565b5b9291505056fea2646970667358221220cff1abd7afb58c11336087b34dd77cc624658e50a46005e62c7f011373c34b2864736f6c634300081a0033",c=class c extends u.DeployableTarget{constructor(){super(...arguments),this.abi=b.v}async owner(f){return await b.JI(this._config,{address:this.assertValidAddress(),args:[],...f})}async totalClaimed(f){return await b.n2(this._config,{address:this.assertValidAddress(),args:[],...f})}async currentReward(f){return await b.GI(this._config,{address:this.assertValidAddress(),args:[],...f})}async claims(f){return await b.PI(this._config,{address:this.assertValidAddress(),args:[],...f})}async claimed(f,a){return await b.qI(this._config,{address:this.assertValidAddress(),args:[f],...a})}async asset(f){return await b.FI(this._config,{address:this.assertValidAddress(),...f})}async reward(f){return await b.YI(this._config,{address:this.assertValidAddress(),...f})}async limit(f){return await b.WI(this._config,{address:this.assertValidAddress(),...f})}async claim(f,a){return await this.awaitResult(this.claimRaw(f,a))}async claimRaw(f,a){const{request:e,result:d}=await b.A2(this._config,{address:this.assertValidAddress(),args:[s.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...a});return{hash:await b.s2(this._config,e),result:d}}async clawback(f,a){return await this.awaitResult(this.clawbackRaw(f,a))}async clawbackRaw(f,a){const{request:e,result:d}=await b.I2(this._config,{address:this.assertValidAddress(),args:[s.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...a});return{hash:await b.r2(this._config,e),result:d}}async isClaimable(f,a){return await b.QI(this._config,{address:this.assertValidAddress(),args:[s.prepareClaimPayload(f)],...a})}buildClaimData(f){return r.encodeAbiParameters([{type:"uint256",name:"rewardAmount"}],[f])}buildParameters(f,a){const[e,d]=this.validateDeploymentConfig(f,a);return{abi:b.v,bytecode:y,args:[i(e)],...this.optionallyAttachAccount(d.account)}}};c.bases={31337:void 0,...o.ERC20VariableIncentive},c.registryType=h.RegistryType.INCENTIVE;let t=c;function i({asset:n,reward:f,limit:a}){return r.encodeAbiParameters([{type:"address",name:"asset"},{type:"uint256",name:"reward"},{type:"uint256",name:"limit"}],[n,f,a])}exports.erc20VariableIncentiveAbi=b.v;exports.ERC20VariableIncentive=t;exports.prepareERC20VariableIncentivePayload=i;
2
2
  //# sourceMappingURL=ERC20VariableIncentive.cjs.map