@boostxyz/sdk 8.0.0-canary.3 → 8.0.0-canary.5

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 (165) 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.map +1 -1
  6. package/dist/Actions/EventAction.js +184 -181
  7. package/dist/Actions/EventAction.js.map +1 -1
  8. package/dist/{AllowList-DQf-8HQC.js → AllowList-CTRuUBCQ.js} +41 -41
  9. package/dist/{AllowList-DQf-8HQC.js.map → AllowList-CTRuUBCQ.js.map} +1 -1
  10. package/dist/{AllowList-DaX239DR.cjs → AllowList-GEmUfOR1.cjs} +2 -2
  11. package/dist/{AllowList-DaX239DR.cjs.map → AllowList-GEmUfOR1.cjs.map} +1 -1
  12. package/dist/AllowLists/AllowList.cjs +1 -1
  13. package/dist/AllowLists/AllowList.js +4 -4
  14. package/dist/AllowLists/SimpleAllowList.cjs +1 -1
  15. package/dist/AllowLists/SimpleAllowList.js +7 -7
  16. package/dist/AllowLists/SimpleDenyList.cjs +1 -1
  17. package/dist/AllowLists/SimpleDenyList.js +3 -3
  18. package/dist/Auth/PassthroughAuth.cjs +1 -1
  19. package/dist/Auth/PassthroughAuth.js +2 -2
  20. package/dist/BoostCore.cjs +2 -2
  21. package/dist/BoostCore.cjs.map +1 -1
  22. package/dist/BoostCore.d.ts +137 -2
  23. package/dist/BoostCore.d.ts.map +1 -1
  24. package/dist/BoostCore.js +336 -206
  25. package/dist/BoostCore.js.map +1 -1
  26. package/dist/BoostRegistry.cjs +1 -1
  27. package/dist/BoostRegistry.js +21 -21
  28. package/dist/{Budget-LnAQ_Slw.js → Budget-BH0s7Bxu.js} +52 -52
  29. package/dist/{Budget-LnAQ_Slw.js.map → Budget-BH0s7Bxu.js.map} +1 -1
  30. package/dist/{Budget-WIB8IJoM.cjs → Budget-CwNhsa3m.cjs} +2 -2
  31. package/dist/{Budget-WIB8IJoM.cjs.map → Budget-CwNhsa3m.cjs.map} +1 -1
  32. package/dist/Budgets/Budget.cjs +1 -1
  33. package/dist/Budgets/Budget.js +3 -3
  34. package/dist/Budgets/ManagedBudget.cjs +1 -1
  35. package/dist/Budgets/ManagedBudget.js +26 -26
  36. package/dist/Deployable/DeployableTarget.cjs +1 -1
  37. package/dist/Deployable/DeployableTarget.js +1 -1
  38. package/dist/Deployable/DeployableTargetWithRBAC.cjs +1 -1
  39. package/dist/Deployable/DeployableTargetWithRBAC.js +17 -17
  40. package/dist/{Incentive-gT7z-4v3.cjs → Incentive-B2ZBE5LU.cjs} +2 -2
  41. package/dist/{Incentive-gT7z-4v3.cjs.map → Incentive-B2ZBE5LU.cjs.map} +1 -1
  42. package/dist/{Incentive-D_IBex5V.js → Incentive-BCSV7OtF.js} +41 -41
  43. package/dist/{Incentive-D_IBex5V.js.map → Incentive-BCSV7OtF.js.map} +1 -1
  44. package/dist/Incentives/AllowListIncentive.cjs +1 -1
  45. package/dist/Incentives/AllowListIncentive.js +17 -17
  46. package/dist/Incentives/CGDAIncentive.cjs +1 -1
  47. package/dist/Incentives/CGDAIncentive.js +14 -14
  48. package/dist/Incentives/ERC20Incentive.cjs +1 -1
  49. package/dist/Incentives/ERC20Incentive.js +13 -13
  50. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentive.cjs +1 -1
  51. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentive.js +71 -71
  52. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentiveV2.cjs +1 -1
  53. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentiveV2.js +35 -35
  54. package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs +1 -1
  55. package/dist/Incentives/ERC20VariableCriteriaIncentive.js +9 -9
  56. package/dist/Incentives/ERC20VariableCriteriaIncentiveV2.cjs +1 -1
  57. package/dist/Incentives/ERC20VariableCriteriaIncentiveV2.js +12 -12
  58. package/dist/Incentives/ERC20VariableIncentive.cjs +1 -1
  59. package/dist/Incentives/ERC20VariableIncentive.js +8 -8
  60. package/dist/Incentives/Incentive.cjs +1 -1
  61. package/dist/Incentives/Incentive.js +3 -3
  62. package/dist/Incentives/PointsIncentive.cjs +1 -1
  63. package/dist/Incentives/PointsIncentive.js +28 -28
  64. package/dist/{SimpleDenyList-D5AoBdVi.cjs → SimpleDenyList-6_sxnZB0.cjs} +2 -2
  65. package/dist/{SimpleDenyList-D5AoBdVi.cjs.map → SimpleDenyList-6_sxnZB0.cjs.map} +1 -1
  66. package/dist/{SimpleDenyList-CtdXM49y.js → SimpleDenyList-CrjjFnn5.js} +17 -17
  67. package/dist/{SimpleDenyList-CtdXM49y.js.map → SimpleDenyList-CrjjFnn5.js.map} +1 -1
  68. package/dist/Validators/LimitedSignerValidator.cjs +1 -1
  69. package/dist/Validators/LimitedSignerValidator.cjs.map +1 -1
  70. package/dist/Validators/LimitedSignerValidator.d.ts +9 -9
  71. package/dist/Validators/LimitedSignerValidator.d.ts.map +1 -1
  72. package/dist/Validators/LimitedSignerValidator.js +19 -19
  73. package/dist/Validators/LimitedSignerValidator.js.map +1 -1
  74. package/dist/Validators/LimitedSignerValidatorV2.cjs +2 -0
  75. package/dist/Validators/LimitedSignerValidatorV2.cjs.map +1 -0
  76. package/dist/Validators/LimitedSignerValidatorV2.d.ts +842 -0
  77. package/dist/Validators/LimitedSignerValidatorV2.d.ts.map +1 -0
  78. package/dist/Validators/LimitedSignerValidatorV2.js +301 -0
  79. package/dist/Validators/LimitedSignerValidatorV2.js.map +1 -0
  80. package/dist/Validators/PayableLimitedSignerValidator.cjs +2 -0
  81. package/dist/Validators/PayableLimitedSignerValidator.cjs.map +1 -0
  82. package/dist/Validators/PayableLimitedSignerValidator.d.ts.map +1 -1
  83. package/dist/{Validator-BEUqV28V.js → Validators/PayableLimitedSignerValidator.js} +56 -102
  84. package/dist/Validators/PayableLimitedSignerValidator.js.map +1 -0
  85. package/dist/Validators/PayableLimitedSignerValidatorV2.cjs +2 -0
  86. package/dist/Validators/PayableLimitedSignerValidatorV2.cjs.map +1 -0
  87. package/dist/Validators/PayableLimitedSignerValidatorV2.d.ts +855 -0
  88. package/dist/Validators/PayableLimitedSignerValidatorV2.d.ts.map +1 -0
  89. package/dist/Validators/PayableLimitedSignerValidatorV2.js +372 -0
  90. package/dist/Validators/PayableLimitedSignerValidatorV2.js.map +1 -0
  91. package/dist/Validators/SignerValidator.cjs +1 -1
  92. package/dist/Validators/SignerValidator.cjs.map +1 -1
  93. package/dist/Validators/SignerValidator.d.ts +4 -2
  94. package/dist/Validators/SignerValidator.d.ts.map +1 -1
  95. package/dist/Validators/SignerValidator.js +12 -12
  96. package/dist/Validators/SignerValidator.js.map +1 -1
  97. package/dist/Validators/SignerValidatorV2.cjs +2 -0
  98. package/dist/Validators/SignerValidatorV2.cjs.map +1 -0
  99. package/dist/Validators/SignerValidatorV2.d.ts +728 -0
  100. package/dist/Validators/SignerValidatorV2.d.ts.map +1 -0
  101. package/dist/Validators/SignerValidatorV2.js +299 -0
  102. package/dist/Validators/SignerValidatorV2.js.map +1 -0
  103. package/dist/Validators/Validator.cjs +1 -1
  104. package/dist/Validators/Validator.cjs.map +1 -1
  105. package/dist/Validators/Validator.d.ts +19 -4
  106. package/dist/Validators/Validator.d.ts.map +1 -1
  107. package/dist/Validators/Validator.js +79 -14
  108. package/dist/Validators/Validator.js.map +1 -1
  109. package/dist/componentInterfaces-43ygGrVO.js +28 -0
  110. package/dist/componentInterfaces-43ygGrVO.js.map +1 -0
  111. package/dist/componentInterfaces-JU4NBkEc.cjs +2 -0
  112. package/dist/componentInterfaces-JU4NBkEc.cjs.map +1 -0
  113. package/dist/{deployments-Dw5Suk_D.js → deployments-COm00j8v.js} +48 -39
  114. package/dist/{deployments-Dw5Suk_D.js.map → deployments-COm00j8v.js.map} +1 -1
  115. package/dist/deployments-uLDgrxCp.cjs +2 -0
  116. package/dist/deployments-uLDgrxCp.cjs.map +1 -0
  117. package/dist/deployments.json +30 -21
  118. package/dist/generated-CkZm1EVH.cjs +3 -0
  119. package/dist/generated-CkZm1EVH.cjs.map +1 -0
  120. package/dist/{generated-krkFnwbV.js → generated-DRbljODL.js} +2314 -1284
  121. package/dist/generated-DRbljODL.js.map +1 -0
  122. package/dist/index.cjs +1 -1
  123. package/dist/index.d.ts +3 -0
  124. package/dist/index.d.ts.map +1 -1
  125. package/dist/index.js +185 -165
  126. package/dist/index.js.map +1 -1
  127. package/package.json +25 -1
  128. package/src/Actions/EventAction.ts +24 -5
  129. package/src/BoostCore.test.ts +77 -11
  130. package/src/BoostCore.ts +165 -4
  131. package/src/Budgets/ManagedBudgetWithFees.test.ts +14 -14
  132. package/src/Budgets/ManagedBudgetWithFeesV2.test.ts +3 -3
  133. package/src/Incentives/AllowListIncentive.test.ts +5 -5
  134. package/src/Incentives/CGDAIncentive.test.ts +6 -6
  135. package/src/Incentives/ERC1155Incentive.test.ts +2 -2
  136. package/src/Incentives/ERC20Incentive.test.ts +6 -6
  137. package/src/Incentives/ERC20PeggedVariableCriteriaIncentiveV2.test.ts +5 -5
  138. package/src/Incentives/ERC20VariableCriteriaIncentiveV2.test.ts +5 -5
  139. package/src/Incentives/ERC20VariableIncentive.test.ts +7 -8
  140. package/src/Incentives/PointsIncentive.test.ts +5 -5
  141. package/src/Validators/LimitedSignerValidator.test.ts +1 -1
  142. package/src/Validators/LimitedSignerValidator.ts +9 -10
  143. package/src/Validators/LimitedSignerValidatorV2.test.ts +231 -0
  144. package/src/Validators/LimitedSignerValidatorV2.ts +707 -0
  145. package/src/Validators/PayableLimitedSignerValidator.test.ts +1 -1
  146. package/src/Validators/PayableLimitedSignerValidator.ts +0 -1
  147. package/src/Validators/PayableLimitedSignerValidatorV2.test.ts +202 -0
  148. package/src/Validators/PayableLimitedSignerValidatorV2.ts +688 -0
  149. package/src/Validators/SignerValidator.ts +4 -2
  150. package/src/Validators/SignerValidatorV2.test.ts +163 -0
  151. package/src/Validators/SignerValidatorV2.ts +635 -0
  152. package/src/Validators/Validator.ts +45 -2
  153. package/src/index.ts +3 -0
  154. package/dist/Validator-BEUqV28V.js.map +0 -1
  155. package/dist/Validator-FxcxYKhR.cjs +0 -2
  156. package/dist/Validator-FxcxYKhR.cjs.map +0 -1
  157. package/dist/componentInterfaces-BZ3fSNkT.cjs +0 -2
  158. package/dist/componentInterfaces-BZ3fSNkT.cjs.map +0 -1
  159. package/dist/componentInterfaces-D2s6AXlV.js +0 -25
  160. package/dist/componentInterfaces-D2s6AXlV.js.map +0 -1
  161. package/dist/deployments-DimWVnA4.cjs +0 -2
  162. package/dist/deployments-DimWVnA4.cjs.map +0 -1
  163. package/dist/generated-Cf82M-QP.cjs +0 -3
  164. package/dist/generated-Cf82M-QP.cjs.map +0 -1
  165. package/dist/generated-krkFnwbV.js.map +0 -1
@@ -1,3 +1,3 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./generated-Cf82M-QP.cjs"),P=require("@wagmi/core"),u=require("viem"),Q=require("./deployments-DimWVnA4.cjs"),X=require("./Actions/Action.cjs"),Z=require("./Actions/EventAction.cjs"),T=require("./AllowList-DaX239DR.cjs"),f0=require("./AllowLists/SimpleAllowList.cjs"),e0=require("./SimpleDenyList-D5AoBdVi.cjs"),a0=require("./Auth/PassthroughAuth.cjs"),v=require("./Boost.cjs"),R=require("./Budget-WIB8IJoM.cjs"),V=require("./Budgets/ManagedBudget.cjs"),t0=require("./Deployable/Deployable.cjs"),L=require("./Deployable/DeployableTargetWithRBAC.cjs"),b0=require("./Incentives/AllowListIncentive.cjs"),c0=require("./Incentives/CGDAIncentive.cjs"),d0=require("./Incentives/ERC20Incentive.cjs"),x=require("./Incentive-gT7z-4v3.cjs"),s0=require("./Incentives/ERC20PeggedVariableCriteriaIncentiveV2.cjs"),n0=require("./Incentives/ERC20VariableCriteriaIncentiveV2.cjs"),i0=require("./Incentives/PointsIncentive.cjs"),o0=require("./Validators/LimitedSignerValidator.cjs"),F=require("./Validator-FxcxYKhR.cjs"),r0=require("./Validators/SignerValidator.cjs"),B=require("./errors.cjs"),l=require("./utils.cjs"),$=require("viem/actions"),M=require("viem/utils"),u0=require("./Incentives/ERC20VariableIncentive.cjs"),j="0x60a0604052306080523480156012575f80fd5b506019601d565b6080565b63409feecd1980546001811615603a5763f92ee8a95f526004601cfd5b6001600160401b03808260011c14607b578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60805161544961009f5f395f8181613308015261333f01526154495ff3fe608060405260043610610229575f3560e01c8063730f9c5711610131578063d73792a9116100ac578063eccc19a61161007c578063f2fde38b11610062578063f2fde38b14610652578063fee81cf414610665578063fefceca914610696575f80fd5b8063eccc19a614610620578063f04e283e1461063f575f80fd5b8063d73792a914610590578063dd7dc9a9146105a5578063dd98558c146105c5578063e21ff73114610601575f80fd5b8063a92647dc11610101578063c0c53b8b116100e7578063c0c53b8b14610533578063caa1647b14610552578063d5137b5214610571575f80fd5b8063a92647dc146104c3578063b0e21e8a146104e2575f80fd5b8063730f9c571461044b5780637b1039991461045e5780638da5cb5b1461047d5780638fe4f523146104b0575f80fd5b806346877b1a116101c157806354d1f13d116101915780635edb9eb0116101775780635edb9eb0146104115780635f32c23e14610424578063715018a614610443575f80fd5b806354d1f13d146103be57806354fd4d50146103c6575f80fd5b806346877b1a1461034b5780634f1ef2861461036a5780635045b8661461037d57806352d1902d1461039c575f80fd5b806325692962116101fc57806325692962146102c1578063346339d5146102c957806339a51be5146102f557806343bc42d31461032c575f80fd5b806313c8e2de1461022d57806316614282146102625780631fa2acdc14610283578063219f71f0146102a2575b5f80fd5b348015610238575f80fd5b5061024c6102473660046143cd565b6106f9565b6040516102599190614427565b60405180910390f35b34801561026d575f80fd5b5061028161027c366004614525565b61082e565b005b34801561028e575f80fd5b5061028161029d366004614588565b610fa1565b3480156102ad575f80fd5b506102816102bc3660046145ee565b611716565b610281611758565b3480156102d4575f80fd5b506102e86102e33660046143cd565b6117a5565b6040516102599190614676565b348015610300575f80fd5b50600354610314906001600160a01b031681565b6040516001600160a01b039091168152602001610259565b348015610337575f80fd5b506102816103463660046146d4565b61185a565b348015610356575f80fd5b506102816103653660046145ee565b6118b5565b6102816103783660046146ef565b6118f7565b348015610388575f80fd5b50600454610314906001600160a01b031681565b3480156103a7575f80fd5b506103b06119ac565b604051908152602001610259565b6102816119da565b3480156103d1575f80fd5b50604080518082018252600581527f312e312e3000000000000000000000000000000000000000000000000000000060208201529051610259919061476e565b34801561041c575f80fd5b505f546103b0565b34801561042f575f80fd5b5061028161043e366004614780565b611a13565b610281611bac565b6102816104593660046147a0565b611bbf565b348015610469575f80fd5b50600154610314906001600160a01b031681565b348015610488575f80fd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754610314565b6102816104be366004614817565b612026565b3480156104ce575f80fd5b50600254610314906001600160a01b031681565b3480156104ed575f80fd5b5060045461051a9074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610259565b34801561053e575f80fd5b5061028161054d36600461487c565b61203b565b34801561055d575f80fd5b5061028161056c3660046146d4565b612186565b34801561057c575f80fd5b5061031461058b3660046148c4565b61220e565b34801561059b575f80fd5b5061051a61271081565b3480156105b0575f80fd5b5060055461051a9067ffffffffffffffff1681565b3480156105d0575f80fd5b506105e46105df36600461490e565b61243a565b604080519283526001600160a01b03909116602083015201610259565b34801561060c575f80fd5b5061024c61061b36600461495b565b6128ec565b34801561062b575f80fd5b5061028161063a3660046145ee565b61311d565b61028161064d3660046145ee565b61315f565b6102816106603660046145ee565b61319c565b348015610670575f80fd5b506103b061067f3660046145ee565b63389a75e1600c9081525f91909152602090205490565b3480156106a1575f80fd5b506106e86106b03660046143cd565b60066020525f9081526040902080546001820154600283015460039093015460ff8316936101009093046001600160a01b0316929085565b60405161025995949392919061499a565b60408051610100810182525f808252602082018190529181018290526060808201839052608082015260a0810182905260c0810182905260e08101919091525f828154811061074a5761074a6149d3565b5f9182526020918290206040805161010081018252600890930290910180546001600160a01b039081168452600182015481168486015260028201548116848401526003820154166060840152600481018054835181870281018701909452808452939491936080860193928301828280156107ed57602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116107cf575b5050509183525050600582015467ffffffffffffffff166020820152600682015460408201526007909101546001600160a01b031660609091015292915050565b3068929eee149b4bd21268540361084c5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f80858154811061086b5761086b6149d3565b905f5260205f20906008020190505f81600401858154811061088f5761088f6149d3565b5f9182526020822001546040517f4e7165a20000000000000000000000000000000000000000000000000000000081526001600160a01b0390911692508290634e7165a2906108e49088908890600401614a29565b5f60405180830381865afa1580156108fe573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526109259190810190614b83565b905080515f03610961576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f818060200190518101906109769190614bc0565b90505f80808060018551600281111561099157610991614610565b14806109ae57505f855160028111156109ac576109ac614610565b145b15610a12575f85606001518060200190518101906109cc9190614c68565b805160058b0154909650909150612710906109f19067ffffffffffffffff1687614cd7565b6109fb9190614cee565b9350610a078486614d26565b908190529150610ac8565b600285516002811115610a2757610a27614610565b03610a96575f8560600151806020019051810190610a459190614d39565b602081015160058b015490965090915061271090610a6d9067ffffffffffffffff1687614cd7565b610a779190614cee565b9350610a838486614d26565b6020820181905290519092509050610ac8565b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610ad38d8d6131c2565b5f8181526006602052604081206001810180549394509092879290610af9908490614d26565b909155505085159150610f87905057600185516002811115610b1d57610b1d614610565b1480610b3a57505f85516002811115610b3857610b38614610565b145b15610d595760208501516040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490526001600160a01b038216906323b872dd906064016020604051808303815f875af1158015610bad573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd19190614dc6565b506040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0389811660048301526024820187905282169063095ea7b3906044016020604051808303815f875af1158015610c37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c5b9190614dc6565b506040517f30db555f000000000000000000000000000000000000000000000000000000008152600481018690526001600160a01b038916906330db555f906024015f604051808303815f87803b158015610cb4575f80fd5b505af1158015610cc6573d5f803e3d5ffd5b50506040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b038b811660048301525f60248301528416925063095ea7b391506044016020604051808303815f875af1158015610d2e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d529190614dc6565b5050610f47565b60208501516040517ff242432a000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018390526064810184905260a060848201525f60a48201526001600160a01b0382169063f242432a9060c4015f604051808303815f87803b158015610dd6575f80fd5b505af1158015610de8573d5f803e3d5ffd5b50506040517fa22cb4650000000000000000000000000000000000000000000000000000000081526001600160a01b038b81166004830152600160248301528416925063a22cb46591506044015f604051808303815f87803b158015610e4c575f80fd5b505af1158015610e5e573d5f803e3d5ffd5b50506040517f30db555f000000000000000000000000000000000000000000000000000000008152600481018890526001600160a01b038b1692506330db555f91506024015f604051808303815f87803b158015610eba575f80fd5b505af1158015610ecc573d5f803e3d5ffd5b50506040517fa22cb4650000000000000000000000000000000000000000000000000000000081526001600160a01b038b811660048301525f60248301528416925063a22cb46591506044015f604051808303815f87803b158015610f2f575f80fd5b505af1158015610f41573d5f803e3d5ffd5b50505050505b604080518581526020810185905233918d918f917f2ad351412a5089670d592612b17f248e8526b92879399b24b35421b4c8f31876910160405180910390a45b50505050505050503868929eee149b4bd212685550505050565b3068929eee149b4bd212685403610fbf5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808681548110610fde57610fde6149d3565b905f5260205f20906008020190505f816004018681548110611002576110026149d3565b5f9182526020822001546040517f4e7165a20000000000000000000000000000000000000000000000000000000081526001600160a01b0390911692508290634e7165a2906110579089908990600401614a29565b5f60405180830381865afa158015611071573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526110989190810190614b83565b905080515f036110d4576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f818060200190518101906110e99190614bc0565b90505f6001600160a01b038616156111015785611110565b60038501546001600160a01b03165b905061111b816131f1565b5f808060018551600281111561113357611133614610565b148061115057505f8551600281111561114e5761114e614610565b145b156111d7575f856060015180602001905181019061116e9190614c68565b805160058b0154909550909150612710906111939067ffffffffffffffff1686614cd7565b61119d9190614cee565b92506111a98385614d26565b8082526040805160208101839052919350015b60408051601f19818403018152919052606087015250611262565b6002855160028111156111ec576111ec614610565b03610a96575f856060015180602001905181019061120a9190614d39565b602081015160058b0154909550909150612710906112329067ffffffffffffffff1686614cd7565b61123c9190614cee565b92506112488385614d26565b60208083018290526040519193506111bc91839101614de1565b30604080870191909152515f9061127d908790602001614e0f565b60408051601f19818403018152908290527ffa4ca9b100000000000000000000000000000000000000000000000000000000825291506001600160a01b0386169063fa4ca9b1906112d290849060040161476e565b6020604051808303815f875af11580156112ee573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113129190614dc6565b611348576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6113538f8f6131c2565b5f8181526006602052604081206001810180549394509092879290611379908490614d26565b9091555050851592506116fb9150505760018551600281111561139e5761139e614610565b14806113bb57505f855160028111156113b9576113b9614610565b145b1561154c5760208501516040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0389811660048301526024820186905282169063095ea7b3906044016020604051808303815f875af115801561142a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061144e9190614dc6565b506040517f30db555f000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b038916906330db555f906024015f604051808303815f87803b1580156114a7575f80fd5b505af11580156114b9573d5f803e3d5ffd5b50506040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b038b811660048301525f60248301528416925063095ea7b391506044016020604051808303815f875af1158015611521573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115459190614dc6565b50506116ac565b60208501516040517fa22cb4650000000000000000000000000000000000000000000000000000000081526001600160a01b0389811660048301526001602483015282169063a22cb465906044015f604051808303815f87803b1580156115b1575f80fd5b505af11580156115c3573d5f803e3d5ffd5b50506040517f30db555f000000000000000000000000000000000000000000000000000000008152600481018790526001600160a01b038b1692506330db555f91506024015f604051808303815f87803b15801561161f575f80fd5b505af1158015611631573d5f803e3d5ffd5b50506040517fa22cb4650000000000000000000000000000000000000000000000000000000081526001600160a01b038b811660048301525f60248301528416925063a22cb46591506044015f604051808303815f87803b158015611694575f80fd5b505af11580156116a6573d5f803e3d5ffd5b50505050505b336001600160a01b03168c8e7f2ad351412a5089670d592612b17f248e8526b92879399b24b35421b4c8f3187686866040516116f2929190918252602082015260400190565b60405180910390a45b50505050505050503868929eee149b4bd21268555050505050565b61171e6132d0565b600480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b6117dc6040805160a08101909152805f81526020015f6001600160a01b031681526020015f81526020015f81526020015f81525090565b5f8281526006602052604090819020815160a081019092528054829060ff16600281111561180c5761180c614610565b600281111561181d5761181d614610565b8152815461010090046001600160a01b03166020820152600182015460408201526002820154606082015260039091015460809091015292915050565b6118626132d0565b6004805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b6118bd6132d0565b600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6118ff613305565b61190883613334565b8260601b60601c92503d5f526352d1902d6001527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80602060016004601d885afa511461195d576355299b496001526004601dfd5b837fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f38a283905580156119a757604051818382375f388383875af46119a5573d5f823e3d81fd5b505b505050565b5f6119b561333c565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b3068929eee149b4bd212685403611a315763ab143c065f526004601cfd5b3068929eee149b4bd21268555f611a4883836131c2565b5f818152600660205260408120815492935091819086908110611a6d57611a6d6149d3565b905f5260205f2090600802016004018481548110611a8d57611a8d6149d3565b5f918252602082200154600284015460018501546001600160a01b03909216935090611abc9061271090614cd7565b611ac69190614cee565b90505f611ad3848461336b565b905081811115611b97575f611ae88383614e60565b90505f61271067ffffffffffffffff16866002015483611b089190614cd7565b611b129190614cee565b9050611b1e86826134b9565b80866001015410611b475780866001015f828254611b3c9190614e60565b90915550611b4e9050565b5f60018701555b6003546040518281526001600160a01b039091169089908b907f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b179060200160405180910390a450505b50505050503868929eee149b4bd21268555050565b611bb46132d0565b611bbd5f6135f5565b565b3068929eee149b4bd212685403611bdd5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808781548110611bfc57611bfc6149d3565b905f5260205f20906008020190505f611c1588886131c2565b5f81815260066020526040812060048501805493945090928a908110611c3d57611c3d6149d3565b5f9182526020909120015460028501546040517fe3f756de0000000000000000000000000000000000000000000000000000000081526001600160a01b03928316935091169063e3f756de90611c9b9088908b908b90600401614e73565b602060405180830381865afa158015611cb6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cda9190614dc6565b611d10576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018401546040517f703b69000000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063703b6900903490611d65908e908e908b908e908e90600401614e9e565b60206040518083038185885af1158015611d81573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611da69190614dc6565b611ddc576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81545f9061010090046001600160a01b0316611df8575f611e02565b611e02838361336b565b6040517fbb1757cf0000000000000000000000000000000000000000000000000000000081529091506001600160a01b0383169063bb1757cf90611e4e9089908c908c90600401614e73565b6020604051808303815f875af1158015611e6a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e8e9190614dc6565b611ed3578588886040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401611eca93929190614e73565b60405180910390fd5b82545f9061010090046001600160a01b0316611eef575f611ef9565b611ef9848461336b565b90505f818311611f09575f611f13565b611f138284614e60565b90505f61271067ffffffffffffffff16866002015483611f339190614cd7565b611f3d9190614cee565b90508015611fc357611f4f86826134b9565b80866001015f828254611f629190614e60565b9250508190555060035f9054906101000a90046001600160a01b03166001600160a01b03168d8f7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b1784604051611fba91815260200190565b60405180910390a45b886001600160a01b03168d8f7f0f29bbf4ce25d2346bbeb8a898e24e5d6d7d1d19bb895e71faecac833b2595478f8f8f60405161200293929190614e73565b60405180910390a450505050505050503868929eee149b4bd2126855505050505050565b612034858585858533611bbf565b5050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf601132805460038255801561208c5760018160011c14303b106120835763f92ee8a95f526004601cfd5b818160ff1b1b91505b506120968261364d565b600180546001600160a01b038087167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179092556003805492861692909116919091179055600480547503e800000000000000000000000000000000000000007fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909116179055600580547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166103e817905580156119a5576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a150505050565b61218e6132d0565b61271067ffffffffffffffff8216106121d3576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600580547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff92909216919091179055565b5f3068929eee149b4bd21268540361222d5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f80848154811061224c5761224c6149d3565b5f918252602090912060089091020160078101549091506001600160a01b031633146122a4576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60038101546122bb906001600160a01b03166131f1565b6004808201805491549091905f906001600160a01b03166122dc575f61236e565b6004546040516001600160a01b039091169063c7f1ecff90612304908a908a90602001614ed7565b6040516020818303038152906040526040518263ffffffff1660e01b815260040161232f919061476e565b602060405180830381865afa15801561234a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061236e9190614f8e565b90506123a461237c87614ff6565b600386015460058701546001600160a01b039091169067ffffffffffffffff16848b876136a3565b83546001810185555f858152602080822090920180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03851690811790915560405191825292975084918a917f500ae5072ea307af9f1d7b29f92e0379b973527e56e000e5445b7b9f5fbb09ae910160405180910390a4505050503868929eee149b4bd212685592915050565b5f803068929eee149b4bd21268540361245a5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808581548110612479576124796149d3565b5f9182526020918290206040805161010081018252600890930290910180546001600160a01b0390811684526001820154811684860152600282015481168484015260038201541660608401526004810180548351818702810187019094528084529394919360808601939283018282801561251c57602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116124fe575b5050509183525050600582015467ffffffffffffffff166020820152600682015460408201526007909101546001600160a01b0390811660609283015290820151919250163314612599576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6125a486866131c2565b5f8181526006602052604081209192506125c0898b018b61505f565b90505f81602001518060200190518101906125db91906150fc565b90505f61271067ffffffffffffffff168460020154836125fb9190614cd7565b6126059190614cee565b90508015612773576001845460ff16600281111561262557612625614610565b148061264557505f845460ff16600281111561264357612643614610565b145b1561266d5782518454612668916101009091046001600160a01b03169083613a43565b61272a565b6002845460ff16600281111561268557612685614610565b0361272a578354835160038601546040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03928316602482015260448101919091526064810184905260a060848201525f60a4820152610100909204169063f242432a9060c4015f604051808303815f87803b158015612713575f80fd5b505af1158015612725573d5f803e3d5ffd5b505050505b825f01516001600160a01b0316898b7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b178460405161276a91815260200190565b60405180910390a45b5f8087608001518b8151811061278b5761278b6149d3565b60200260200101516001600160a01b031663474f5a44866040516020016127b29190615113565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016127dd919061476e565b60408051808303815f875af11580156127f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061281c9190615140565b91509150815f0361285f57338e8e6040517f9ecd71a9000000000000000000000000000000000000000000000000000000008152600401611eca93929190614e73565b82866001015f8282546128729190614e60565b90915550508451604080518d8152602081018590526001600160a01b038481169282019290925291169033908e907f344fdf618273ad01bc14c75053d2c1dd67bb9384ba92c2d44a3c58c55306a2ec9060600160405180910390a43868929eee149b4bd2126855909d909c509a5050505050505050505050565b60408051610100810182525f808252602082018190529181018290526060808201839052608082015260a0810182905260c0810182905260e081019190915260025433906001600160a01b0316158015906129c957506002546040517ffe9fbb800000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301529091169063fe9fbb8090602401602060405180830381865afa1580156129a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129c79190614dc6565b155b15612a00576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3068929eee149b4bd212685403612a1e5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f612a6985858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250613a9692505050565b806020019051810190612a7c9190615268565b9050612a8a815f01516131f1565b5f805460018101825590805260e082015160089091027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56a810180547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b039485161790915583517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e566830180549092169084161790556004547f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639091019116612b8e5760a0820151600454612b89919074010000000000000000000000000000000000000000900467ffffffffffffffff16615393565b612c26565b60a0820151600480546040517fb1539a6b0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169163b1539a6b91612bdd918b918b9101614a29565b602060405180830381865afa158015612bf8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c1c91906153b3565b612c269190615393565b6005820180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff9290921691909117905560c082015160068201556020820151612c9d907fe671579500000000000000000000000000000000000000000000000000000000906001613c21565b81547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03919091161781556060820151612d02907fe2089f7900000000000000000000000000000000000000000000000000000000906001613c21565b6002820180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161790556004545f9116612d48575f612dd1565b600480546040517fc7f1ecff0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169163c7f1ecff91612d92918b918b9101614a29565b602060405180830381865afa158015612dad573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dd19190614f8e565b608084015184516005850154929350612df49267ffffffffffffffff1684613c42565b8051612e0a91600485019160209091019061433e565b506040830151602001516001600160a01b031615612e5757612e527f5912b89c0000000000000000000000000000000000000000000000000000000084604001516001613c21565b612f0f565b81546040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f5912b89c0000000000000000000000000000000000000000000000000000000060048201526001600160a01b03909116906301ffc9a790602401602060405180830381865afa158015612ed5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ef99190614dc6565b612f03575f612f0f565b81546001600160a01b03165b6001830180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169182179055612fa6576040517fe1c444480000000000000000000000000000000000000000000000000000000081527f5912b89c0000000000000000000000000000000000000000000000000000000060048201525f6024820152604401611eca565b815460078301545f546001600160a01b039283169290911690612fcb90600190614e60565b6004850154600186015460028701546003880154604080519485526001600160a01b03938416602086015291831684830152919091166060830152517f116812d3ad4507d72f2c428b63246d594ca055a1dc119394285504c23d1f34cd9181900360800190a4604080516101008101825283546001600160a01b039081168252600185015481166020808401919091526002860154821683850152600386015490911660608301526004850180548451818402810184019095528085529293869360808601939192918301828280156130cb57602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116130ad575b5050509183525050600582015467ffffffffffffffff166020820152600682015460408201526007909101546001600160a01b03166060909101523868929eee149b4bd2126855979650505050505050565b6131256132d0565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6131676132d0565b63389a75e1600c52805f526020600c20805442111561318d57636f5e88185f526004601cfd5b5f9055613199816135f5565b50565b6131a46132d0565b8060601b6131b957637448fbae5f526004601cfd5b613199816135f5565b604080516020808201859052818301849052825180830384018152606090920190925280519101205b92915050565b61321b7fe49cedd70000000000000000000000000000000000000000000000000000000082613d74565b6040517ffe9fbb800000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0382169063fe9fbb8090602401602060405180830381865afa158015613276573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061329a9190614dc6565b613199576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611bbd576382b429005f526004601cfd5b307f000000000000000000000000000000000000000000000000000000000000000003611bbd57611bbd613e92565b6131996132d0565b307f000000000000000000000000000000000000000000000000000000000000000014611bbd57611bbd613e92565b5f6001835460ff16600281111561338457613384614610565b14806133a457505f835460ff1660028111156133a2576133a2614610565b145b1561343b5782546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152610100909204909116906370a08231906024015b602060405180830381865afa158015613410573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061343491906150fc565b90506131eb565b6002835460ff16600281111561345357613453614610565b036134b157825460038401546040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301526024820192909252610100909204169062fdd58e906044016133f5565b505f92915050565b6001825460ff1660028111156134d1576134d1614610565b14806134f157505f825460ff1660028111156134ef576134ef614610565b145b15613534576003548254613517916001600160a01b036101009092048216911683613a43565b81546135309061010090046001600160a01b0316613e9f565b5050565b6002825460ff16600281111561354c5761354c614610565b0361353057815460038054908401546040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03928316602482015260448101919091526064810184905260a060848201525f60a4820152610100909204169063f242432a9060c4015f604051808303815f87803b1580156135db575f80fd5b505af11580156135ed573d5f803e3d5ffd5b505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b6001600160a01b03167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b5f80876040015190506136da7fa9216705000000000000000000000000000000000000000000000000000000008960200151613d74565b87516137495760208801516040517fe1c444480000000000000000000000000000000000000000000000000000000081527fa92167050000000000000000000000000000000000000000000000000000000060048201526001600160a01b039091166024820152604401611eca565b6137747fa921670500000000000000000000000000000000000000000000000000000000895f613c21565b91505f826001600160a01b0316634e7165a2836040518263ffffffff1660e01b81526004016137a3919061476e565b5f60405180830381865afa1580156137bd573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526137e49190810190614b83565b905080515f146139c5575f806137fa838a613f5b565b6040517ffa4ca9b100000000000000000000000000000000000000000000000000000000815291935091506001600160a01b038b169063fa4ca9b19061384490859060040161476e565b6020604051808303815f875af1158015613860573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138849190614dc6565b6138ba576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffa4ca9b10000000000000000000000000000000000000000000000000000000081526001600160a01b038b169063fa4ca9b1906138ff90869060040161476e565b6020604051808303815f875af115801561391b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061393f9190614dc6565b613975576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8380602001905181019061398a9190614bc0565b90506139c188886001600160a01b038c166139a95783602001516139ab565b8b5b858e67ffffffffffffffff16865f01518b6140f4565b5050505b6040517f439fab910000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063439fab9190613a0a90859060040161476e565b5f604051808303815f87803b158015613a21575f80fd5b505af1158015613a33573d5f803e3d5ffd5b5050505050509695505050505050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f511416613a8c57803d853b151710613a8c576390b8ec185f526004601cfd5b505f603452505050565b6060815115613c1c576040519050600482018051835184602001017f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f6020850183198552866020015b8051805f1a613b7457600190811a0160808111613b17576002820191508036843791820191848210613b115750613c02565b50613adf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83529182017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80019160029190910190848210613b115750613c02565b80835283811684011783171980157fc0c8c8d0c8e8d0d8c8e8e0e8d0d8e0f0c8d0e8d0e0e0d8f0d0d0e0d8f8f8f8f8601f6f8421084210842108cc6318c6db6d54be660204081020408185821060071b86811c67ffffffffffffffff1060061b1795861c0260181a1c161a90911860031c019182019101838110613adf5783811115613c0257838103820391505b509290935250601f198382030183525f8152602001604052505b919050565b5f613c30848460200151613d74565b613c3a8383614230565b949350505050565b5f805460609190613c5590600190614e60565b9050855167ffffffffffffffff811115613c7157613c71614a3c565b604051908082528060200260200182016040528015613c9a578160200160208202803683370190505b5091505f5b8651811015613d6a57613ccf878281518110613cbd57613cbd6149d3565b602002602001015187878786866136a3565b838281518110613ce157613ce16149d3565b60200260200101906001600160a01b031690816001600160a01b031681525050828181518110613d1357613d136149d3565b60200260200101516001600160a01b031681837f500ae5072ea307af9f1d7b29f92e0379b973527e56e000e5445b7b9f5fbb09ae6001604051613d5a911515815260200190565b60405180910390a4600101613c9f565b5050949350505050565b6001600160a01b0381161580613e2857506040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527fffffffff00000000000000000000000000000000000000000000000000000000831660048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015613e02573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e269190614dc6565b155b15613530576040517fe1c444480000000000000000000000000000000000000000000000000000000081527fffffffff00000000000000000000000000000000000000000000000000000000831660048201526001600160a01b0382166024820152604401611eca565b639f03a0265f526004601cfd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa158015613efc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f2091906150fc565b90505f81118015613f3c575060055467ffffffffffffffff1681105b1561353057600354613530906001600160a01b03848116911683613a43565b60605f8084806020019051810190613f739190614bc0565b905083600182516002811115613f8b57613f8b614610565b1480613fa857505f82516002811115613fa657613fa6614610565b145b15614056575f8260600151806020019051810190613fc69190614c68565b80519091505f9061271090613fe69067ffffffffffffffff861690614cd7565b613ff09190614cee565b6040805160208082018352838252825190810184905292935091015b60408051601f198184030181529181526060870191909152308682015251614038908690602001614e0f565b604051602081830303815290604052829650965050505050506140ed565b60028251600281111561406b5761406b614610565b03610a96575f82606001518060200190518101906140899190614d39565b90505f61271067ffffffffffffffff168367ffffffffffffffff1683602001516140b39190614cd7565b6140bd9190614cee565b60408051606081018252845181526020808201849052858301518284015291519293509161400c91839101614de1565b9250929050565b5f600283600281111561410957614109614610565b03614126578180602001905181019061412291906153ce565b5090505b5f6040518060a0016040528085600281111561414457614144614610565b8152602001886001600160a01b031681526020018781526020018681526020018381525090508060065f6141788c8c6131c2565b815260208101919091526040015f208151815482907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660018360028111156141c3576141c3614610565b0217905550602082015181546001600160a01b03909116610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff9091161781556040820151600182015560608201516002820155608090910151600390910155505050505050505050565b81515f90614242578260200151614258565b61425883602001516001600160a01b03166142e7565b835190915080156142665750815b156131eb5760408084015190517f439fab910000000000000000000000000000000000000000000000000000000081526001600160a01b0383169163439fab91916142b4919060040161476e565b5f604051808303815f87803b1580156142cb575f80fd5b505af11580156142dd573d5f803e3d5ffd5b5050505092915050565b5f6131eb5f835f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f09050806143345763301164255f526004601cfd5b5f60215292915050565b828054828255905f5260205f209081019282156143a9579160200282015b828111156143a957825182547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0390911617825560209092019160019091019061435c565b506143b59291506143b9565b5090565b5b808211156143b5575f81556001016143ba565b5f602082840312156143dd575f80fd5b5035919050565b5f8151808452602084019350602083015f5b8281101561441d5781516001600160a01b03168652602095860195909101906001016143f6565b5093949350505050565b602081526001600160a01b0382511660208201525f602083015161445660408401826001600160a01b03169052565b5060408301516001600160a01b03811660608401525060608301516001600160a01b038116608084015250608083015161010060a084015261449c6101208401826143e4565b905060a08401516144b960c085018267ffffffffffffffff169052565b5060c084015160e084015260e08401516144df6101008501826001600160a01b03169052565b509392505050565b5f8083601f8401126144f7575f80fd5b50813567ffffffffffffffff81111561450e575f80fd5b6020830191508360208285010111156140ed575f80fd5b5f805f8060608587031215614538575f80fd5b8435935060208501359250604085013567ffffffffffffffff81111561455c575f80fd5b614568878288016144e7565b95989497509550505050565b6001600160a01b0381168114613199575f80fd5b5f805f805f6080868803121561459c575f80fd5b8535945060208601359350604086013567ffffffffffffffff8111156145c0575f80fd5b6145cc888289016144e7565b90945092505060608601356145e081614574565b809150509295509295909350565b5f602082840312156145fe575f80fd5b813561460981614574565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60038110614672577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9052565b5f60a08201905061468882845161463d565b6001600160a01b03602084015116602083015260408301516040830152606083015160608301526080830151608083015292915050565b67ffffffffffffffff81168114613199575f80fd5b5f602082840312156146e4575f80fd5b8135614609816146bf565b5f805f60408486031215614701575f80fd5b833561470c81614574565b9250602084013567ffffffffffffffff811115614727575f80fd5b614733868287016144e7565b9497909650939450505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6146096020830184614740565b5f8060408385031215614791575f80fd5b50508035926020909101359150565b5f805f805f8060a087890312156147b5575f80fd5b863595506020870135945060408701356147ce81614574565b9350606087013567ffffffffffffffff8111156147e9575f80fd5b6147f589828a016144e7565b909450925050608087013561480981614574565b809150509295509295509295565b5f805f805f6080868803121561482b575f80fd5b8535945060208601359350604086013561484481614574565b9250606086013567ffffffffffffffff81111561485f575f80fd5b61486b888289016144e7565b969995985093965092949392505050565b5f805f6060848603121561488e575f80fd5b833561489981614574565b925060208401356148a981614574565b915060408401356148b981614574565b809150509250925092565b5f80604083850312156148d5575f80fd5b82359150602083013567ffffffffffffffff8111156148f2575f80fd5b830160608186031215614903575f80fd5b809150509250929050565b5f805f8060608587031215614921575f80fd5b843567ffffffffffffffff811115614937575f80fd5b614943878288016144e7565b90989097506020870135966040013595509350505050565b5f806020838503121561496c575f80fd5b823567ffffffffffffffff811115614982575f80fd5b61498e858286016144e7565b90969095509350505050565b60a081016149a8828861463d565b6001600160a01b03861660208301528460408301528360608301528260808301529695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b81835281816020850137505f602082840101525f6020601f19601f840116840101905092915050565b602081525f613c3a602083018486614a00565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516080810167ffffffffffffffff81118282101715614a8c57614a8c614a3c565b60405290565b6040516060810167ffffffffffffffff81118282101715614a8c57614a8c614a3c565b604051610100810167ffffffffffffffff81118282101715614a8c57614a8c614a3c565b604051601f8201601f1916810167ffffffffffffffff81118282101715614b0257614b02614a3c565b604052919050565b5f67ffffffffffffffff821115614b2357614b23614a3c565b50601f01601f191660200190565b5f82601f830112614b40575f80fd5b8151614b53614b4e82614b0a565b614ad9565b818152846020838601011115614b67575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f60208284031215614b93575f80fd5b815167ffffffffffffffff811115614ba9575f80fd5b613c3a84828501614b31565b8051613c1c81614574565b5f60208284031215614bd0575f80fd5b815167ffffffffffffffff811115614be6575f80fd5b820160808185031215614bf7575f80fd5b614bff614a69565b815160038110614c0d575f80fd5b81526020820151614c1d81614574565b60208201526040820151614c3081614574565b6040820152606082015167ffffffffffffffff811115614c4e575f80fd5b614c5a86828501614b31565b606083015250949350505050565b5f6020828403128015614c79575f80fd5b506040516020810167ffffffffffffffff81118282101715614c9d57614c9d614a3c565b6040529151825250919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820281158282048414176131eb576131eb614caa565b5f82614d21577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b808201808211156131eb576131eb614caa565b5f60208284031215614d49575f80fd5b815167ffffffffffffffff811115614d5f575f80fd5b820160608185031215614d70575f80fd5b614d78614a92565b8151815260208083015190820152604082015167ffffffffffffffff811115614d9f575f80fd5b614dab86828501614b31565b604083015250949350505050565b8015158114613199575f80fd5b5f60208284031215614dd6575f80fd5b815161460981614db9565b6020815281516020820152602082015160408201525f6040830151606080840152613c3a6080840182614740565b60208152614e2160208201835161463d565b6001600160a01b0360208301511660408201526001600160a01b0360408301511660608201525f6060830151608080840152613c3a60a0840182614740565b818103818111156131eb576131eb614caa565b6001600160a01b0384168152604060208201525f614e95604083018486614a00565b95945050505050565b8581528460208201526001600160a01b0384166040820152608060608201525f614ecc608083018486614a00565b979650505050505050565b828152604060208201525f8235614eed81614db9565b151560408301526020830135614f0281614574565b6001600160a01b031660608301526040830135368490037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1018112614f45575f80fd5b830160208101903567ffffffffffffffff811115614f61575f80fd5b803603821315614f6f575f80fd5b60606080850152614f8460a085018284614a00565b9695505050505050565b5f60208284031215614f9e575f80fd5b815161460981614574565b5f82601f830112614fb8575f80fd5b8135614fc6614b4e82614b0a565b818152846020838601011115614fda575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60608236031215615006575f80fd5b61500e614a92565b823561501981614db9565b8152602083013561502981614574565b6020820152604083013567ffffffffffffffff811115615047575f80fd5b61505336828601614fa9565b60408301525092915050565b5f6020828403121561506f575f80fd5b813567ffffffffffffffff811115615085575f80fd5b820160408185031215615096575f80fd5b6040805190810167ffffffffffffffff811182821017156150b9576150b9614a3c565b60405281356150c781614574565b8152602082013567ffffffffffffffff8111156150e2575f80fd5b6150ee86828501614fa9565b602083015250949350505050565b5f6020828403121561510c575f80fd5b5051919050565b602081526001600160a01b0382511660208201525f6020830151604080840152613c3a6060840182614740565b5f8060408385031215615151575f80fd5b8251602084015190925061490381614574565b5f60608284031215615174575f80fd5b61517c614a92565b9050815161518981614db9565b8152602082015161519981614574565b6020820152604082015167ffffffffffffffff8111156151b7575f80fd5b61505384828501614b31565b5f82601f8301126151d2575f80fd5b815167ffffffffffffffff8111156151ec576151ec614a3c565b8060051b6151fc60208201614ad9565b91825260208185018101929081019086841115615217575f80fd5b6020860192505b83831015614f8457825167ffffffffffffffff81111561523c575f80fd5b61524b886020838a0101615164565b8352506020928301929091019061521e565b8051613c1c816146bf565b5f60208284031215615278575f80fd5b815167ffffffffffffffff81111561528e575f80fd5b820161010081850312156152a0575f80fd5b6152a8614ab5565b6152b182614bb5565b8152602082015167ffffffffffffffff8111156152cc575f80fd5b6152d886828501615164565b602083015250604082015167ffffffffffffffff8111156152f7575f80fd5b61530386828501615164565b604083015250606082015167ffffffffffffffff811115615322575f80fd5b61532e86828501615164565b606083015250608082015167ffffffffffffffff81111561534d575f80fd5b615359868285016151c3565b60808301525061536b60a0830161525d565b60a082015260c0828101519082015261538660e08301614bb5565b60e0820152949350505050565b67ffffffffffffffff81811683821601908111156131eb576131eb614caa565b5f602082840312156153c3575f80fd5b8151614609816146bf565b5f80604083850312156153df575f80fd5b8251602084015190925067ffffffffffffffff8111156153fd575f80fd5b61540985828601614b31565b915050925092905056fea2646970667358221220449bdc210b62ec7ba330e75d29b52774de2d9db8e414cd288c78517e229fb98a64736f6c634300081a0033";function W(s){const f=s.state.current,e=s.state.connections.get(f),a=e==null?void 0:e.accounts,t=a==null?void 0:a[0],b=s.chains.find(d=>d.id===(e==null?void 0:e.chainId)),c=s.state.status;switch(c){case"connected":return{address:t,addresses:a,chain:b,chainId:e==null?void 0:e.chainId,connector:e==null?void 0:e.connector,isConnected:!0,isConnecting:!1,isDisconnected:!1,isReconnecting:!1,status:c};case"reconnecting":return{address:t,addresses:a,chain:b,chainId:e==null?void 0:e.chainId,connector:e==null?void 0:e.connector,isConnected:!!t,isConnecting:!1,isDisconnected:!1,isReconnecting:!0,status:c};case"connecting":return{address:t,addresses:a,chain:b,chainId:e==null?void 0:e.chainId,connector:e==null?void 0:e.connector,isConnected:!1,isConnecting:!0,isDisconnected:!1,isReconnecting:!1,status:c};case"disconnected":return{address:void 0,addresses:void 0,chain:void 0,chainId:void 0,connector:void 0,isConnected:!1,isConnecting:!1,isDisconnected:!0,isReconnecting:!1,status:c}}}function h0(s){return s.state.chainId}function G(s,f,e){const a=s[f.name];if(typeof a=="function")return a;const t=s[e];return typeof t=="function"?t:b=>f(s,b)}const l0="2.13.8",g0=()=>`@wagmi/core@${l0}`;var k=function(s,f,e,a){if(e==="a"&&!a)throw new TypeError("Private accessor was defined without a getter");if(typeof f=="function"?s!==f||!a:!f.has(s))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?a:e==="a"?a.call(s):a?a.value:f.get(s)},D,U;class E extends Error{get docsBaseUrl(){return"https://wagmi.sh/core"}get version(){return g0()}constructor(f,e={}){var b;super(),D.add(this),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"WagmiCoreError"});const a=e.cause instanceof E?e.cause.details:(b=e.cause)!=null&&b.message?e.cause.message:e.details,t=e.cause instanceof E&&e.cause.docsPath||e.docsPath;this.message=[f||"An error occurred.","",...e.metaMessages?[...e.metaMessages,""]:[],...t?[`Docs: ${this.docsBaseUrl}${t}.html${e.docsSlug?`#${e.docsSlug}`:""}`]:[],...a?[`Details: ${a}`]:[],`Version: ${this.version}`].join(`
2
- `),e.cause&&(this.cause=e.cause),this.details=a,this.docsPath=t,this.metaMessages=e.metaMessages,this.shortMessage=f}walk(f){return k(this,D,"m",U).call(this,this,f)}}D=new WeakSet,U=function s(f,e){return e!=null&&e(f)?f:f.cause?k(this,D,"m",s).call(this,f.cause,e):f};class w0 extends E{constructor(){super("Connector not connected."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorNotConnectedError"})}}class y0 extends E{constructor({address:f,connector:e}){super(`Account "${f}" not found for connector "${e.name}".`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorAccountNotFoundError"})}}class A0 extends E{constructor({connectionChainId:f,connectorChainId:e}){super(`The current chain of the connector (id: ${e}) does not match the connection's chain (id: ${f}).`,{metaMessages:[`Current Chain ID: ${e}`,`Expected Chain ID: ${f}`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorChainMismatchError"})}}class C0 extends E{constructor({connector:f}){super(`Connector "${f.name}" unavailable while reconnecting.`,{details:["During the reconnection step, the only connector methods guaranteed to be available are: `id`, `name`, `type`, `uuid`.","All other methods are not guaranteed to be available until reconnection completes and connectors are fully restored.","This error commonly occurs for connectors that asynchronously inject after reconnection has already started."].join(" ")}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorUnavailableReconnectingError"})}}async function K(s,f={}){let e;if(f.connector){const{connector:i}=f;if(s.state.status==="reconnecting"&&!i.getAccounts&&!i.getChainId)throw new C0({connector:i});const[w,y]=await Promise.all([i.getAccounts(),i.getChainId()]);e={accounts:w,chainId:y,connector:i}}else e=s.state.connections.get(s.state.current);if(!e)throw new w0;const a=f.chainId??e.chainId,t=await e.connector.getChainId();if(t!==e.chainId)throw new A0({connectionChainId:e.chainId,connectorChainId:t});const b=e.connector;if(b.getClient)return b.getClient({chainId:a});const c=M.parseAccount(f.account??e.accounts[0]);if(c.address=M.getAddress(c.address),f.account&&!e.accounts.some(i=>i.toLowerCase()===c.address.toLowerCase()))throw new y0({address:c.address,connector:b});const d=s.chains.find(i=>i.id===a),n=await e.connector.getProvider({chainId:a});return u.createClient({account:c,chain:d,name:"Connector Client",transport:i=>u.custom(n)({...i,retryCount:0})})}async function v0(s,f){const{abi:e,chainId:a,connector:t,...b}=f;let c;f.account?c=f.account:c=(await K(s,{chainId:a,connector:t})).account;const d=s.getClient({chainId:a}),n=G(d,$.simulateContract,"simulateContract"),{result:i,request:w}=await n({...b,abi:e,account:c});return{chainId:d.chain.id,result:i,request:{__mode:"prepared",...w,chainId:a}}}async function H(s,f){const{account:e,chainId:a,connector:t,__mode:b,...c}=f;let d;typeof e=="object"&&e.type==="local"?d=s.getClient({chainId:a}):d=await K(s,{account:e,chainId:a,connector:t});const{connector:n}=W(s);let i;if(b==="prepared"||n!=null&&n.supportsSimulation)i=c;else{const{request:r}=await v0(s,{...c,account:e,chainId:a});i=r}return await G(d,$.writeContract,"writeContract")({...i,...e?{account:e}:{},chain:a?{id:a}:null})}function O(s){return s.address!==void 0&&typeof s.address=="object"?(f,e)=>{var c;const a=h0(f),t=W(f);let b;return e.chainId?b=e.chainId:e.account&&e.account===t.address||e.account===void 0?b=t.chainId:b=a,H(f,{...e,...s.functionName?{functionName:s.functionName}:{},address:b?(c=s.address)==null?void 0:c[b]:void 0,abi:s.abi})}:(f,e)=>H(f,{...e,...s.address?{address:s.address}:{},...s.functionName?{functionName:s.functionName}:{},abi:s.abi})}const N={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1,VITE_BOOST_MAINNET_SIGNER_EOA:"0xCBD0C302040bC803B4B2EDaF21Be0e49Deff5480",VITE_BOOST_TESTNET_SIGNER_EOA:"0xd63167e9db11B108940b2E8236581F961f33f396"},m=10000n,S={...N!=null&&N.VITE_BOOST_CORE_ADDRESS?{31337:void 0}:{},...Q.BoostCore},B0=S[11155111]||u.zeroAddress;function I0(s){return s.address}const z=class z extends t0.Deployable{get addresses(){return this.constructor.addresses}constructor({config:f,account:e,...a}){if(I0(a)&&a.address)super({account:e,config:f},a.address);else{const{address:t}=l.assertValidAddressByChainId(f,S);super({account:e,config:f},t)}this.abi=o.l}async createBoost(f,e){const[a,t]=this.validateDeploymentConfig(f),b=e==null?void 0:e.chainId,{chainId:c,address:d}=l.assertValidAddressByChainId(t.config,this.addresses,b),n=O({abi:o.l,functionName:"createBoost",address:d}),i=await this.prepareCreateBoostPayload(d,c,a,t),w=await n(t.config,{...this.optionallyAttachAccount(t.account),...e,chainId:c,args:[v.prepareBoostPayload(i)]}),y=await P.waitForTransactionReceipt(t.config,{hash:w}),r=u.parseEventLogs({abi:o.l,eventName:"BoostCreated",logs:y.logs}).at(0);let h=0n;if(!r)throw new B.BoostCoreNoIdentifierEmitted;h=r==null?void 0:r.args.boostId;const g=await this.readBoost(h);return new v.Boost({id:h,budget:a.budget.at(g.budget),action:a.action.at(g.action),validator:a.validator.at(g.validator),allowList:a.allowList.at(g.allowList),incentives:a.incentives.map((C,A)=>C.at(g.incentives.at(A))),protocolFee:g.protocolFee,maxParticipants:g.maxParticipants,owner:g.owner})}async createBoostRaw(f,e){const{request:a,result:t}=await this.simulateCreateBoost(f,e);return{hash:await o.Ih(this._config,a),result:t}}async simulateCreateBoost(f,e){const[a,t]=this.validateDeploymentConfig(f),b=e==null?void 0:e.chainId,{chainId:c,address:d}=l.assertValidAddressByChainId(t.config,this.addresses,b),n=await this.prepareCreateBoostPayload(d,c,a,t);return await o.Uh(this._config,{...this.optionallyAttachAccount(),...e,address:d,chainId:c,args:[v.prepareBoostPayload(n)]})}async createBoostWithTransparentBudget(f,e,a,t){const[b,c]=this.validateDeploymentConfig({...a,budget:this.TransparentBudget(typeof f=="string"?f:f.assertValidAddress())}),d=t==null?void 0:t.chainId,{chainId:n,address:i}=l.assertValidAddressByChainId(c.config,this.addresses,d),w=O({abi:o.v,functionName:"createBoost",address:typeof f=="string"?f:f.assertValidAddress()}),y=await this.prepareCreateBoostPayload(i,n,b,c),r=await w(c.config,{...this.optionallyAttachAccount(c.account),...t,chainId:n,args:[e.map(V.prepareTransfer),i,v.prepareBoostPayload(y)]}),h=await P.waitForTransactionReceipt(c.config,{hash:r}),g=u.parseEventLogs({abi:o.l,eventName:"BoostCreated",logs:h.logs}).at(0);let C=0n;if(!g)throw new B.BoostCoreNoIdentifierEmitted;C=g==null?void 0:g.args.boostId;const A=await this.readBoost(C);return new v.Boost({id:C,budget:b.budget.at(A.budget),action:b.action.at(A.action),validator:b.validator.at(A.validator),allowList:b.allowList.at(A.allowList),incentives:b.incentives.map((p,_)=>p.at(A.incentives.at(_))),protocolFee:A.protocolFee,maxParticipants:A.maxParticipants,owner:A.owner})}async createBoostWithTransparentBudgetRaw(f,e,a,t){const{request:b,result:c}=await this.simulateCreateBoostWithTransparentBudget(f,e,a,t);return{hash:await o.Hj(this._config,b),result:c}}async simulateCreateBoostWithTransparentBudget(f,e,a,t){const[b,c]=this.validateDeploymentConfig({...a,budget:this.TransparentBudget(typeof f=="string"?f:f.assertValidAddress())}),d=t==null?void 0:t.chainId,{chainId:n,address:i}=l.assertValidAddressByChainId(c.config,this.addresses,d),w=await this.prepareCreateBoostPayload(i,n,b,c);return await o.e$(this._config,{...this.optionallyAttachAccount(),...t,address:typeof f=="string"?f:f.assertValidAddress(),chainId:n,args:[e.map(V.prepareTransfer),i,v.prepareBoostPayload(w)]})}async createBoostWithPermit2(f,e,a,t,b,c,d){const[n,i]=this.validateDeploymentConfig({...a,budget:this.TransparentBudget(typeof f=="string"?f:f.assertValidAddress())}),w=d==null?void 0:d.chainId,{chainId:y,address:r}=l.assertValidAddressByChainId(i.config,this.addresses,w),h=O({abi:o.v,functionName:"createBoostWithPermit2",address:typeof f=="string"?f:f.assertValidAddress()}),g=await this.prepareCreateBoostPayload(r,y,n,i),C=await h(i.config,{...this.optionallyAttachAccount(i.account),...d,chainId:y,args:[e.map(V.prepareTransfer),r,v.prepareBoostPayload(g),t,b,c]}),A=await P.waitForTransactionReceipt(i.config,{hash:C}),p=u.parseEventLogs({abi:o.l,eventName:"BoostCreated",logs:A.logs}).at(0);let _=0n;if(!p)throw new B.BoostCoreNoIdentifierEmitted;_=p==null?void 0:p.args.boostId;const I=await this.readBoost(_);return new v.Boost({id:_,budget:n.budget.at(I.budget),action:n.action.at(I.action),validator:n.validator.at(I.validator),allowList:n.allowList.at(I.allowList),incentives:n.incentives.map((Y,J)=>Y.at(I.incentives.at(J))),protocolFee:I.protocolFee,maxParticipants:I.maxParticipants,owner:I.owner})}async createBoostWithPermit2Raw(f,e,a,t,b,c,d){const{request:n,result:i}=await this.simulateCreateBoostWithPermit2(f,e,a,t,b,c,d);return{hash:await o.xj(this._config,n),result:i}}async simulateCreateBoostWithPermit2(f,e,a,t,b,c,d){const[n,i]=this.validateDeploymentConfig({...a,budget:this.TransparentBudget(typeof f=="string"?f:f.assertValidAddress())}),w=d==null?void 0:d.chainId,{chainId:y,address:r}=l.assertValidAddressByChainId(i.config,this.addresses,w),h=await this.prepareCreateBoostPayload(r,y,n,i);return await o.t$(this._config,{...this.optionallyAttachAccount(),...d,address:typeof f=="string"?f:f.assertValidAddress(),chainId:y,args:[e.map(V.prepareTransfer),r,v.prepareBoostPayload(h),t,b,c]})}async prepareCreateBoostPayload(f,e,a,t){var y;if(!a.owner&&(a.owner=((y=this._account)==null?void 0:y.address)||P.getAccount(t.config).address||u.zeroAddress,a.owner===u.zeroAddress))throw new B.DeployableUnknownOwnerProvidedError;if(!a.validator){const h=P.getChains(t.config).filter(A=>!!this.addresses[A.id]&&A.id===e).at(0);if(!h)throw new B.InvalidProtocolChainIdError(e,Object.keys(this.addresses).map(Number));const C=[h.testnet||h.id===31337?F.BoostValidatorEOA.TESTNET:F.BoostValidatorEOA.MAINNET];h.id===31337&&C.push("0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"),a.validator=this.LimitedSignerValidator({signers:C,validatorCaller:f,maxClaimCount:1})}let b=u.zeroAddress;if(a.budget.address){if(b=a.budget.address,!(a.budget instanceof R.TransparentBudget)&&!await a.budget.isAuthorized(f))throw new B.BudgetMustAuthorizeBoostCore(f)}else throw new B.MustInitializeBudgetError;let c={instance:u.zeroAddress,isBase:!0,parameters:u.zeroHash};if(a.action.address){const r=a.action.isBase;c={isBase:r,instance:a.action.address,parameters:r&&a.action.buildParameters(void 0,t).args.at(0)||u.zeroHash}}else c.parameters=a.action.buildParameters(void 0,t).args.at(0)||u.zeroHash,c.instance=l.assertValidAddressByChainId(t.config,a.action.bases,e).address;let d={instance:u.zeroAddress,isBase:!0,parameters:u.zeroHash};if(a.validator.address){const r=a.validator.isBase;d={isBase:r,instance:a.validator.address,parameters:r&&a.validator.buildParameters(void 0,t).args.at(0)||u.zeroHash}}else d.parameters=a.validator.buildParameters(void 0,t).args.at(0)||u.zeroHash,d.instance=l.assertValidAddressByChainId(t.config,a.validator.bases,e).address;let n={instance:u.zeroAddress,isBase:!0,parameters:u.zeroHash};if(a.allowList||(a.allowList=this.OpenAllowList()),a.allowList.address){const r=a.allowList.isBase;n={isBase:r,instance:a.allowList.address,parameters:u.zeroHash}}else n.parameters=a.allowList.buildParameters(void 0,t).args.at(0)||u.zeroHash,n.instance=l.assertValidAddressByChainId(t.config,a.allowList.bases,e).address;const i=a.incentives.map(()=>({instance:u.zeroAddress,isBase:!0,parameters:u.zeroHash}));for(let r=0;r<a.incentives.length;r++){const h=a.incentives.at(r);if(h.address){const g=h.isBase;if(!g)throw new B.IncentiveNotCloneableError(h);i[r]={isBase:g,instance:h.address,parameters:g&&h.buildParameters(void 0,t).args.at(0)||u.zeroHash}}else i[r].parameters=h.buildParameters(void 0,t).args.at(0)||u.zeroHash,i[r].instance=l.assertValidAddressByChainId(t.config,h.bases,e).address}return{budget:b,action:c,validator:d,allowList:n,incentives:i,protocolFee:a.protocolFee||0n,maxParticipants:a.maxParticipants||0n,owner:a.owner}}async claimIncentive(f,e,a,t,b){return await this.awaitResult(this.claimIncentiveRaw(f,e,a,t,b))}async claimIncentiveRaw(f,e,a,t,b){const{request:c,result:d}=await o.kh(this._config,{...l.assertValidAddressByChainId(this._config,this.addresses,b==null?void 0:b.chainId),args:[f,e,a,t],...this.optionallyAttachAccount(),...b});return{hash:await o.Th(this._config,c),result:d}}async claimIncentiveFor(f,e,a,t,b,c){return await this.awaitResult(this.claimIncentiveForRaw(f,e,a,t,b,c))}async claimIncentiveForRaw(f,e,a,t,b,c){const{request:d,result:n}=await o._h(this._config,{...l.assertValidAddressByChainId(this._config,this.addresses,c==null?void 0:c.chainId),args:[f,e,a,t,b],...this.optionallyAttachAccount(),...c});return{hash:await o.wh(this._config,d),result:n}}async readBoost(f,e){var a;try{let t;return typeof f=="string"?t=BigInt(f):t=f,await o.ah(this._config,{...l.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[t],...this.optionallyAttachAccount(),...e})}catch(t){throw(a=t==null?void 0:t.message)!=null&&a.includes("bounds")?new B.BoostNotFoundError(String(f)):t}}async getBoost(f,e){let a;typeof f=="string"?a=BigInt(f):a=f;const{protocolFee:t,maxParticipants:b,owner:c,...d}=await this.readBoost(a,e),n={config:this._config,account:this._account},[i,w,y,r,h]=await Promise.all([X.actionFromAddress(n,d.action,e),R.budgetFromAddress(n,d.budget,e),F.validatorFromAddress(n,d.validator,e),T.allowListFromAddress(n,d.allowList,e),Promise.all(d.incentives.map(g=>x.incentiveFromAddress(n,g,e)))]);return new v.Boost({id:a,action:i,budget:w,validator:y,allowList:r,incentives:h,protocolFee:t,maxParticipants:b,owner:c})}async getBoostCount(f){return await o.ih(this._config,{...l.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[],...this.optionallyAttachAccount(),...f})}async isAuthorized(f,e){const a=await this.createBoostAuth(e);return o.yL(this._config,{address:a,args:[f],...this.optionallyAttachAccount(),...e})}async createBoostAuth(f){return await o.nh(this._config,{...l.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[],...this.optionallyAttachAccount(),...f})}async setCreateBoostAuth(f,e){return await this.awaitResult(this.setCreateBoostAuthRaw(f.assertValidAddress(),{...e}))}async setCreateBoostAuthRaw(f,e){const{request:a,result:t}=await o.jh(this._config,{...l.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[f],...this.optionallyAttachAccount(),...e});return{hash:await o.Rh(this._config,a),result:t}}async protocolFee(f){return await o.uh(this._config,{...l.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[],...this.optionallyAttachAccount(),...f})}async protocolFeeReceiver(f){return await o.yh(this._config,{...l.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[],...this.optionallyAttachAccount(),...f})}async setProcolFeeReceiver(f,e){return await this.awaitResult(this.setProcolFeeReceiverRaw(f,{...e}))}async setProcolFeeReceiverRaw(f,e){const{request:a,result:t}=await o.Kh(this._config,{...l.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[f],...this.optionallyAttachAccount(),...e});return{hash:await o.Vh(this._config,a),result:t}}async getIncentiveFeesInfo(f,e,a){const t=u.keccak256(u.encodePacked(["uint256","uint256"],[f,e]));return await o.sh(this._config,{...l.assertValidAddressByChainId(this._config,this.addresses,a==null?void 0:a.chainId),args:[t],...this.optionallyAttachAccount(),...a})}async getClaimFromTransaction(f){var t;const e=await P.getTransactionReceipt(this._config,f);return(t=u.parseEventLogs({abi:o.l,eventName:"BoostClaimed",logs:e.logs}).at(0))==null?void 0:t.args}async calculateProtocolFee(f,e){const a=await this.protocolFee(e);return f*a/m}PassthroughAuth(f){return new a0.PassthroughAuth({config:this._config,account:this._account},f)}EventAction(f,e){return new Z.EventAction({config:this._config,account:this._account},f,e)}OpenAllowList(f){return new T.OpenAllowList({config:this._config,account:this._account},void 0,f)}SimpleAllowList(f,e){return new f0.SimpleAllowList({config:this._config,account:this._account},f,e)}SimpleDenyList(f,e){return new e0.SimpleDenyList({config:this._config,account:this._account},f,e)}OffchainAccessList(f,e){return new T.OffchainAccessList({config:this._config,account:this._account},f,e)}ManagedBudget(f){return typeof f!="string"&&!f.authorized.includes(this.assertValidAddress())&&(f.authorized=[this.assertValidAddress(),...f.authorized],f.roles=[L.Roles.MANAGER,...f.roles]),new V.ManagedBudget({config:this._config,account:this._account},f)}ManagedBudgetWithFees(f){return typeof f!="string"&&!f.authorized.includes(this.assertValidAddress())&&(f.authorized=[this.assertValidAddress(),...f.authorized],f.roles=[L.Roles.MANAGER,...f.roles]),new R.ManagedBudgetWithFees({config:this._config,account:this._account},f)}ManagedBudgetWithFeesV2(f){return typeof f!="string"&&!f.authorized.includes(this.assertValidAddress())&&(f.authorized=[this.assertValidAddress(),...f.authorized],f.roles=[L.Roles.MANAGER,...f.roles]),new R.ManagedBudgetWithFeesV2({config:this._config,account:this._account},f)}TransparentBudget(f){return new R.TransparentBudget({config:this._config,account:this._account},f)}AllowListIncentive(f){return new b0.AllowListIncentive({config:this._config,account:this._account},f)}CGDAIncentive(f){return new c0.CGDAIncentive({config:this._config,account:this._account},f)}ERC20Incentive(f){return new d0.ERC20Incentive({config:this._config,account:this._account},f)}ERC20PeggedIncentive(f){return new x.ERC20PeggedIncentive({config:this._config,account:this._account},f)}PointsIncentive(f){return new i0.PointsIncentive({config:this._config,account:this._account},f)}SignerValidator(f,e){return new r0.SignerValidator({config:this._config,account:this._account},f,e)}LimitedSignerValidator(f,e){return new o0.LimitedSignerValidator({config:this._config,account:this._account},f,e)}PayableLimitedSignerValidator(f,e){return new F.PayableLimitedSignerValidator({config:this._config,account:this._account},f,e??!1)}ERC20VariableCriteriaIncentiveV2(f,e){return new n0.ERC20VariableCriteriaIncentiveV2({config:this._config,account:this._account},f,e)}ERC20PeggedVariableCriteriaIncentiveV2(f,e){return new s0.ERC20PeggedVariableCriteriaIncentiveV2({config:this._config,account:this._account},f,e)}ERC20VariableIncentive(f,e){return new u0.ERC20VariableIncentive({config:this._config,account:this._account},f,e)}buildParameters(f,e){const[a,t]=this.validateDeploymentConfig(f,e);return{abi:o.l,bytecode:j,args:[],...this.optionallyAttachAccount(t.account)}}async deploy(f,e,a){var b;const t=f||this._payload;if(t&&typeof t=="object"&&"registryAddress"in t){const c=t,d=e||{config:this._config,account:this._account},n=await l.getDeployedContractAddress(d.config,P.deployContract(d.config,{abi:o.l,bytecode:j,args:[],...this.optionallyAttachAccount(d.account)}),a),i=u.encodeFunctionData({abi:o.l,functionName:"initialize",args:[c.registryAddress,c.protocolFeeReceiver,c.owner]}),w=[{type:"constructor",inputs:[{name:"implementation",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],stateMutability:"payable"}],r=await l.getDeployedContractAddress(d.config,P.deployContract(d.config,{abi:w,bytecode:u.encodeDeployData({abi:w,bytecode:"0x60806040526040516103dc3803806103dc8339810160408190526100229161023b565b61002c8282610033565b5050610320565b61003c82610091565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561008557610080828261010c565b505050565b61008d61017f565b5050565b806001600160a01b03163b5f036100cb57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b031684604051610128919061030a565b5f60405180830381855af49150503d805f8114610160576040519150601f19603f3d011682016040523d82523d5f602084013e610165565b606091505b5090925090506101768583836101a0565b95945050505050565b341561019e5760405163b398979f60e01b815260040160405180910390fd5b565b6060826101b5576101b0826101ff565b6101f8565b81511580156101cc57506001600160a01b0384163b155b156101f557604051639996b31560e01b81526001600160a01b03851660048201526024016100c2565b50805b9392505050565b80511561020e57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b634e487b7160e01b5f52604160045260245ffd5b5f806040838503121561024c575f80fd5b82516001600160a01b0381168114610262575f80fd5b60208401519092506001600160401b0381111561027d575f80fd5b8301601f8101851361028d575f80fd5b80516001600160401b038111156102a6576102a6610227565b604051601f8201601f19908116603f011681016001600160401b03811182821017156102d4576102d4610227565b6040528181528282016020018710156102eb575f80fd5b8160208401602083015e5f602083830101528093505050509250929050565b5f82518060208501845e5f920191825250919050565b60b08061032c5f395ff3fe6080604052600a600c565b005b60186014601a565b605d565b565b5f60587f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b365f80375f80365f845af43d5f803e8080156076573d5ff35b3d5ffdfea2646970667358221220f563f31c0aa14bad619f09897012e95da451776c4af1ecde8d7624c84200077664736f6c634300081a0033",args:[n,i]}),args:[n,i],...this.optionallyAttachAccount(d.account)}),a);this._address=r;const h=(b=d.config.getClient().chain)==null?void 0:b.id;h?this.constructor.addresses[h]=r:console.log("WARNING: No chain ID found, cannot update addresses object")}else await super.deploy(f,e,a);return this}async topupIncentiveFromBudgetPreFee(f,e,a,t,b){const c=await this.getBoost(f,b);if(e>=c.incentives.length)throw new Error(`Incentive ID ${e} out of range`);const d=c.incentives[Number(e)];if(!d)throw new Error(`Incentive with ID ${e} not found`);const n=await d.getTopupPayload(a);if(!(a>0))throw new Error("Top-up amount must be greater than zero");return await this.topupIncentiveFromBudgetRaw(f,e,n,t,b)}async topupIncentiveFromBudgetPostFee(f,e,a,t,b){const c=await this.protocolFee(b),d=a*m/(m+c);return this.topupIncentiveFromBudgetPreFee(f,e,d,t,b)}async topupIncentiveFromSenderPreFee(f,e,a,t){const b=await this.getBoost(f,t);if(e>=b.incentives.length)throw new Error(`Incentive ID ${e} out of range`);const c=b.incentives[Number(e)];if(!c)throw new Error(`Incentive with ID ${e} not found`);if(!(a>0))throw new Error("Top-up amount must be greater than zero");const d=await c.getTopupPayload(a);return await this.topupIncentiveFromSenderRaw(f,e,d,t)}async topupIncentiveFromSenderPostFee(f,e,a,t){const b=await this.protocolFee(t),c=a*m/(m+b);return this.topupIncentiveFromSenderPreFee(f,e,c,t)}async topupIncentiveFromSenderRaw(f,e,a,t){const{request:b,result:c}=await o.eN(this._config,{...this.optionallyAttachAccount(),...t,address:this.assertValidAddress(),args:[f,e,a]});return{hash:await o.Hh(this._config,b),result:c}}async topupIncentiveFromBudgetRaw(f,e,a,t,b){const{request:c,result:d}=await o.Yh(this._config,{...this.optionallyAttachAccount(),...b,address:this.assertValidAddress(),args:[f,e,a,t??u.zeroAddress]});return{hash:await o.zh(this._config,c),result:d}}};z.addresses=S;let q=z;exports.boostCoreAbi=o.l;exports.BOOST_CORE_ADDRESS=B0;exports.BOOST_CORE_ADDRESSES=S;exports.BoostCore=q;exports.FEE_DENOMINATOR=m;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./generated-CkZm1EVH.cjs"),P=require("@wagmi/core"),u=require("viem"),J=require("./deployments-uLDgrxCp.cjs"),K=require("./Actions/Action.cjs"),Q=require("./Actions/EventAction.cjs"),N=require("./AllowList-GEmUfOR1.cjs"),f0=require("./AllowLists/SimpleAllowList.cjs"),e0=require("./SimpleDenyList-6_sxnZB0.cjs"),a0=require("./Auth/PassthroughAuth.cjs"),I=require("./Boost.cjs"),m=require("./Budget-CwNhsa3m.cjs"),p=require("./Budgets/ManagedBudget.cjs"),t0=require("./Deployable/Deployable.cjs"),D=require("./Deployable/DeployableTargetWithRBAC.cjs"),b0=require("./Incentives/AllowListIncentive.cjs"),d0=require("./Incentives/CGDAIncentive.cjs"),c0=require("./Incentives/ERC20Incentive.cjs"),x=require("./Incentive-B2ZBE5LU.cjs"),s0=require("./Incentives/ERC20PeggedVariableCriteriaIncentiveV2.cjs"),n0=require("./Incentives/ERC20VariableCriteriaIncentiveV2.cjs"),i0=require("./Incentives/PointsIncentive.cjs"),o0=require("./Validators/LimitedSignerValidator.cjs"),r0=require("./Validators/LimitedSignerValidatorV2.cjs"),u0=require("./Validators/PayableLimitedSignerValidator.cjs"),l0=require("./Validators/PayableLimitedSignerValidatorV2.cjs"),h0=require("./Validators/SignerValidator.cjs"),g0=require("./Validators/SignerValidatorV2.cjs"),T=require("./Validators/Validator.cjs"),v=require("./errors.cjs"),h=require("./utils.cjs"),$=require("viem/actions"),M=require("viem/utils"),w0=require("./Incentives/ERC20VariableIncentive.cjs"),j="0x60a0604052306080523480156012575f80fd5b506019601d565b6080565b63409feecd1980546001811615603a5763f92ee8a95f526004601cfd5b6001600160401b03808260011c14607b578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b608051615c4361009f5f395f8181613567015261359e0152615c435ff3fe60806040526004361061025d575f3560e01c80637b1039991161014b578063d5137b52116100c6578063eccc19a61161007c578063f2fde38b11610062578063f2fde38b146106c5578063fee81cf4146106d8578063fefceca914610709575f80fd5b8063eccc19a614610693578063f04e283e146106b2575f80fd5b8063dd7dc9a9116100ac578063dd7dc9a914610618578063dd98558c14610638578063e21ff73114610674575f80fd5b8063d5137b52146105e4578063d73792a914610603575f80fd5b80638fe4f5231161011b578063b0e21e8a11610101578063b0e21e8a1461056e578063c0c53b8b146105a6578063caa1647b146105c5575f80fd5b80638fe4f5231461053c578063a92647dc1461054f575f80fd5b80637b1039991461049257806384ae2bc6146104b1578063892b97f8146104ea5780638da5cb5b14610509575f80fd5b80634f1ef286116101db57806354fd4d50116101ab5780635f32c23e116101915780635f32c23e14610458578063715018a614610477578063730f9c571461047f575f80fd5b806354fd4d50146103fa5780635edb9eb014610445575f80fd5b80634f1ef2861461039e5780635045b866146103b157806352d1902d146103d057806354d1f13d146103f2575f80fd5b8063256929621161023057806339a51be51161021657806339a51be51461032957806343bc42d31461036057806346877b1a1461037f575f80fd5b806325692962146102f5578063346339d5146102fd575f80fd5b806313c8e2de1461026157806316614282146102965780631fa2acdc146102b7578063219f71f0146102d6575b5f80fd5b34801561026c575f80fd5b5061028061027b366004614ada565b61076c565b60405161028d9190614b34565b60405180910390f35b3480156102a1575f80fd5b506102b56102b0366004614c32565b6108a1565b005b3480156102c2575f80fd5b506102b56102d1366004614c95565b611014565b3480156102e1575f80fd5b506102b56102f0366004614cfb565b611789565b6102b56117cb565b348015610308575f80fd5b5061031c610317366004614ada565b611818565b60405161028d9190614d83565b348015610334575f80fd5b50600354610348906001600160a01b031681565b6040516001600160a01b03909116815260200161028d565b34801561036b575f80fd5b506102b561037a366004614de1565b6118cd565b34801561038a575f80fd5b506102b5610399366004614cfb565b611a68565b6102b56103ac366004614dfc565b611aaa565b3480156103bc575f80fd5b50600454610348906001600160a01b031681565b3480156103db575f80fd5b506103e4611b5f565b60405190815260200161028d565b6102b5611b8d565b348015610405575f80fd5b50604080518082018252600581527f312e322e300000000000000000000000000000000000000000000000000000006020820152905161028d9190614e7b565b348015610450575f80fd5b505f546103e4565b348015610463575f80fd5b506102b5610472366004614e8d565b611bc6565b6102b5611d5f565b6102b561048d366004614ead565b611d72565b34801561049d575f80fd5b50600154610348906001600160a01b031681565b3480156104bc575f80fd5b506007546104d19067ffffffffffffffff1681565b60405167ffffffffffffffff909116815260200161028d565b3480156104f5575f80fd5b506102b5610504366004614de1565b61218a565b348015610514575f80fd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754610348565b6102b561054a366004614f24565b612285565b34801561055a575f80fd5b50600254610348906001600160a01b031681565b348015610579575f80fd5b506004546104d19074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b3480156105b1575f80fd5b506102b56105c0366004614f89565b61229a565b3480156105d0575f80fd5b506102b56105df366004614de1565b6123e5565b3480156105ef575f80fd5b506103486105fe366004614fd1565b61246d565b34801561060e575f80fd5b506104d161271081565b348015610623575f80fd5b506005546104d19067ffffffffffffffff1681565b348015610643575f80fd5b5061065761065236600461501b565b612699565b604080519283526001600160a01b0390911660208301520161028d565b34801561067f575f80fd5b5061028061068e366004615068565b612b4b565b34801561069e575f80fd5b506102b56106ad366004614cfb565b61337c565b6102b56106c0366004614cfb565b6133be565b6102b56106d3366004614cfb565b6133fb565b3480156106e3575f80fd5b506103e46106f2366004614cfb565b63389a75e1600c9081525f91909152602090205490565b348015610714575f80fd5b5061075b610723366004614ada565b60066020525f9081526040902080546001820154600283015460039093015460ff8316936101009093046001600160a01b0316929085565b60405161028d9594939291906150a7565b60408051610100810182525f808252602082018190529181018290526060808201839052608082015260a0810182905260c0810182905260e08101919091525f82815481106107bd576107bd6150e0565b5f9182526020918290206040805161010081018252600890930290910180546001600160a01b0390811684526001820154811684860152600282015481168484015260038201541660608401526004810180548351818702810187019094528084529394919360808601939283018282801561086057602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610842575b5050509183525050600582015467ffffffffffffffff166020820152600682015460408201526007909101546001600160a01b031660609091015292915050565b3068929eee149b4bd2126854036108bf5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f8085815481106108de576108de6150e0565b905f5260205f20906008020190505f816004018581548110610902576109026150e0565b5f9182526020822001546040517f4e7165a20000000000000000000000000000000000000000000000000000000081526001600160a01b0390911692508290634e7165a2906109579088908890600401615136565b5f60405180830381865afa158015610971573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526109989190810190615290565b905080515f036109d4576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f818060200190518101906109e991906152cd565b90505f808080600185516002811115610a0457610a04614d1d565b1480610a2157505f85516002811115610a1f57610a1f614d1d565b145b15610a85575f8560600151806020019051810190610a3f9190615375565b805160058b015490965090915061271090610a649067ffffffffffffffff16876153e4565b610a6e91906153fb565b9350610a7a8486615433565b908190529150610b3b565b600285516002811115610a9a57610a9a614d1d565b03610b09575f8560600151806020019051810190610ab89190615446565b602081015160058b015490965090915061271090610ae09067ffffffffffffffff16876153e4565b610aea91906153fb565b9350610af68486615433565b6020820181905290519092509050610b3b565b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610b468d8d613421565b5f8181526006602052604081206001810180549394509092879290610b6c908490615433565b909155505085159150610ffa905057600185516002811115610b9057610b90614d1d565b1480610bad57505f85516002811115610bab57610bab614d1d565b145b15610dcc5760208501516040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490526001600160a01b038216906323b872dd906064016020604051808303815f875af1158015610c20573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4491906154d3565b506040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0389811660048301526024820187905282169063095ea7b3906044016020604051808303815f875af1158015610caa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cce91906154d3565b506040517f30db555f000000000000000000000000000000000000000000000000000000008152600481018690526001600160a01b038916906330db555f906024015f604051808303815f87803b158015610d27575f80fd5b505af1158015610d39573d5f803e3d5ffd5b50506040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b038b811660048301525f60248301528416925063095ea7b391506044016020604051808303815f875af1158015610da1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc591906154d3565b5050610fba565b60208501516040517ff242432a000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018390526064810184905260a060848201525f60a48201526001600160a01b0382169063f242432a9060c4015f604051808303815f87803b158015610e49575f80fd5b505af1158015610e5b573d5f803e3d5ffd5b50506040517fa22cb4650000000000000000000000000000000000000000000000000000000081526001600160a01b038b81166004830152600160248301528416925063a22cb46591506044015f604051808303815f87803b158015610ebf575f80fd5b505af1158015610ed1573d5f803e3d5ffd5b50506040517f30db555f000000000000000000000000000000000000000000000000000000008152600481018890526001600160a01b038b1692506330db555f91506024015f604051808303815f87803b158015610f2d575f80fd5b505af1158015610f3f573d5f803e3d5ffd5b50506040517fa22cb4650000000000000000000000000000000000000000000000000000000081526001600160a01b038b811660048301525f60248301528416925063a22cb46591506044015f604051808303815f87803b158015610fa2575f80fd5b505af1158015610fb4573d5f803e3d5ffd5b50505050505b604080518581526020810185905233918d918f917f2ad351412a5089670d592612b17f248e8526b92879399b24b35421b4c8f31876910160405180910390a45b50505050505050503868929eee149b4bd212685550505050565b3068929eee149b4bd2126854036110325763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808681548110611051576110516150e0565b905f5260205f20906008020190505f816004018681548110611075576110756150e0565b5f9182526020822001546040517f4e7165a20000000000000000000000000000000000000000000000000000000081526001600160a01b0390911692508290634e7165a2906110ca9089908990600401615136565b5f60405180830381865afa1580156110e4573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261110b9190810190615290565b905080515f03611147576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8180602001905181019061115c91906152cd565b90505f6001600160a01b038616156111745785611183565b60038501546001600160a01b03165b905061118e81613450565b5f80806001855160028111156111a6576111a6614d1d565b14806111c357505f855160028111156111c1576111c1614d1d565b145b1561124a575f85606001518060200190518101906111e19190615375565b805160058b0154909550909150612710906112069067ffffffffffffffff16866153e4565b61121091906153fb565b925061121c8385615433565b8082526040805160208101839052919350015b60408051601f198184030181529190526060870152506112d5565b60028551600281111561125f5761125f614d1d565b03610b09575f856060015180602001905181019061127d9190615446565b602081015160058b0154909550909150612710906112a59067ffffffffffffffff16866153e4565b6112af91906153fb565b92506112bb8385615433565b602080830182905260405191935061122f918391016154ee565b30604080870191909152515f906112f090879060200161551c565b60408051601f19818403018152908290527ffa4ca9b100000000000000000000000000000000000000000000000000000000825291506001600160a01b0386169063fa4ca9b190611345908490600401614e7b565b6020604051808303815f875af1158015611361573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061138591906154d3565b6113bb576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6113c68f8f613421565b5f81815260066020526040812060018101805493945090928792906113ec908490615433565b90915550508515925061176e9150505760018551600281111561141157611411614d1d565b148061142e57505f8551600281111561142c5761142c614d1d565b145b156115bf5760208501516040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0389811660048301526024820186905282169063095ea7b3906044016020604051808303815f875af115801561149d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114c191906154d3565b506040517f30db555f000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b038916906330db555f906024015f604051808303815f87803b15801561151a575f80fd5b505af115801561152c573d5f803e3d5ffd5b50506040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b038b811660048301525f60248301528416925063095ea7b391506044016020604051808303815f875af1158015611594573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115b891906154d3565b505061171f565b60208501516040517fa22cb4650000000000000000000000000000000000000000000000000000000081526001600160a01b0389811660048301526001602483015282169063a22cb465906044015f604051808303815f87803b158015611624575f80fd5b505af1158015611636573d5f803e3d5ffd5b50506040517f30db555f000000000000000000000000000000000000000000000000000000008152600481018790526001600160a01b038b1692506330db555f91506024015f604051808303815f87803b158015611692575f80fd5b505af11580156116a4573d5f803e3d5ffd5b50506040517fa22cb4650000000000000000000000000000000000000000000000000000000081526001600160a01b038b811660048301525f60248301528416925063a22cb46591506044015f604051808303815f87803b158015611707575f80fd5b505af1158015611719573d5f803e3d5ffd5b50505050505b336001600160a01b03168c8e7f2ad351412a5089670d592612b17f248e8526b92879399b24b35421b4c8f318768686604051611765929190918252602082015260400190565b60405180910390a45b50505050505050503868929eee149b4bd21268555050505050565b61179161352f565b600480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b61184f6040805160a08101909152805f81526020015f6001600160a01b031681526020015f81526020015f81526020015f81525090565b5f8281526006602052604090819020815160a081019092528054829060ff16600281111561187f5761187f614d1d565b600281111561189057611890614d1d565b8152815461010090046001600160a01b03166020820152600182015460408201526002820154606082015260039091015460809091015292915050565b6118d561352f565b61271067ffffffffffffffff82161115611976576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f70726f746f636f6c206665652063616e6e6f742062652073657420686967686560448201527f72207468616e20746865206665652064656e6f6d696e61746f7200000000000060648201526084015b60405180910390fd5b60075467ffffffffffffffff90811690821611611a15576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f70726f746f636f6c20666565206d75737420626520736574206869676865722060448201527f7468616e2074686520726566657272616c206665650000000000000000000000606482015260840161196d565b6004805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b611a7061352f565b600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b611ab2613564565b611abb83613593565b8260601b60601c92503d5f526352d1902d6001527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80602060016004601d885afa5114611b10576355299b496001526004601dfd5b837fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f38a28390558015611b5a57604051818382375f388383875af4611b58573d5f823e3d81fd5b505b505050565b5f611b6861359b565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b3068929eee149b4bd212685403611be45763ab143c065f526004601cfd5b3068929eee149b4bd21268555f611bfb8383613421565b5f818152600660205260408120815492935091819086908110611c2057611c206150e0565b905f5260205f2090600802016004018481548110611c4057611c406150e0565b5f918252602082200154600284015460018501546001600160a01b03909216935090611c6f90612710906153e4565b611c7991906153fb565b90505f611c8684846135ca565b905081811115611d4a575f611c9b838361556d565b90505f61271067ffffffffffffffff16866002015483611cbb91906153e4565b611cc591906153fb565b9050611cd18682613718565b80866001015410611cfa5780866001015f828254611cef919061556d565b90915550611d019050565b5f60018701555b6003546040518281526001600160a01b039091169089908b907f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b179060200160405180910390a450505b50505050503868929eee149b4bd21268555050565b611d6761352f565b611d705f613854565b565b3068929eee149b4bd212685403611d905763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808781548110611daf57611daf6150e0565b905f5260205f20906008020190505f611dc88888613421565b5f81815260066020526040812060048501805493945090928a908110611df057611df06150e0565b5f9182526020909120015460028501546040517fe3f756de0000000000000000000000000000000000000000000000000000000081526001600160a01b03928316935091169063e3f756de90611e4e9088908b908b90600401615580565b602060405180830381865afa158015611e69573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e8d91906154d3565b611ec3576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018401546040517f703b69000000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063703b6900903490611f18908e908e908b908e908e906004016155ab565b60206040518083038185885af1158015611f34573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611f5991906154d3565b611f8f576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018401545f90611fab906001600160a01b03168a8a8a6138ac565b90505f80611fbd85858a868e8e613a66565b9092509050811561203657611fd3858385613c4b565b8454604080518f8152602081018f90526001600160a01b0361010090930483169181019190915260608101849052898216918516907f88ba7496cc2929c2c27c9224d2c621febfe0dbfe9c504d043812d66b3461c3f49060800160405180910390a35b801561208d576120468582613718565b6003546040518281526001600160a01b03909116908d908f907f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b179060200160405180910390a45b5f6120988383615433565b9050801561212757808660010154101561210e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f696e73756666696369656e742072657365727665642066656573000000000000604482015260640161196d565b80866001015f828254612121919061556d565b90915550505b886001600160a01b03168d8f7f0f29bbf4ce25d2346bbeb8a898e24e5d6d7d1d19bb895e71faecac833b259547878f8f60405161216693929190615580565b60405180910390a450505050505050503868929eee149b4bd2126855505050505050565b61219261352f565b60045467ffffffffffffffff740100000000000000000000000000000000000000009091048116908216111561224a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f726566657272616c206665652063616e6e6f742062652073657420686967686560448201527f72207468616e207468652070726f746f636f6c20666565000000000000000000606482015260840161196d565b600780547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff92909216919091179055565b612293858585858533611d72565b5050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf60113280546003825580156122eb5760018160011c14303b106122e25763f92ee8a95f526004601cfd5b818160ff1b1b91505b506122f582613d62565b600180546001600160a01b038087167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179092556003805492861692909116919091179055600480547503e800000000000000000000000000000000000000007fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909116179055600580547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166103e81790558015611b58576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a150505050565b6123ed61352f565b61271067ffffffffffffffff821610612432576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600580547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff92909216919091179055565b5f3068929eee149b4bd21268540361248c5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f8084815481106124ab576124ab6150e0565b5f918252602090912060089091020160078101549091506001600160a01b03163314612503576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600381015461251a906001600160a01b0316613450565b6004808201805491549091905f906001600160a01b031661253b575f6125cd565b6004546040516001600160a01b039091169063c7f1ecff90612563908a908a906020016155e4565b6040516020818303038152906040526040518263ffffffff1660e01b815260040161258e9190614e7b565b602060405180830381865afa1580156125a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125cd919061569b565b90506126036125db87615703565b600386015460058701546001600160a01b039091169067ffffffffffffffff16848b87613db8565b83546001810185555f858152602080822090920180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03851690811790915560405191825292975084918a917f500ae5072ea307af9f1d7b29f92e0379b973527e56e000e5445b7b9f5fbb09ae910160405180910390a4505050503868929eee149b4bd212685592915050565b5f803068929eee149b4bd2126854036126b95763ab143c065f526004601cfd5b3068929eee149b4bd21268555f8085815481106126d8576126d86150e0565b5f9182526020918290206040805161010081018252600890930290910180546001600160a01b0390811684526001820154811684860152600282015481168484015260038201541660608401526004810180548351818702810187019094528084529394919360808601939283018282801561277b57602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831161275d575b5050509183525050600582015467ffffffffffffffff166020820152600682015460408201526007909101546001600160a01b03908116606092830152908201519192501633146127f8576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6128038686613421565b5f81815260066020526040812091925061281f898b018b61576c565b90505f816020015180602001905181019061283a9190615809565b90505f61271067ffffffffffffffff1684600201548361285a91906153e4565b61286491906153fb565b905080156129d2576001845460ff16600281111561288457612884614d1d565b14806128a457505f845460ff1660028111156128a2576128a2614d1d565b145b156128cc57825184546128c7916101009091046001600160a01b03169083614158565b612989565b6002845460ff1660028111156128e4576128e4614d1d565b03612989578354835160038601546040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03928316602482015260448101919091526064810184905260a060848201525f60a4820152610100909204169063f242432a9060c4015f604051808303815f87803b158015612972575f80fd5b505af1158015612984573d5f803e3d5ffd5b505050505b825f01516001600160a01b0316898b7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b17846040516129c991815260200190565b60405180910390a45b5f8087608001518b815181106129ea576129ea6150e0565b60200260200101516001600160a01b031663474f5a4486604051602001612a119190615820565b6040516020818303038152906040526040518263ffffffff1660e01b8152600401612a3c9190614e7b565b60408051808303815f875af1158015612a57573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a7b919061584d565b91509150815f03612abe57338e8e6040517f9ecd71a900000000000000000000000000000000000000000000000000000000815260040161196d93929190615580565b82866001015f828254612ad1919061556d565b90915550508451604080518d8152602081018590526001600160a01b038481169282019290925291169033908e907f344fdf618273ad01bc14c75053d2c1dd67bb9384ba92c2d44a3c58c55306a2ec9060600160405180910390a43868929eee149b4bd2126855909d909c509a5050505050505050505050565b60408051610100810182525f808252602082018190529181018290526060808201839052608082015260a0810182905260c0810182905260e081019190915260025433906001600160a01b031615801590612c2857506002546040517ffe9fbb800000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301529091169063fe9fbb8090602401602060405180830381865afa158015612c02573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c2691906154d3565b155b15612c5f576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3068929eee149b4bd212685403612c7d5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f612cc885858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506141ab92505050565b806020019051810190612cdb9190615975565b9050612ce9815f0151613450565b5f805460018101825590805260e082015160089091027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56a810180547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b039485161790915583517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e566830180549092169084161790556004547f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639091019116612ded5760a0820151600454612de8919074010000000000000000000000000000000000000000900467ffffffffffffffff16615aa0565b612e85565b60a0820151600480546040517fb1539a6b0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169163b1539a6b91612e3c918b918b9101615136565b602060405180830381865afa158015612e57573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e7b9190615ac0565b612e859190615aa0565b6005820180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff9290921691909117905560c082015160068201556020820151612efc907fe671579500000000000000000000000000000000000000000000000000000000906001614336565b81547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03919091161781556060820151612f61907fe2089f7900000000000000000000000000000000000000000000000000000000906001614336565b6002820180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161790556004545f9116612fa7575f613030565b600480546040517fc7f1ecff0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169163c7f1ecff91612ff1918b918b9101615136565b602060405180830381865afa15801561300c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613030919061569b565b6080840151845160058501549293506130539267ffffffffffffffff168461434f565b8051613069916004850191602090910190614a4b565b506040830151602001516001600160a01b0316156130b6576130b17f5912b89c0000000000000000000000000000000000000000000000000000000084604001516001614336565b61316e565b81546040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f5912b89c0000000000000000000000000000000000000000000000000000000060048201526001600160a01b03909116906301ffc9a790602401602060405180830381865afa158015613134573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061315891906154d3565b613162575f61316e565b81546001600160a01b03165b6001830180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169182179055613205576040517fe1c444480000000000000000000000000000000000000000000000000000000081527f5912b89c0000000000000000000000000000000000000000000000000000000060048201525f602482015260440161196d565b815460078301545f546001600160a01b03928316929091169061322a9060019061556d565b6004850154600186015460028701546003880154604080519485526001600160a01b03938416602086015291831684830152919091166060830152517f116812d3ad4507d72f2c428b63246d594ca055a1dc119394285504c23d1f34cd9181900360800190a4604080516101008101825283546001600160a01b0390811682526001850154811660208084019190915260028601548216838501526003860154909116606083015260048501805484518184028101840190955280855292938693608086019391929183018282801561332a57602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831161330c575b5050509183525050600582015467ffffffffffffffff166020820152600682015460408201526007909101546001600160a01b03166060909101523868929eee149b4bd2126855979650505050505050565b61338461352f565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6133c661352f565b63389a75e1600c52805f526020600c2080544211156133ec57636f5e88185f526004601cfd5b5f90556133f881613854565b50565b61340361352f565b8060601b61341857637448fbae5f526004601cfd5b6133f881613854565b604080516020808201859052818301849052825180830384018152606090920190925280519101205b92915050565b61347a7fe49cedd70000000000000000000000000000000000000000000000000000000082614481565b6040517ffe9fbb800000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0382169063fe9fbb8090602401602060405180830381865afa1580156134d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134f991906154d3565b6133f8576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611d70576382b429005f526004601cfd5b307f000000000000000000000000000000000000000000000000000000000000000003611d7057611d7061459f565b6133f861352f565b307f000000000000000000000000000000000000000000000000000000000000000014611d7057611d7061459f565b5f6001835460ff1660028111156135e3576135e3614d1d565b148061360357505f835460ff16600281111561360157613601614d1d565b145b1561369a5782546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152610100909204909116906370a08231906024015b602060405180830381865afa15801561366f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136939190615809565b905061344a565b6002835460ff1660028111156136b2576136b2614d1d565b0361371057825460038401546040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301526024820192909252610100909204169062fdd58e90604401613654565b505f92915050565b6001825460ff16600281111561373057613730614d1d565b148061375057505f825460ff16600281111561374e5761374e614d1d565b145b15613793576003548254613776916001600160a01b036101009092048216911683614158565b815461378f9061010090046001600160a01b03166145ac565b5050565b6002825460ff1660028111156137ab576137ab614d1d565b0361378f57815460038054908401546040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03928316602482015260448101919091526064810184905260a060848201525f60a4820152610100909204169063f242432a9060c4015f604051808303815f87803b15801561383a575f80fd5b505af115801561384c573d5f803e3d5ffd5b505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b5f846001600160a01b03166328d6183b6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613907575060408051601f3d908101601f1916820190925261390491810190615adb565b60015b15613a5b577fffffffff0000000000000000000000000000000000000000000000000000000081167f81818aa300000000000000000000000000000000000000000000000000000000148061399d57507fffffffff0000000000000000000000000000000000000000000000000000000081167ff1a436d900000000000000000000000000000000000000000000000000000000145b806139e957507fffffffff0000000000000000000000000000000000000000000000000000000081167f89b50fd900000000000000000000000000000000000000000000000000000000145b15613a59575f6139fb84860186615b1a565b905080604001516001600160a01b0316866001600160a01b031614613a4c576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604001519150613a5e9050565b505b505f5b949350505050565b85545f908190819061010090046001600160a01b0316613a86575f613a90565b613a9089896135ca565b6040517fbb1757cf0000000000000000000000000000000000000000000000000000000081529091506001600160a01b0389169063bb1757cf90613adc908a9089908990600401615580565b6020604051808303815f875af1158015613af8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b1c91906154d3565b613b58578685856040517f4139d81d00000000000000000000000000000000000000000000000000000000815260040161196d93929190615580565b88545f9061010090046001600160a01b0316613b74575f613b7e565b613b7e8a8a6135ca565b90505f818311613b8e575f613b98565b613b98828461556d565b90505f61271067ffffffffffffffff168c6002015483613bb891906153e4565b613bc291906153fb565b90505f8a6001600160a01b03168a6001600160a01b03161480613bec57506001600160a01b038a16155b613c1a5760075461271090613c0b9067ffffffffffffffff16856153e4565b613c1591906153fb565b613c1c565b5f5b9050818111613c2b5780613c2d565b815b9650613c39878361556d565b95505050505050965096945050505050565b6001835460ff166002811115613c6357613c63614d1d565b1480613c8357505f835460ff166002811115613c8157613c81614d1d565b145b15613ca3578254611b5a9061010090046001600160a01b03168284614158565b6002835460ff166002811115613cbb57613cbb614d1d565b03611b5a57825460038401546040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03848116602483015260448201929092526064810185905260a060848201525f60a4820152610100909204169063f242432a9060c4015f604051808303815f87803b158015613d47575f80fd5b505af1158015613d59573d5f803e3d5ffd5b50505050505050565b6001600160a01b03167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b5f8087604001519050613def7fa9216705000000000000000000000000000000000000000000000000000000008960200151614481565b8751613e5e5760208801516040517fe1c444480000000000000000000000000000000000000000000000000000000081527fa92167050000000000000000000000000000000000000000000000000000000060048201526001600160a01b03909116602482015260440161196d565b613e897fa921670500000000000000000000000000000000000000000000000000000000895f614336565b91505f826001600160a01b0316634e7165a2836040518263ffffffff1660e01b8152600401613eb89190614e7b565b5f60405180830381865afa158015613ed2573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052613ef99190810190615290565b905080515f146140da575f80613f0f838a614668565b6040517ffa4ca9b100000000000000000000000000000000000000000000000000000000815291935091506001600160a01b038b169063fa4ca9b190613f59908590600401614e7b565b6020604051808303815f875af1158015613f75573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f9991906154d3565b613fcf576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffa4ca9b10000000000000000000000000000000000000000000000000000000081526001600160a01b038b169063fa4ca9b190614014908690600401614e7b565b6020604051808303815f875af1158015614030573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061405491906154d3565b61408a576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8380602001905181019061409f91906152cd565b90506140d688886001600160a01b038c166140be5783602001516140c0565b8b5b858e67ffffffffffffffff16865f01518b614801565b5050505b6040517f439fab910000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063439fab919061411f908590600401614e7b565b5f604051808303815f87803b158015614136575f80fd5b505af1158015614148573d5f803e3d5ffd5b5050505050509695505050505050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f5114166141a157803d853b1517106141a1576390b8ec185f526004601cfd5b505f603452505050565b6060815115614331576040519050600482018051835184602001017f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f6020850183198552866020015b8051805f1a61428957600190811a016080811161422c5760028201915080368437918201918482106142265750614317565b506141f4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83529182017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800191600291909101908482106142265750614317565b80835283811684011783171980157fc0c8c8d0c8e8d0d8c8e8e0e8d0d8e0f0c8d0e8d0e0e0d8f0d0d0e0d8f8f8f8f8601f6f8421084210842108cc6318c6db6d54be660204081020408185821060071b86811c67ffffffffffffffff1060061b1795861c0260181a1c161a90911860031c0191820191018381106141f4578381111561431757838103820391505b509290935250601f198382030183525f8152602001604052505b919050565b5f614345848460200151614481565b613a5e838361493d565b5f8054606091906143629060019061556d565b9050855167ffffffffffffffff81111561437e5761437e615149565b6040519080825280602002602001820160405280156143a7578160200160208202803683370190505b5091505f5b8651811015614477576143dc8782815181106143ca576143ca6150e0565b60200260200101518787878686613db8565b8382815181106143ee576143ee6150e0565b60200260200101906001600160a01b031690816001600160a01b031681525050828181518110614420576144206150e0565b60200260200101516001600160a01b031681837f500ae5072ea307af9f1d7b29f92e0379b973527e56e000e5445b7b9f5fbb09ae6001604051614467911515815260200190565b60405180910390a46001016143ac565b5050949350505050565b6001600160a01b038116158061453557506040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527fffffffff00000000000000000000000000000000000000000000000000000000831660048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa15801561450f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061453391906154d3565b155b1561378f576040517fe1c444480000000000000000000000000000000000000000000000000000000081527fffffffff00000000000000000000000000000000000000000000000000000000831660048201526001600160a01b038216602482015260440161196d565b639f03a0265f526004601cfd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa158015614609573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061462d9190615809565b90505f81118015614649575060055467ffffffffffffffff1681105b1561378f5760035461378f906001600160a01b03848116911683614158565b60605f808480602001905181019061468091906152cd565b90508360018251600281111561469857614698614d1d565b14806146b557505f825160028111156146b3576146b3614d1d565b145b15614763575f82606001518060200190518101906146d39190615375565b80519091505f90612710906146f39067ffffffffffffffff8616906153e4565b6146fd91906153fb565b6040805160208082018352838252825190810184905292935091015b60408051601f19818403018152918152606087019190915230868201525161474590869060200161551c565b604051602081830303815290604052829650965050505050506147fa565b60028251600281111561477857614778614d1d565b03610b09575f82606001518060200190518101906147969190615446565b90505f61271067ffffffffffffffff168367ffffffffffffffff1683602001516147c091906153e4565b6147ca91906153fb565b604080516060810182528451815260208082018490528583015182840152915192935091614719918391016154ee565b9250929050565b5f600283600281111561481657614816614d1d565b03614833578180602001905181019061482f9190615bc8565b5090505b5f6040518060a0016040528085600281111561485157614851614d1d565b8152602001886001600160a01b031681526020018781526020018681526020018381525090508060065f6148858c8c613421565b815260208101919091526040015f208151815482907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660018360028111156148d0576148d0614d1d565b0217905550602082015181546001600160a01b03909116610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff9091161781556040820151600182015560608201516002820155608090910151600390910155505050505050505050565b81515f9061494f578260200151614965565b61496583602001516001600160a01b03166149f4565b835190915080156149735750815b1561344a5760408084015190517f439fab910000000000000000000000000000000000000000000000000000000081526001600160a01b0383169163439fab91916149c19190600401614e7b565b5f604051808303815f87803b1580156149d8575f80fd5b505af11580156149ea573d5f803e3d5ffd5b5050505092915050565b5f61344a5f835f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f0905080614a415763301164255f526004601cfd5b5f60215292915050565b828054828255905f5260205f20908101928215614ab6579160200282015b82811115614ab657825182547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909116178255602090920191600190910190614a69565b50614ac2929150614ac6565b5090565b5b80821115614ac2575f8155600101614ac7565b5f60208284031215614aea575f80fd5b5035919050565b5f8151808452602084019350602083015f5b82811015614b2a5781516001600160a01b0316865260209586019590910190600101614b03565b5093949350505050565b602081526001600160a01b0382511660208201525f6020830151614b6360408401826001600160a01b03169052565b5060408301516001600160a01b03811660608401525060608301516001600160a01b038116608084015250608083015161010060a0840152614ba9610120840182614af1565b905060a0840151614bc660c085018267ffffffffffffffff169052565b5060c084015160e084015260e0840151614bec6101008501826001600160a01b03169052565b509392505050565b5f8083601f840112614c04575f80fd5b50813567ffffffffffffffff811115614c1b575f80fd5b6020830191508360208285010111156147fa575f80fd5b5f805f8060608587031215614c45575f80fd5b8435935060208501359250604085013567ffffffffffffffff811115614c69575f80fd5b614c7587828801614bf4565b95989497509550505050565b6001600160a01b03811681146133f8575f80fd5b5f805f805f60808688031215614ca9575f80fd5b8535945060208601359350604086013567ffffffffffffffff811115614ccd575f80fd5b614cd988828901614bf4565b9094509250506060860135614ced81614c81565b809150509295509295909350565b5f60208284031215614d0b575f80fd5b8135614d1681614c81565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60038110614d7f577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9052565b5f60a082019050614d95828451614d4a565b6001600160a01b03602084015116602083015260408301516040830152606083015160608301526080830151608083015292915050565b67ffffffffffffffff811681146133f8575f80fd5b5f60208284031215614df1575f80fd5b8135614d1681614dcc565b5f805f60408486031215614e0e575f80fd5b8335614e1981614c81565b9250602084013567ffffffffffffffff811115614e34575f80fd5b614e4086828701614bf4565b9497909650939450505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f614d166020830184614e4d565b5f8060408385031215614e9e575f80fd5b50508035926020909101359150565b5f805f805f8060a08789031215614ec2575f80fd5b86359550602087013594506040870135614edb81614c81565b9350606087013567ffffffffffffffff811115614ef6575f80fd5b614f0289828a01614bf4565b9094509250506080870135614f1681614c81565b809150509295509295509295565b5f805f805f60808688031215614f38575f80fd5b85359450602086013593506040860135614f5181614c81565b9250606086013567ffffffffffffffff811115614f6c575f80fd5b614f7888828901614bf4565b969995985093965092949392505050565b5f805f60608486031215614f9b575f80fd5b8335614fa681614c81565b92506020840135614fb681614c81565b91506040840135614fc681614c81565b809150509250925092565b5f8060408385031215614fe2575f80fd5b82359150602083013567ffffffffffffffff811115614fff575f80fd5b830160608186031215615010575f80fd5b809150509250929050565b5f805f806060858703121561502e575f80fd5b843567ffffffffffffffff811115615044575f80fd5b61505087828801614bf4565b90989097506020870135966040013595509350505050565b5f8060208385031215615079575f80fd5b823567ffffffffffffffff81111561508f575f80fd5b61509b85828601614bf4565b90969095509350505050565b60a081016150b58288614d4a565b6001600160a01b03861660208301528460408301528360608301528260808301529695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b81835281816020850137505f602082840101525f6020601f19601f840116840101905092915050565b602081525f613a5e60208301848661510d565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516080810167ffffffffffffffff8111828210171561519957615199615149565b60405290565b6040516060810167ffffffffffffffff8111828210171561519957615199615149565b604051610100810167ffffffffffffffff8111828210171561519957615199615149565b604051601f8201601f1916810167ffffffffffffffff8111828210171561520f5761520f615149565b604052919050565b5f67ffffffffffffffff82111561523057615230615149565b50601f01601f191660200190565b5f82601f83011261524d575f80fd5b815161526061525b82615217565b6151e6565b818152846020838601011115615274575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f602082840312156152a0575f80fd5b815167ffffffffffffffff8111156152b6575f80fd5b613a5e8482850161523e565b805161433181614c81565b5f602082840312156152dd575f80fd5b815167ffffffffffffffff8111156152f3575f80fd5b820160808185031215615304575f80fd5b61530c615176565b81516003811061531a575f80fd5b8152602082015161532a81614c81565b6020820152604082015161533d81614c81565b6040820152606082015167ffffffffffffffff81111561535b575f80fd5b6153678682850161523e565b606083015250949350505050565b5f6020828403128015615386575f80fd5b506040516020810167ffffffffffffffff811182821017156153aa576153aa615149565b6040529151825250919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808202811582820484141761344a5761344a6153b7565b5f8261542e577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b8082018082111561344a5761344a6153b7565b5f60208284031215615456575f80fd5b815167ffffffffffffffff81111561546c575f80fd5b82016060818503121561547d575f80fd5b61548561519f565b8151815260208083015190820152604082015167ffffffffffffffff8111156154ac575f80fd5b6154b88682850161523e565b604083015250949350505050565b80151581146133f8575f80fd5b5f602082840312156154e3575f80fd5b8151614d16816154c6565b6020815281516020820152602082015160408201525f6040830151606080840152613a5e6080840182614e4d565b6020815261552e602082018351614d4a565b6001600160a01b0360208301511660408201526001600160a01b0360408301511660608201525f6060830151608080840152613a5e60a0840182614e4d565b8181038181111561344a5761344a6153b7565b6001600160a01b0384168152604060208201525f6155a260408301848661510d565b95945050505050565b8581528460208201526001600160a01b0384166040820152608060608201525f6155d960808301848661510d565b979650505050505050565b828152604060208201525f82356155fa816154c6565b15156040830152602083013561560f81614c81565b6001600160a01b031660608301526040830135368490037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1018112615652575f80fd5b830160208101903567ffffffffffffffff81111561566e575f80fd5b80360382131561567c575f80fd5b6060608085015261569160a08501828461510d565b9695505050505050565b5f602082840312156156ab575f80fd5b8151614d1681614c81565b5f82601f8301126156c5575f80fd5b81356156d361525b82615217565b8181528460208386010111156156e7575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60608236031215615713575f80fd5b61571b61519f565b8235615726816154c6565b8152602083013561573681614c81565b6020820152604083013567ffffffffffffffff811115615754575f80fd5b615760368286016156b6565b60408301525092915050565b5f6020828403121561577c575f80fd5b813567ffffffffffffffff811115615792575f80fd5b8201604081850312156157a3575f80fd5b6040805190810167ffffffffffffffff811182821017156157c6576157c6615149565b60405281356157d481614c81565b8152602082013567ffffffffffffffff8111156157ef575f80fd5b6157fb868285016156b6565b602083015250949350505050565b5f60208284031215615819575f80fd5b5051919050565b602081526001600160a01b0382511660208201525f6020830151604080840152613a5e6060840182614e4d565b5f806040838503121561585e575f80fd5b8251602084015190925061501081614c81565b5f60608284031215615881575f80fd5b61588961519f565b90508151615896816154c6565b815260208201516158a681614c81565b6020820152604082015167ffffffffffffffff8111156158c4575f80fd5b6157608482850161523e565b5f82601f8301126158df575f80fd5b815167ffffffffffffffff8111156158f9576158f9615149565b8060051b615909602082016151e6565b91825260208185018101929081019086841115615924575f80fd5b6020860192505b8383101561569157825167ffffffffffffffff811115615949575f80fd5b615958886020838a0101615871565b8352506020928301929091019061592b565b805161433181614dcc565b5f60208284031215615985575f80fd5b815167ffffffffffffffff81111561599b575f80fd5b820161010081850312156159ad575f80fd5b6159b56151c2565b6159be826152c2565b8152602082015167ffffffffffffffff8111156159d9575f80fd5b6159e586828501615871565b602083015250604082015167ffffffffffffffff811115615a04575f80fd5b615a1086828501615871565b604083015250606082015167ffffffffffffffff811115615a2f575f80fd5b615a3b86828501615871565b606083015250608082015167ffffffffffffffff811115615a5a575f80fd5b615a66868285016158d0565b608083015250615a7860a0830161596a565b60a082015260c08281015190820152615a9360e083016152c2565b60e0820152949350505050565b67ffffffffffffffff818116838216019081111561344a5761344a6153b7565b5f60208284031215615ad0575f80fd5b8151614d1681614dcc565b5f60208284031215615aeb575f80fd5b81517fffffffff0000000000000000000000000000000000000000000000000000000081168114614d16575f80fd5b5f60208284031215615b2a575f80fd5b813567ffffffffffffffff811115615b40575f80fd5b820160608185031215615b51575f80fd5b615b5961519f565b813567ffffffffffffffff811115615b6f575f80fd5b615b7b868285016156b6565b825250602082013567ffffffffffffffff811115615b97575f80fd5b615ba3868285016156b6565b60208301525060408201359150615bb982614c81565b60408101919091529392505050565b5f8060408385031215615bd9575f80fd5b8251602084015190925067ffffffffffffffff811115615bf7575f80fd5b615c038582860161523e565b915050925092905056fea2646970667358221220489fbe95c5bc1681a5561558bce192412633c09eed2d269b0521f3e1cc37bbfc64736f6c634300081a0033";function W(s){const f=s.state.current,e=s.state.connections.get(f),a=e==null?void 0:e.accounts,t=a==null?void 0:a[0],b=s.chains.find(c=>c.id===(e==null?void 0:e.chainId)),d=s.state.status;switch(d){case"connected":return{address:t,addresses:a,chain:b,chainId:e==null?void 0:e.chainId,connector:e==null?void 0:e.connector,isConnected:!0,isConnecting:!1,isDisconnected:!1,isReconnecting:!1,status:d};case"reconnecting":return{address:t,addresses:a,chain:b,chainId:e==null?void 0:e.chainId,connector:e==null?void 0:e.connector,isConnected:!!t,isConnecting:!1,isDisconnected:!1,isReconnecting:!0,status:d};case"connecting":return{address:t,addresses:a,chain:b,chainId:e==null?void 0:e.chainId,connector:e==null?void 0:e.connector,isConnected:!1,isConnecting:!0,isDisconnected:!1,isReconnecting:!1,status:d};case"disconnected":return{address:void 0,addresses:void 0,chain:void 0,chainId:void 0,connector:void 0,isConnected:!1,isConnecting:!1,isDisconnected:!0,isReconnecting:!1,status:d}}}function y0(s){return s.state.chainId}function G(s,f,e){const a=s[f.name];if(typeof a=="function")return a;const t=s[e];return typeof t=="function"?t:b=>f(s,b)}const A0="2.13.8",C0=()=>`@wagmi/core@${A0}`;var k=function(s,f,e,a){if(e==="a"&&!a)throw new TypeError("Private accessor was defined without a getter");if(typeof f=="function"?s!==f||!a:!f.has(s))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?a:e==="a"?a.call(s):a?a.value:f.get(s)},F,U;class E extends Error{get docsBaseUrl(){return"https://wagmi.sh/core"}get version(){return C0()}constructor(f,e={}){var b;super(),F.add(this),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"WagmiCoreError"});const a=e.cause instanceof E?e.cause.details:(b=e.cause)!=null&&b.message?e.cause.message:e.details,t=e.cause instanceof E&&e.cause.docsPath||e.docsPath;this.message=[f||"An error occurred.","",...e.metaMessages?[...e.metaMessages,""]:[],...t?[`Docs: ${this.docsBaseUrl}${t}.html${e.docsSlug?`#${e.docsSlug}`:""}`]:[],...a?[`Details: ${a}`]:[],`Version: ${this.version}`].join(`
2
+ `),e.cause&&(this.cause=e.cause),this.details=a,this.docsPath=t,this.metaMessages=e.metaMessages,this.shortMessage=f}walk(f){return k(this,F,"m",U).call(this,this,f)}}F=new WeakSet,U=function s(f,e){return e!=null&&e(f)?f:f.cause?k(this,F,"m",s).call(this,f.cause,e):f};class I0 extends E{constructor(){super("Connector not connected."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorNotConnectedError"})}}class v0 extends E{constructor({address:f,connector:e}){super(`Account "${f}" not found for connector "${e.name}".`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorAccountNotFoundError"})}}class B0 extends E{constructor({connectionChainId:f,connectorChainId:e}){super(`The current chain of the connector (id: ${e}) does not match the connection's chain (id: ${f}).`,{metaMessages:[`Current Chain ID: ${e}`,`Expected Chain ID: ${f}`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorChainMismatchError"})}}class P0 extends E{constructor({connector:f}){super(`Connector "${f.name}" unavailable while reconnecting.`,{details:["During the reconnection step, the only connector methods guaranteed to be available are: `id`, `name`, `type`, `uuid`.","All other methods are not guaranteed to be available until reconnection completes and connectors are fully restored.","This error commonly occurs for connectors that asynchronously inject after reconnection has already started."].join(" ")}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorUnavailableReconnectingError"})}}async function X(s,f={}){let e;if(f.connector){const{connector:i}=f;if(s.state.status==="reconnecting"&&!i.getAccounts&&!i.getChainId)throw new P0({connector:i});const[w,y]=await Promise.all([i.getAccounts(),i.getChainId()]);e={accounts:w,chainId:y,connector:i}}else e=s.state.connections.get(s.state.current);if(!e)throw new I0;const a=f.chainId??e.chainId,t=await e.connector.getChainId();if(t!==e.chainId)throw new B0({connectionChainId:e.chainId,connectorChainId:t});const b=e.connector;if(b.getClient)return b.getClient({chainId:a});const d=M.parseAccount(f.account??e.accounts[0]);if(d.address=M.getAddress(d.address),f.account&&!e.accounts.some(i=>i.toLowerCase()===d.address.toLowerCase()))throw new v0({address:d.address,connector:b});const c=s.chains.find(i=>i.id===a),n=await e.connector.getProvider({chainId:a});return u.createClient({account:d,chain:c,name:"Connector Client",transport:i=>u.custom(n)({...i,retryCount:0})})}async function E0(s,f){const{abi:e,chainId:a,connector:t,...b}=f;let d;f.account?d=f.account:d=(await X(s,{chainId:a,connector:t})).account;const c=s.getClient({chainId:a}),n=G(c,$.simulateContract,"simulateContract"),{result:i,request:w}=await n({...b,abi:e,account:d});return{chainId:c.chain.id,result:i,request:{__mode:"prepared",...w,chainId:a}}}async function H(s,f){const{account:e,chainId:a,connector:t,__mode:b,...d}=f;let c;typeof e=="object"&&e.type==="local"?c=s.getClient({chainId:a}):c=await X(s,{account:e,chainId:a,connector:t});const{connector:n}=W(s);let i;if(b==="prepared"||n!=null&&n.supportsSimulation)i=d;else{const{request:r}=await E0(s,{...d,account:e,chainId:a});i=r}return await G(c,$.writeContract,"writeContract")({...i,...e?{account:e}:{},chain:a?{id:a}:null})}function L(s){return s.address!==void 0&&typeof s.address=="object"?(f,e)=>{var d;const a=y0(f),t=W(f);let b;return e.chainId?b=e.chainId:e.account&&e.account===t.address||e.account===void 0?b=t.chainId:b=a,H(f,{...e,...s.functionName?{functionName:s.functionName}:{},address:b?(d=s.address)==null?void 0:d[b]:void 0,abi:s.abi})}:(f,e)=>H(f,{...e,...s.address?{address:s.address}:{},...s.functionName?{functionName:s.functionName}:{},abi:s.abi})}const q={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1,VITE_BOOST_MAINNET_SIGNER_EOA:"0xCBD0C302040bC803B4B2EDaF21Be0e49Deff5480",VITE_BOOST_TESTNET_SIGNER_EOA:"0xd63167e9db11B108940b2E8236581F961f33f396"},_=10000n,S={...q!=null&&q.VITE_BOOST_CORE_ADDRESS?{31337:void 0}:{},...J.BoostCore},V0=S[11155111]||u.zeroAddress;function _0(s){return s.address}const z=class z extends t0.Deployable{get addresses(){return this.constructor.addresses}constructor({config:f,account:e,...a}){if(_0(a)&&a.address)super({account:e,config:f},a.address);else{const{address:t}=h.assertValidAddressByChainId(f,S);super({account:e,config:f},t)}this.abi=o.u}async createBoost(f,e){const[a,t]=this.validateDeploymentConfig(f),b=e==null?void 0:e.chainId,{chainId:d,address:c}=h.assertValidAddressByChainId(t.config,this.addresses,b),n=L({abi:o.u,functionName:"createBoost",address:c}),i=await this.prepareCreateBoostPayload(c,d,a,t),w=await n(t.config,{...this.optionallyAttachAccount(t.account),...e,chainId:d,args:[I.prepareBoostPayload(i)]}),y=await P.waitForTransactionReceipt(t.config,{hash:w}),r=u.parseEventLogs({abi:o.u,eventName:"BoostCreated",logs:y.logs}).at(0);let l=0n;if(!r)throw new v.BoostCoreNoIdentifierEmitted;l=r==null?void 0:r.args.boostId;const g=await this.readBoost(l);return new I.Boost({id:l,budget:a.budget.at(g.budget),action:a.action.at(g.action),validator:a.validator.at(g.validator),allowList:a.allowList.at(g.allowList),incentives:a.incentives.map((C,A)=>C.at(g.incentives.at(A))),protocolFee:g.protocolFee,maxParticipants:g.maxParticipants,owner:g.owner})}async createBoostRaw(f,e){const{request:a,result:t}=await this.simulateCreateBoost(f,e);return{hash:await o.xN(this._config,a),result:t}}async simulateCreateBoost(f,e){const[a,t]=this.validateDeploymentConfig(f),b=e==null?void 0:e.chainId,{chainId:d,address:c}=h.assertValidAddressByChainId(t.config,this.addresses,b),n=await this.prepareCreateBoostPayload(c,d,a,t);return await o.n5(this._config,{...this.optionallyAttachAccount(),...e,address:c,chainId:d,args:[I.prepareBoostPayload(n)]})}async createBoostWithTransparentBudget(f,e,a,t){const[b,d]=this.validateDeploymentConfig({...a,budget:this.TransparentBudget(typeof f=="string"?f:f.assertValidAddress())}),c=t==null?void 0:t.chainId,{chainId:n,address:i}=h.assertValidAddressByChainId(d.config,this.addresses,c),w=L({abi:o.T,functionName:"createBoost",address:typeof f=="string"?f:f.assertValidAddress()}),y=await this.prepareCreateBoostPayload(i,n,b,d),r=await w(d.config,{...this.optionallyAttachAccount(d.account),...t,chainId:n,args:[e.map(p.prepareTransfer),i,I.prepareBoostPayload(y)]}),l=await P.waitForTransactionReceipt(d.config,{hash:r}),g=u.parseEventLogs({abi:o.u,eventName:"BoostCreated",logs:l.logs}).at(0);let C=0n;if(!g)throw new v.BoostCoreNoIdentifierEmitted;C=g==null?void 0:g.args.boostId;const A=await this.readBoost(C);return new I.Boost({id:C,budget:b.budget.at(A.budget),action:b.action.at(A.action),validator:b.validator.at(A.validator),allowList:b.allowList.at(A.allowList),incentives:b.incentives.map((V,R)=>V.at(A.incentives.at(R))),protocolFee:A.protocolFee,maxParticipants:A.maxParticipants,owner:A.owner})}async createBoostWithTransparentBudgetRaw(f,e,a,t){const{request:b,result:d}=await this.simulateCreateBoostWithTransparentBudget(f,e,a,t);return{hash:await o.wX(this._config,b),result:d}}async simulateCreateBoostWithTransparentBudget(f,e,a,t){const[b,d]=this.validateDeploymentConfig({...a,budget:this.TransparentBudget(typeof f=="string"?f:f.assertValidAddress())}),c=t==null?void 0:t.chainId,{chainId:n,address:i}=h.assertValidAddressByChainId(d.config,this.addresses,c),w=await this.prepareCreateBoostPayload(i,n,b,d);return await o.kX(this._config,{...this.optionallyAttachAccount(),...t,address:typeof f=="string"?f:f.assertValidAddress(),chainId:n,args:[e.map(p.prepareTransfer),i,I.prepareBoostPayload(w)]})}async createBoostWithPermit2(f,e,a,t,b,d,c){const[n,i]=this.validateDeploymentConfig({...a,budget:this.TransparentBudget(typeof f=="string"?f:f.assertValidAddress())}),w=c==null?void 0:c.chainId,{chainId:y,address:r}=h.assertValidAddressByChainId(i.config,this.addresses,w),l=L({abi:o.T,functionName:"createBoostWithPermit2",address:typeof f=="string"?f:f.assertValidAddress()}),g=await this.prepareCreateBoostPayload(r,y,n,i),C=await l(i.config,{...this.optionallyAttachAccount(i.account),...c,chainId:y,args:[e.map(p.prepareTransfer),r,I.prepareBoostPayload(g),t,b,d]}),A=await P.waitForTransactionReceipt(i.config,{hash:C}),V=u.parseEventLogs({abi:o.u,eventName:"BoostCreated",logs:A.logs}).at(0);let R=0n;if(!V)throw new v.BoostCoreNoIdentifierEmitted;R=V==null?void 0:V.args.boostId;const B=await this.readBoost(R);return new I.Boost({id:R,budget:n.budget.at(B.budget),action:n.action.at(B.action),validator:n.validator.at(B.validator),allowList:n.allowList.at(B.allowList),incentives:n.incentives.map((Y,Z)=>Y.at(B.incentives.at(Z))),protocolFee:B.protocolFee,maxParticipants:B.maxParticipants,owner:B.owner})}async createBoostWithPermit2Raw(f,e,a,t,b,d,c){const{request:n,result:i}=await this.simulateCreateBoostWithPermit2(f,e,a,t,b,d,c);return{hash:await o.gX(this._config,n),result:i}}async simulateCreateBoostWithPermit2(f,e,a,t,b,d,c){const[n,i]=this.validateDeploymentConfig({...a,budget:this.TransparentBudget(typeof f=="string"?f:f.assertValidAddress())}),w=c==null?void 0:c.chainId,{chainId:y,address:r}=h.assertValidAddressByChainId(i.config,this.addresses,w),l=await this.prepareCreateBoostPayload(r,y,n,i);return await o.DX(this._config,{...this.optionallyAttachAccount(),...c,address:typeof f=="string"?f:f.assertValidAddress(),chainId:y,args:[e.map(p.prepareTransfer),r,I.prepareBoostPayload(l),t,b,d]})}async prepareCreateBoostPayload(f,e,a,t){var y;if(!a.owner&&(a.owner=((y=this._account)==null?void 0:y.address)||P.getAccount(t.config).address||u.zeroAddress,a.owner===u.zeroAddress))throw new v.DeployableUnknownOwnerProvidedError;if(!a.validator){const l=P.getChains(t.config).filter(A=>!!this.addresses[A.id]&&A.id===e).at(0);if(!l)throw new v.InvalidProtocolChainIdError(e,Object.keys(this.addresses).map(Number));const C=[l.testnet||l.id===31337?T.BoostValidatorEOA.TESTNET:T.BoostValidatorEOA.MAINNET];l.id===31337&&C.push("0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"),a.validator=this.LimitedSignerValidatorV2({signers:C,validatorCaller:f,maxClaimCount:1})}let b=u.zeroAddress;if(a.budget.address){if(b=a.budget.address,!(a.budget instanceof m.TransparentBudget)&&!await a.budget.isAuthorized(f))throw new v.BudgetMustAuthorizeBoostCore(f)}else throw new v.MustInitializeBudgetError;let d={instance:u.zeroAddress,isBase:!0,parameters:u.zeroHash};if(a.action.address){const r=a.action.isBase;d={isBase:r,instance:a.action.address,parameters:r&&a.action.buildParameters(void 0,t).args.at(0)||u.zeroHash}}else d.parameters=a.action.buildParameters(void 0,t).args.at(0)||u.zeroHash,d.instance=h.assertValidAddressByChainId(t.config,a.action.bases,e).address;let c={instance:u.zeroAddress,isBase:!0,parameters:u.zeroHash};if(a.validator.address){const r=a.validator.isBase;c={isBase:r,instance:a.validator.address,parameters:r&&a.validator.buildParameters(void 0,t).args.at(0)||u.zeroHash}}else c.parameters=a.validator.buildParameters(void 0,t).args.at(0)||u.zeroHash,c.instance=h.assertValidAddressByChainId(t.config,a.validator.bases,e).address;let n={instance:u.zeroAddress,isBase:!0,parameters:u.zeroHash};if(a.allowList||(a.allowList=this.OpenAllowList()),a.allowList.address){const r=a.allowList.isBase;n={isBase:r,instance:a.allowList.address,parameters:u.zeroHash}}else n.parameters=a.allowList.buildParameters(void 0,t).args.at(0)||u.zeroHash,n.instance=h.assertValidAddressByChainId(t.config,a.allowList.bases,e).address;const i=a.incentives.map(()=>({instance:u.zeroAddress,isBase:!0,parameters:u.zeroHash}));for(let r=0;r<a.incentives.length;r++){const l=a.incentives.at(r);if(l.address){const g=l.isBase;if(!g)throw new v.IncentiveNotCloneableError(l);i[r]={isBase:g,instance:l.address,parameters:g&&l.buildParameters(void 0,t).args.at(0)||u.zeroHash}}else i[r].parameters=l.buildParameters(void 0,t).args.at(0)||u.zeroHash,i[r].instance=h.assertValidAddressByChainId(t.config,l.bases,e).address}return{budget:b,action:d,validator:c,allowList:n,incentives:i,protocolFee:a.protocolFee||0n,maxParticipants:a.maxParticipants||0n,owner:a.owner}}async claimIncentive(f,e,a,t,b){return await this.awaitResult(this.claimIncentiveRaw(f,e,a,t,b))}async claimIncentiveRaw(f,e,a,t,b){const{request:d,result:c}=await o.XN(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,b==null?void 0:b.chainId),args:[f,e,a,t],...this.optionallyAttachAccount(),...b});return{hash:await o.EN(this._config,d),result:c}}async claimIncentiveFor(f,e,a,t,b,d){return await this.awaitResult(this.claimIncentiveForRaw(f,e,a,t,b,d))}async claimIncentiveForRaw(f,e,a,t,b,d){const{request:c,result:n}=await o.YN(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,d==null?void 0:d.chainId),args:[f,e,a,t,b],...this.optionallyAttachAccount(),...d});return{hash:await o.zN(this._config,c),result:n}}async readBoost(f,e){var a;try{let t;return typeof f=="string"?t=BigInt(f):t=f,await o.mN(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[t],...this.optionallyAttachAccount(),...e})}catch(t){throw(a=t==null?void 0:t.message)!=null&&a.includes("bounds")?new v.BoostNotFoundError(String(f)):t}}async getBoost(f,e){let a;typeof f=="string"?a=BigInt(f):a=f;const{protocolFee:t,maxParticipants:b,owner:d,...c}=await this.readBoost(a,e),n={config:this._config,account:this._account},[i,w,y,r,l]=await Promise.all([K.actionFromAddress(n,c.action,e),m.budgetFromAddress(n,c.budget,e),T.validatorFromAddress(n,c.validator,e),N.allowListFromAddress(n,c.allowList,e),Promise.all(c.incentives.map(g=>x.incentiveFromAddress(n,g,e)))]);return new I.Boost({id:a,action:i,budget:w,validator:y,allowList:r,incentives:l,protocolFee:t,maxParticipants:b,owner:d})}async getBoostCount(f){return await o.bN(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[],...this.optionallyAttachAccount(),...f})}async isAuthorized(f,e){const a=await this.createBoostAuth(e);return o.qP(this._config,{address:a,args:[f],...this.optionallyAttachAccount(),...e})}async createBoostAuth(f){return await o.cN(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[],...this.optionallyAttachAccount(),...f})}async setCreateBoostAuth(f,e){return await this.awaitResult(this.setCreateBoostAuthRaw(f.assertValidAddress(),{...e}))}async setCreateBoostAuthRaw(f,e){const{request:a,result:t}=await o.r5(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[f],...this.optionallyAttachAccount(),...e});return{hash:await o.PN(this._config,a),result:t}}async protocolFee(f){return await o.gN(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[],...this.optionallyAttachAccount(),...f})}async protocolFeeReceiver(f){return await o.IN(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[],...this.optionallyAttachAccount(),...f})}async setProtocolFeeReceiver(f,e){return await this.awaitResult(this.setProtocolFeeReceiverRaw(f,{...e}))}async setProtocolFeeReceiverRaw(f,e){const{request:a,result:t}=await o.l5(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[f],...this.optionallyAttachAccount(),...e});return{hash:await o.qN(this._config,a),result:t}}async referralFee(f){return await o.NN(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[],...this.optionallyAttachAccount(),...f})}async setReferralFee(f,e){return await this.awaitResult(this.setReferralFeeRaw(f,{...e}))}async setReferralFeeRaw(f,e){const{request:a,result:t}=await o.y5(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,e==null?void 0:e.chainId),args:[f],...this.optionallyAttachAccount(),...e});return{hash:await o.UN(this._config,a),result:t}}async getIncentiveFeesInfo(f,e,a){const t=u.keccak256(u.encodePacked(["uint256","uint256"],[f,e]));return await o.fN(this._config,{...h.assertValidAddressByChainId(this._config,this.addresses,a==null?void 0:a.chainId),args:[t],...this.optionallyAttachAccount(),...a})}async getClaimFromTransaction(f){var t;const e=await P.getTransactionReceipt(this._config,f);return(t=u.parseEventLogs({abi:o.u,eventName:"BoostClaimed",logs:e.logs}).at(0))==null?void 0:t.args}async calculateProtocolFee(f,e){const a=await this.protocolFee(e);return f*a/_}PassthroughAuth(f){return new a0.PassthroughAuth({config:this._config,account:this._account},f)}EventAction(f,e){return new Q.EventAction({config:this._config,account:this._account},f,e)}OpenAllowList(f){return new N.OpenAllowList({config:this._config,account:this._account},void 0,f)}SimpleAllowList(f,e){return new f0.SimpleAllowList({config:this._config,account:this._account},f,e)}SimpleDenyList(f,e){return new e0.SimpleDenyList({config:this._config,account:this._account},f,e)}OffchainAccessList(f,e){return new N.OffchainAccessList({config:this._config,account:this._account},f,e)}ManagedBudget(f){return typeof f!="string"&&!f.authorized.includes(this.assertValidAddress())&&(f.authorized=[this.assertValidAddress(),...f.authorized],f.roles=[D.Roles.MANAGER,...f.roles]),new p.ManagedBudget({config:this._config,account:this._account},f)}ManagedBudgetWithFees(f){return typeof f!="string"&&!f.authorized.includes(this.assertValidAddress())&&(f.authorized=[this.assertValidAddress(),...f.authorized],f.roles=[D.Roles.MANAGER,...f.roles]),new m.ManagedBudgetWithFees({config:this._config,account:this._account},f)}ManagedBudgetWithFeesV2(f){return typeof f!="string"&&!f.authorized.includes(this.assertValidAddress())&&(f.authorized=[this.assertValidAddress(),...f.authorized],f.roles=[D.Roles.MANAGER,...f.roles]),new m.ManagedBudgetWithFeesV2({config:this._config,account:this._account},f)}TransparentBudget(f){return new m.TransparentBudget({config:this._config,account:this._account},f)}AllowListIncentive(f){return new b0.AllowListIncentive({config:this._config,account:this._account},f)}CGDAIncentive(f){return new d0.CGDAIncentive({config:this._config,account:this._account},f)}ERC20Incentive(f){return new c0.ERC20Incentive({config:this._config,account:this._account},f)}ERC20PeggedIncentive(f){return new x.ERC20PeggedIncentive({config:this._config,account:this._account},f)}PointsIncentive(f){return new i0.PointsIncentive({config:this._config,account:this._account},f)}SignerValidator(f,e){return new h0.SignerValidator({config:this._config,account:this._account},f,e)}LimitedSignerValidator(f,e){return new o0.LimitedSignerValidator({config:this._config,account:this._account},f,e)}PayableLimitedSignerValidator(f,e){return new u0.PayableLimitedSignerValidator({config:this._config,account:this._account},f,e??!1)}SignerValidatorV2(f,e){return new g0.SignerValidatorV2({config:this._config,account:this._account},f,e)}LimitedSignerValidatorV2(f,e){return new r0.LimitedSignerValidatorV2({config:this._config,account:this._account},f,e)}PayableLimitedSignerValidatorV2(f,e){return new l0.PayableLimitedSignerValidatorV2({config:this._config,account:this._account},f,e??!1)}ERC20VariableCriteriaIncentiveV2(f,e){return new n0.ERC20VariableCriteriaIncentiveV2({config:this._config,account:this._account},f,e)}ERC20PeggedVariableCriteriaIncentiveV2(f,e){return new s0.ERC20PeggedVariableCriteriaIncentiveV2({config:this._config,account:this._account},f,e)}ERC20VariableIncentive(f,e){return new w0.ERC20VariableIncentive({config:this._config,account:this._account},f,e)}buildParameters(f,e){const[a,t]=this.validateDeploymentConfig(f,e);return{abi:o.u,bytecode:j,args:[],...this.optionallyAttachAccount(t.account)}}async deploy(f,e,a){var b;const t=f||this._payload;if(t&&typeof t=="object"&&"registryAddress"in t){const d=t,c=e||{config:this._config,account:this._account},n=await h.getDeployedContractAddress(c.config,P.deployContract(c.config,{abi:o.u,bytecode:j,args:[],...this.optionallyAttachAccount(c.account)}),a),i=u.encodeFunctionData({abi:o.u,functionName:"initialize",args:[d.registryAddress,d.protocolFeeReceiver,d.owner]}),w=[{type:"constructor",inputs:[{name:"implementation",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],stateMutability:"payable"}],r=await h.getDeployedContractAddress(c.config,P.deployContract(c.config,{abi:w,bytecode:u.encodeDeployData({abi:w,bytecode:"0x60806040526040516103dc3803806103dc8339810160408190526100229161023b565b61002c8282610033565b5050610320565b61003c82610091565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561008557610080828261010c565b505050565b61008d61017f565b5050565b806001600160a01b03163b5f036100cb57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b031684604051610128919061030a565b5f60405180830381855af49150503d805f8114610160576040519150601f19603f3d011682016040523d82523d5f602084013e610165565b606091505b5090925090506101768583836101a0565b95945050505050565b341561019e5760405163b398979f60e01b815260040160405180910390fd5b565b6060826101b5576101b0826101ff565b6101f8565b81511580156101cc57506001600160a01b0384163b155b156101f557604051639996b31560e01b81526001600160a01b03851660048201526024016100c2565b50805b9392505050565b80511561020e57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b634e487b7160e01b5f52604160045260245ffd5b5f806040838503121561024c575f80fd5b82516001600160a01b0381168114610262575f80fd5b60208401519092506001600160401b0381111561027d575f80fd5b8301601f8101851361028d575f80fd5b80516001600160401b038111156102a6576102a6610227565b604051601f8201601f19908116603f011681016001600160401b03811182821017156102d4576102d4610227565b6040528181528282016020018710156102eb575f80fd5b8160208401602083015e5f602083830101528093505050509250929050565b5f82518060208501845e5f920191825250919050565b60b08061032c5f395ff3fe6080604052600a600c565b005b60186014601a565b605d565b565b5f60587f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b365f80375f80365f845af43d5f803e8080156076573d5ff35b3d5ffdfea2646970667358221220f563f31c0aa14bad619f09897012e95da451776c4af1ecde8d7624c84200077664736f6c634300081a0033",args:[n,i]}),args:[n,i],...this.optionallyAttachAccount(c.account)}),a);this._address=r;const l=(b=c.config.getClient().chain)==null?void 0:b.id;l?this.constructor.addresses[l]=r:console.log("WARNING: No chain ID found, cannot update addresses object")}else await super.deploy(f,e,a);return this}async topupIncentiveFromBudgetPreFee(f,e,a,t,b){const d=await this.getBoost(f,b);if(e>=d.incentives.length)throw new Error(`Incentive ID ${e} out of range`);const c=d.incentives[Number(e)];if(!c)throw new Error(`Incentive with ID ${e} not found`);const n=await c.getTopupPayload(a);if(!(a>0))throw new Error("Top-up amount must be greater than zero");return await this.topupIncentiveFromBudgetRaw(f,e,n,t,b)}async topupIncentiveFromBudgetPostFee(f,e,a,t,b){const d=await this.protocolFee(b),c=a*_/(_+d);return this.topupIncentiveFromBudgetPreFee(f,e,c,t,b)}async topupIncentiveFromSenderPreFee(f,e,a,t){const b=await this.getBoost(f,t);if(e>=b.incentives.length)throw new Error(`Incentive ID ${e} out of range`);const d=b.incentives[Number(e)];if(!d)throw new Error(`Incentive with ID ${e} not found`);if(!(a>0))throw new Error("Top-up amount must be greater than zero");const c=await d.getTopupPayload(a);return await this.topupIncentiveFromSenderRaw(f,e,c,t)}async topupIncentiveFromSenderPostFee(f,e,a,t){const b=await this.protocolFee(t),d=a*_/(_+b);return this.topupIncentiveFromSenderPreFee(f,e,d,t)}async topupIncentiveFromSenderRaw(f,e,a,t){const{request:b,result:d}=await o.m5(this._config,{...this.optionallyAttachAccount(),...t,address:this.assertValidAddress(),args:[f,e,a]});return{hash:await o.ZN(this._config,b),result:d}}async topupIncentiveFromBudgetRaw(f,e,a,t,b){const{request:d,result:c}=await o.c5(this._config,{...this.optionallyAttachAccount(),...b,address:this.assertValidAddress(),args:[f,e,a,t??u.zeroAddress]});return{hash:await o.GN(this._config,d),result:c}}};z.addresses=S;let O=z;exports.boostCoreAbi=o.u;exports.BOOST_CORE_ADDRESS=V0;exports.BOOST_CORE_ADDRESSES=S;exports.BoostCore=O;exports.FEE_DENOMINATOR=_;
3
3
  //# sourceMappingURL=BoostCore.cjs.map