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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/dist/Actions/Action.cjs +1 -1
  2. package/dist/Actions/Action.js +7 -7
  3. package/dist/Actions/EventAction.cjs +1 -1
  4. package/dist/Actions/EventAction.cjs.map +1 -1
  5. package/dist/Actions/EventAction.d.ts +7 -7
  6. package/dist/Actions/EventAction.d.ts.map +1 -1
  7. package/dist/Actions/EventAction.js +153 -152
  8. package/dist/Actions/EventAction.js.map +1 -1
  9. package/dist/AllowLists/AllowList.cjs +1 -1
  10. package/dist/AllowLists/AllowList.js +10 -10
  11. package/dist/AllowLists/SimpleAllowList.cjs +1 -1
  12. package/dist/AllowLists/SimpleAllowList.js +10 -10
  13. package/dist/AllowLists/SimpleDenyList.cjs +1 -1
  14. package/dist/AllowLists/SimpleDenyList.js +3 -3
  15. package/dist/Auth/PassthroughAuth.cjs +1 -1
  16. package/dist/Auth/PassthroughAuth.js +1 -1
  17. package/dist/BoostCore.cjs +2 -1
  18. package/dist/BoostCore.cjs.map +1 -1
  19. package/dist/BoostCore.d.ts +564 -1
  20. package/dist/BoostCore.d.ts.map +1 -1
  21. package/dist/BoostCore.js +1322 -29
  22. package/dist/BoostCore.js.map +1 -1
  23. package/dist/BoostRegistry.cjs +1 -1
  24. package/dist/BoostRegistry.js +27 -27
  25. package/dist/Budgets/Budget.cjs +1 -1
  26. package/dist/Budgets/Budget.js +2 -2
  27. package/dist/Budgets/ManagedBudget.cjs +1 -1
  28. package/dist/Budgets/ManagedBudget.js +23 -23
  29. package/dist/Deployable/DeployableTarget.cjs +1 -1
  30. package/dist/Deployable/DeployableTarget.js +1 -1
  31. package/dist/Deployable/DeployableTargetWithRBAC.cjs +1 -1
  32. package/dist/Deployable/DeployableTargetWithRBAC.js +23 -23
  33. package/dist/Incentives/AllowListIncentive.cjs +1 -1
  34. package/dist/Incentives/AllowListIncentive.js +8 -8
  35. package/dist/Incentives/CGDAIncentive.cjs +1 -1
  36. package/dist/Incentives/CGDAIncentive.js +12 -12
  37. package/dist/Incentives/ERC20Incentive.cjs +1 -1
  38. package/dist/Incentives/ERC20Incentive.js +16 -16
  39. package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs +2 -0
  40. package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs.map +1 -0
  41. package/dist/Incentives/ERC20VariableCriteriaIncentive.d.ts +42 -15
  42. package/dist/Incentives/ERC20VariableCriteriaIncentive.d.ts.map +1 -1
  43. package/dist/Incentives/ERC20VariableCriteriaIncentive.js +188 -0
  44. package/dist/Incentives/ERC20VariableCriteriaIncentive.js.map +1 -0
  45. package/dist/Incentives/ERC20VariableIncentive.cjs +2 -0
  46. package/dist/Incentives/ERC20VariableIncentive.cjs.map +1 -0
  47. package/dist/Incentives/ERC20VariableIncentive.d.ts +7 -5
  48. package/dist/Incentives/ERC20VariableIncentive.d.ts.map +1 -1
  49. package/dist/{Incentive-rM5nKznp.js → Incentives/ERC20VariableIncentive.js} +42 -67
  50. package/dist/Incentives/ERC20VariableIncentive.js.map +1 -0
  51. package/dist/Incentives/Incentive.cjs +1 -1
  52. package/dist/Incentives/Incentive.cjs.map +1 -1
  53. package/dist/Incentives/Incentive.d.ts +552 -3
  54. package/dist/Incentives/Incentive.d.ts.map +1 -1
  55. package/dist/Incentives/Incentive.js +40 -16
  56. package/dist/Incentives/Incentive.js.map +1 -1
  57. package/dist/Incentives/PointsIncentive.cjs +1 -1
  58. package/dist/Incentives/PointsIncentive.js +8 -8
  59. package/dist/{SimpleDenyList-DNj5qDWM.cjs → SimpleDenyList-BdlpZdDz.cjs} +2 -2
  60. package/dist/{SimpleDenyList-DNj5qDWM.cjs.map → SimpleDenyList-BdlpZdDz.cjs.map} +1 -1
  61. package/dist/{SimpleDenyList-BDXpY74P.js → SimpleDenyList-D0cyVUVv.js} +16 -16
  62. package/dist/{SimpleDenyList-BDXpY74P.js.map → SimpleDenyList-D0cyVUVv.js.map} +1 -1
  63. package/dist/Validators/LimitedSignerValidator.cjs +2 -0
  64. package/dist/Validators/LimitedSignerValidator.cjs.map +1 -0
  65. package/dist/Validators/LimitedSignerValidator.d.ts +806 -0
  66. package/dist/Validators/LimitedSignerValidator.d.ts.map +1 -0
  67. package/dist/Validators/LimitedSignerValidator.js +299 -0
  68. package/dist/Validators/LimitedSignerValidator.js.map +1 -0
  69. package/dist/Validators/SignerValidator.cjs +1 -1
  70. package/dist/Validators/SignerValidator.cjs.map +1 -1
  71. package/dist/Validators/SignerValidator.d.ts +2 -2
  72. package/dist/Validators/SignerValidator.js +5 -5
  73. package/dist/Validators/SignerValidator.js.map +1 -1
  74. package/dist/Validators/Validator.cjs +1 -1
  75. package/dist/Validators/Validator.cjs.map +1 -1
  76. package/dist/Validators/Validator.d.ts +22 -2
  77. package/dist/Validators/Validator.d.ts.map +1 -1
  78. package/dist/Validators/Validator.js +26 -17
  79. package/dist/Validators/Validator.js.map +1 -1
  80. package/dist/{componentInterfaces-BBCFkrZv.js → componentInterfaces-bIVo8eyA.js} +9 -9
  81. package/dist/componentInterfaces-bIVo8eyA.js.map +1 -0
  82. package/dist/{deployments-fJsWblwS.js → deployments-Ccx1MtoK.js} +5 -5
  83. package/dist/deployments-Ccx1MtoK.js.map +1 -0
  84. package/dist/{generated-CsNyWPKA.js → generated-BAKNSOjJ.js} +661 -381
  85. package/dist/generated-BAKNSOjJ.js.map +1 -0
  86. package/dist/generated-Cqn4wS01.cjs +3 -0
  87. package/dist/generated-Cqn4wS01.cjs.map +1 -0
  88. package/dist/index.cjs +1 -1
  89. package/dist/index.d.ts +1 -0
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +150 -138
  92. package/dist/index.js.map +1 -1
  93. package/dist/utils.cjs +1 -1
  94. package/dist/utils.cjs.map +1 -1
  95. package/dist/utils.d.ts +10 -0
  96. package/dist/utils.d.ts.map +1 -1
  97. package/dist/utils.js +27 -26
  98. package/dist/utils.js.map +1 -1
  99. package/package.json +21 -5
  100. package/src/Actions/EventAction.ts +29 -27
  101. package/src/BoostCore.test.ts +3 -3
  102. package/src/BoostCore.ts +51 -5
  103. package/src/Incentives/AllowListIncentive.test.ts +19 -21
  104. package/src/Incentives/CGDAIncentive.test.ts +20 -22
  105. package/src/Incentives/ERC1155Incentive.test.ts +14 -15
  106. package/src/Incentives/ERC20Incentive.test.ts +17 -19
  107. package/src/Incentives/ERC20VariableCriteriaIncentive.test.ts +62 -10
  108. package/src/Incentives/ERC20VariableCriteriaIncentive.ts +79 -37
  109. package/src/Incentives/ERC20VariableIncentive.test.ts +16 -18
  110. package/src/Incentives/ERC20VariableIncentive.ts +16 -8
  111. package/src/Incentives/Incentive.ts +4 -1
  112. package/src/Incentives/PointsIncentive.test.ts +3 -5
  113. package/src/Validators/LimitedSignerValidator.test.ts +223 -0
  114. package/src/Validators/LimitedSignerValidator.ts +707 -0
  115. package/src/Validators/SignerValidator.test.ts +21 -22
  116. package/src/Validators/SignerValidator.ts +2 -2
  117. package/src/Validators/Validator.test.ts +7 -1
  118. package/src/Validators/Validator.ts +30 -3
  119. package/src/index.test.ts +2 -0
  120. package/src/index.ts +1 -0
  121. package/src/utils.ts +11 -0
  122. package/dist/BoostCore-Btl5BdAs.cjs +0 -3
  123. package/dist/BoostCore-Btl5BdAs.cjs.map +0 -1
  124. package/dist/BoostCore-CD56zbYX.js +0 -2641
  125. package/dist/BoostCore-CD56zbYX.js.map +0 -1
  126. package/dist/Incentive-CcnOIc8L.cjs +0 -2
  127. package/dist/Incentive-CcnOIc8L.cjs.map +0 -1
  128. package/dist/Incentive-rM5nKznp.js.map +0 -1
  129. package/dist/componentInterfaces-BBCFkrZv.js.map +0 -1
  130. package/dist/deployments-fJsWblwS.js.map +0 -1
  131. package/dist/generated-CsNyWPKA.js.map +0 -1
  132. package/dist/generated-DHerxf1y.cjs +0 -3
  133. package/dist/generated-DHerxf1y.cjs.map +0 -1
package/dist/BoostCore.js CHANGED
@@ -1,32 +1,1325 @@
1
- import { T as I } from "./generated-CsNyWPKA.js";
2
- import { b as M, a as d, B as g, c as h } from "./BoostCore-CD56zbYX.js";
3
- import "@wagmi/core";
4
- import "viem";
5
- import "./deployments-fJsWblwS.js";
6
- import "./Actions/Action.js";
7
- import "./Actions/EventAction.js";
8
- import "./AllowLists/AllowList.js";
9
- import "./AllowLists/SimpleAllowList.js";
10
- import "./SimpleDenyList-BDXpY74P.js";
11
- import "./Auth/PassthroughAuth.js";
12
- import "./Boost.js";
13
- import "./Budgets/Budget.js";
14
- import "./Budgets/ManagedBudget.js";
15
- import "./Deployable/Deployable.js";
16
- import "./Incentives/AllowListIncentive.js";
17
- import "./Incentives/CGDAIncentive.js";
18
- import "./Incentives/ERC20Incentive.js";
19
- import "./Incentive-rM5nKznp.js";
20
- import "./Incentives/PointsIncentive.js";
21
- import "./Validators/SignerValidator.js";
22
- import "./Validators/Validator.js";
23
- import "./errors.js";
24
- import "./utils.js";
1
+ import { T as A, bt as M, bu as T, bv as V, bw as q, bx as z, by as G, bz as U, bA as k, bB as W, bC as H, bD as Q, bE as Y, bF as J, bG as K, bH as X } from "./generated-BAKNSOjJ.js";
2
+ import { waitForTransactionReceipt as Z, getAccount as p, getChains as ff, getTransactionReceipt as bf } from "@wagmi/core";
3
+ import { createClient as ef, custom as af, parseEther as tf, parseEventLogs as B, zeroAddress as m, zeroHash as l } from "viem";
4
+ import { f as cf } from "./deployments-Ccx1MtoK.js";
5
+ import { actionFromAddress as df } from "./Actions/Action.js";
6
+ import { EventAction as nf } from "./Actions/EventAction.js";
7
+ import { allowListFromAddress as sf, OpenAllowList as of } from "./AllowLists/AllowList.js";
8
+ import { SimpleAllowList as rf } from "./AllowLists/SimpleAllowList.js";
9
+ import { S as uf } from "./SimpleDenyList-D0cyVUVv.js";
10
+ import { PassthroughAuth as lf } from "./Auth/PassthroughAuth.js";
11
+ import { prepareBoostPayload as _, Boost as E } from "./Boost.js";
12
+ import { budgetFromAddress as hf } from "./Budgets/Budget.js";
13
+ import { ManagedBudget as gf } from "./Budgets/ManagedBudget.js";
14
+ import { Deployable as wf } from "./Deployable/Deployable.js";
15
+ import { AllowListIncentive as mf } from "./Incentives/AllowListIncentive.js";
16
+ import { CGDAIncentive as vf } from "./Incentives/CGDAIncentive.js";
17
+ import { ERC20Incentive as Cf } from "./Incentives/ERC20Incentive.js";
18
+ import { ERC20VariableCriteriaIncentive as Af } from "./Incentives/ERC20VariableCriteriaIncentive.js";
19
+ import { incentiveFromAddress as If } from "./Incentives/Incentive.js";
20
+ import { PointsIncentive as yf } from "./Incentives/PointsIncentive.js";
21
+ import { LimitedSignerValidator as Pf } from "./Validators/LimitedSignerValidator.js";
22
+ import { SignerValidator as Bf } from "./Validators/SignerValidator.js";
23
+ import { BoostValidatorEOA as R, validatorFromAddress as _f } from "./Validators/Validator.js";
24
+ import { BoostCoreNoIdentifierEmitted as Ef, DeployableUnknownOwnerProvidedError as Rf, InvalidProtocolChainIdError as Ff, BudgetMustAuthorizeBoostCore as Lf, MustInitializeBudgetError as Df, IncentiveNotCloneableError as Of, BoostNotFoundError as Sf } from "./errors.js";
25
+ import { assertValidAddressByChainId as h } from "./utils.js";
26
+ import { ERC20VariableIncentive as Nf } from "./Incentives/ERC20VariableIncentive.js";
27
+ import { simulateContract as $f, writeContract as jf } from "viem/actions";
28
+ import { parseAccount as xf, getAddress as Mf } from "viem/utils";
29
+ const Tf = "0x60806040526103e8600360146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555034801561003a575f80fd5b50604051615301380380615301833981810160405281019061005c919061026b565b61006b336100f260201b60201c565b8160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506102a9565b6101006101ce60201b60201c565b15610178577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561013a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506101cb565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f90565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101ff826101d6565b9050919050565b5f610210826101f5565b9050919050565b61022081610206565b811461022a575f80fd5b50565b5f8151905061023b81610217565b92915050565b61024a816101f5565b8114610254575f80fd5b50565b5f8151905061026581610241565b92915050565b5f8060408385031215610281576102806101d2565b5b5f61028e8582860161022d565b925050602061029f85828601610257565b9150509250929050565b61504b806102b65f395ff3fe60806040526004361061014a575f3560e01c80637b103999116100b5578063dd98558c1161006e578063dd98558c146103fa578063e21ff73114610437578063eccc19a614610473578063f04e283e1461049b578063f2fde38b146104b7578063fee81cf4146104d35761014a565b80637b1039991461030c5780638da5cb5b146103365780638fe4f52314610360578063a92647dc1461037c578063b0e21e8a146103a6578063d73792a9146103d05761014a565b806354d1f13d1161010757806354d1f13d1461024a5780635edb9eb0146102545780635f32c23e1461027e57806360777795146102a6578063715018a6146102e6578063730f9c57146102f05761014a565b80630250e72b1461014e57806313c8e2de1461018a57806325692962146101c657806339a51be5146101d057806343bc42d3146101fa57806346877b1a14610222575b5f80fd5b348015610159575f80fd5b50610174600480360381019061016f91906137f5565b61050f565b6040516101819190613950565b60405180910390f35b348015610195575f80fd5b506101b060048036038101906101ab9190613993565b6105e6565b6040516101bd9190613c21565b60405180910390f35b6101ce61088e565b005b3480156101db575f80fd5b506101e46108df565b6040516101f19190613c50565b60405180910390f35b348015610205575f80fd5b50610220600480360381019061021b9190613c93565b610904565b005b34801561022d575f80fd5b5061024860048036038101906102439190613ce8565b610938565b005b610252610983565b005b34801561025f575f80fd5b506102686109bc565b6040516102759190613d22565b60405180910390f35b348015610289575f80fd5b506102a4600480360381019061029f9190613d3b565b6109c7565b005b3480156102b1575f80fd5b506102cc60048036038101906102c791906137f5565b610b53565b6040516102dd959493929190613d88565b60405180910390f35b6102ee610bb0565b005b61030a60048036038101906103059190613e3a565b610bc3565b005b348015610317575f80fd5b50610320611104565b60405161032d9190613ef0565b60405180910390f35b348015610341575f80fd5b5061034a611129565b6040516103579190613c50565b60405180910390f35b61037a60048036038101906103759190613f09565b611151565b005b348015610387575f80fd5b50610390611166565b60405161039d9190613fad565b60405180910390f35b3480156103b1575f80fd5b506103ba61118b565b6040516103c79190613fd5565b60405180910390f35b3480156103db575f80fd5b506103e46111a5565b6040516103f19190613fd5565b60405180910390f35b348015610405575f80fd5b50610420600480360381019061041b9190613fee565b6111ab565b60405161042e92919061405f565b60405180910390f35b348015610442575f80fd5b5061045d60048036038101906104589190614086565b6118af565b60405161046a9190613c21565b60405180910390f35b34801561047e575f80fd5b5061049960048036038101906104949190613ce8565b61229d565b005b6104b560048036038101906104b09190613ce8565b6122e8565b005b6104d160048036038101906104cc9190613ce8565b612326565b005b3480156104de575f80fd5b506104f960048036038101906104f49190613ce8565b61234f565b6040516105069190613d22565b60405180910390f35b610517613607565b60045f8381526020019081526020015f206040518060a00160405290815f82015f9054906101000a900460ff16600281111561055657610555613820565b5b600281111561056857610567613820565b5b81526020015f820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481526020016003820154815250509050919050565b6105ee613659565b5f8281548110610601576106006140d1565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600482018054806020026020016040519081016040528092919081815260200182805480156107ee57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116107a5575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b5f610897612368565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61090c612372565b80600360146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b610940612372565b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f8080549050905090565b3068929eee149b4bd2126854036109e55763ab143c065f526004601cfd5b3068929eee149b4bd21268555f6109fc83836123a9565b90505f60045f8381526020019081526020015f2090505f816002015461271067ffffffffffffffff168360010154610a34919061412b565b610a3e9190614199565b90505f610a4a836123db565b905081811115610b3f575f8282610a6191906141c9565b90505f61271067ffffffffffffffff16856002015483610a81919061412b565b610a8b9190614199565b9050610a9785826125e1565b80856001015410610ac15780856001015f828254610ab591906141c9565b92505081905550610acb565b5f85600101819055505b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1687897f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b1784604051610b349190613d22565b60405180910390a450505b505050503868929eee149b4bd21268555050565b6004602052805f5260405f205f91509050805f015f9054906101000a900460ff1690805f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154905085565b610bb8612372565b610bc15f6127c2565b565b3068929eee149b4bd212685403610be15763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808781548110610c0157610c006140d1565b5b905f5260205f20906008020190505f610c1a88886123a9565b90505f60045f8381526020019081526020015f209050826002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e3f756de8588886040518463ffffffff1660e01b8152600401610c9093929190614256565b602060405180830381865afa158015610cab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccf91906142bb565b610d05576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663703b69008a8a878a8a6040518663ffffffff1660e01b8152600401610d699594939291906142e6565b6020604051808303815f875af1158015610d85573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da991906142bb565b610ddf576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16825f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610e3c575f610e46565b610e45826123db565b5b9050836004018981548110610e5e57610e5d6140d1565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb1757cf8689896040518463ffffffff1660e01b8152600401610ec293929190614256565b6020604051808303815f875af1158015610ede573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0291906142bb565b610f47578487876040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610f3e93929190614256565b60405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610fa4575f610fae565b610fad836123db565b5b90505f818311610fbe575f610fcb565b8183610fca91906141c9565b5b90505f61271067ffffffffffffffff16856002015483610feb919061412b565b610ff59190614199565b90505f8111156110955761100985826125e1565b80856001015f82825461101c91906141c9565b9250508190555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168c8e7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b178460405161108c9190613d22565b60405180910390a45b8773ffffffffffffffffffffffffffffffffffffffff168c8e7f0f29bbf4ce25d2346bbeb8a898e24e5d6d7d1d19bb895e71faecac833b2595478e8e8e6040516110e193929190614256565b60405180910390a4505050505050503868929eee149b4bd2126855505050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b61115f858585858533610bc3565b5050505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360149054906101000a900467ffffffffffffffff1681565b61271081565b5f803068929eee149b4bd2126854036111cb5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f8085815481106111eb576111ea6140d1565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600482018054806020026020016040519081016040528092919081815260200182805480156113d857602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161138f575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050806060015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114dc576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6114e786866123a9565b90505f60045f8381526020019081526020015f2090505f898981019061150d91906144bd565b90505f81602001518060200190518101906115289190614518565b90505f61271067ffffffffffffffff16846002015483611548919061412b565b6115529190614199565b90505f81111561176f57600160028111156115705761156f613820565b5b845f015f9054906101000a900460ff16600281111561159257611591613820565b5b14806115d057505f60028111156115ac576115ab613820565b5b845f015f9054906101000a900460ff1660028111156115ce576115cd613820565b5b145b1561162b57611626835f015182865f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166128889092919063ffffffff16565b6116fd565b60028081111561163e5761163d613820565b5b845f015f9054906101000a900460ff1660028111156116605761165f613820565b5b036116fc57835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30855f01518760030154856040518563ffffffff1660e01b81526004016116ce9493929190614566565b5f604051808303815f87803b1580156116e5575f80fd5b505af11580156116f7573d5f803e3d5ffd5b505050505b5b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16898b7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b17846040516117669190613d22565b60405180910390a45b5f8087608001518b81518110611788576117876140d1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663474f5a44866040516020016117bc9190614656565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016117e791906146ae565b60408051808303815f875af1158015611802573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061182691906146e2565b915091505f820361187257338e8e6040517f9ecd71a900000000000000000000000000000000000000000000000000000000815260040161186993929190614256565b60405180910390fd5b82866001015f82825461188591906141c9565b9250508190555081819950995050505050505050503868929eee149b4bd212685594509492505050565b6118b7613659565b335f73ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156119ab575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80826040518263ffffffff1660e01b815260040161196a9190613c50565b602060405180830381865afa158015611985573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119a991906142bb565b155b156119e2576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3068929eee149b4bd212685403611a005763ab143c065f526004601cfd5b3068929eee149b4bd21268555f611a5985858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050506128d1565b806020019051810190611a6c9190614a80565b9050611a7a815f015161296a565b5f8060018160018154018082558091505003905f5260205f20906008020190508160e00151816007015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550815f0151816003015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160a00151600360149054906101000a900467ffffffffffffffff16611b4b9190614ac7565b816005015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160c001518160060181905550611bb17fe67157950000000000000000000000000000000000000000000000000000000083602001516001612a45565b815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611c217fe2089f790000000000000000000000000000000000000000000000000000000083606001516001612a45565b816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611c738260800151835f0151612a67565b816004019080519060200190611c8a92919061370f565b505f73ffffffffffffffffffffffffffffffffffffffff1682604001516020015173ffffffffffffffffffffffffffffffffffffffff1614611cfb57611cf67f5912b89c0000000000000000000000000000000000000000000000000000000083604001516001612a45565b611de4565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f5912b89c000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401611d769190614b3c565b602060405180830381865afa158015611d91573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611db591906142bb565b611dbf575f611de3565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b5b816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff16816001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611eda577f5912b89c000000000000000000000000000000000000000000000000000000005f6040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401611ed1929190614b55565b60405180910390fd5b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660015f80549050611f5e91906141c9565b7f116812d3ad4507d72f2c428b63246d594ca055a1dc119394285504c23d1f34cd8460040180549050856001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876003015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516120039493929190614b7c565b60405180910390a480604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600482018054806020026020016040519081016040528092919081815260200182805480156121ed57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116121a4575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050935050503868929eee149b4bd21268555092915050565b6122a5612372565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6122f0612372565b63389a75e1600c52805f526020600c20805442111561231657636f5e88185f526004601cfd5b5f815550612323816127c2565b50565b61232e612372565b8060601b61234357637448fbae5f526004601cfd5b61234c816127c2565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146123a7576382b429005f526004601cfd5b565b5f82826040516020016123bd929190614bdf565b60405160208183030381529060405280519060200120905092915050565b5f600160028111156123f0576123ef613820565b5b825f015f9054906101000a900460ff16600281111561241257612411613820565b5b148061245057505f600281111561242c5761242b613820565b5b825f015f9054906101000a900460ff16600281111561244e5761244d613820565b5b145b156124f757815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016124b19190613c50565b602060405180830381865afa1580156124cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124f09190614518565b90506125dc565b60028081111561250a57612509613820565b5b825f015f9054906101000a900460ff16600281111561252c5761252b613820565b5b036125d857815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e3084600301546040518363ffffffff1660e01b8152600401612592929190614c0a565b602060405180830381865afa1580156125ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125d19190614518565b90506125dc565b5f90505b919050565b600160028111156125f5576125f4613820565b5b825f015f9054906101000a900460ff16600281111561261757612616613820565b5b148061265557505f600281111561263157612630613820565b5b825f015f9054906101000a900460ff16600281111561265357612652613820565b5b145b156126ce576126c960035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682845f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166128889092919063ffffffff16565b6127be565b6002808111156126e1576126e0613820565b5b825f015f9054906101000a900460ff16600281111561270357612702613820565b5b036127bd57815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a3060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168560030154856040518563ffffffff1660e01b815260040161278f9493929190614566565b5f604051808303815f87803b1580156127a6575f80fd5b505af11580156127b8573d5f803e3d5ffd5b505050505b5b5050565b6127ca612f75565b1561282f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550612885565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f511417166128c8576390b8ec185f526004601cfd5b5f603452505050565b60608151156129655760405190506020810160048301805184518501811983525b8086101561294b576001860195508551601f1a8061293b576001870196508651601f1a5f198652607f811161292957600181013887395b6001607f821601860195505050612946565b808553600185019450505b6128f2565b81835260208501840385525f845260208401604052505050505b919050565b6129947fe49cedd70000000000000000000000000000000000000000000000000000000082612f79565b8073ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80336040518263ffffffff1660e01b81526004016129cd9190613c50565b602060405180830381865afa1580156129e8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a0c91906142bb565b612a42576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b5f612a54848460200151612f79565b612a5e8383613070565b90509392505050565b6060825167ffffffffffffffff811115612a8457612a83614336565b5b604051908082528060200260200182016040528015612ab25781602001602082028036833780820191505090505b5090505f5b8351811015612f6e57612b087fa921670500000000000000000000000000000000000000000000000000000000858381518110612af757612af66140d1565b5b602002602001015160200151612f79565b838181518110612b1b57612b1a6140d1565b5b60200260200101515f0151612ba7577fa921670500000000000000000000000000000000000000000000000000000000848281518110612b5e57612b5d6140d1565b5b6020026020010151602001516040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401612b9e929190614b55565b60405180910390fd5b612bec7fa921670500000000000000000000000000000000000000000000000000000000858381518110612bde57612bdd6140d1565b5b60200260200101515f612a45565b828281518110612bff57612bfe6140d1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f828281518110612c4d57612c4c6140d1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16634e7165a2868481518110612c8357612c826140d1565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401612cab91906146ae565b5f60405180830381865afa158015612cc5573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190612ced9190614c31565b90505f815114612ec2575f80612d028361312c565b915091508573ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1836040518263ffffffff1660e01b8152600401612d3f91906146ae565b6020604051808303815f875af1158015612d5b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d7f91906142bb565b612db5576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1846040518263ffffffff1660e01b8152600401612dee91906146ae565b6020604051808303815f875af1158015612e0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e2e91906142bb565b612e64576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f83806020019051810190612e799190614d2c565b9050612ebe60015f80549050612e8f91906141c9565b86836020015185855f01518d8b81518110612ead57612eac6140d1565b5b602002602001015160400151613428565b5050505b828281518110612ed557612ed46140d1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663439fab91868481518110612f0b57612f0a6140d1565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401612f3391906146ae565b5f604051808303815f87803b158015612f4a575f80fd5b505af1158015612f5c573d5f803e3d5ffd5b50505050508080600101915050612ab7565b5092915050565b5f90565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061302857508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a7836040518263ffffffff1660e01b8152600401612fe79190614b3c565b602060405180830381865afa158015613002573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061302691906142bb565b155b1561306c5781816040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401613063929190614b55565b60405180910390fd5b5050565b5f825f01516130835782602001516130a7565b6130a6836020015173ffffffffffffffffffffffffffffffffffffffff166135a4565b5b9050825f015180156130b65750815b15613126578073ffffffffffffffffffffffffffffffffffffffff1663439fab9184604001516040518263ffffffff1660e01b81526004016130f891906146ae565b5f604051808303815f87803b15801561310f575f80fd5b505af1158015613121573d5f803e3d5ffd5b505050505b92915050565b60605f80838060200190518101906131449190614d2c565b90506001600281111561315a57613159613820565b5b815f015160028111156131705761316f613820565b5b14806131a257505f600281111561318a57613189613820565b5b815f015160028111156131a05761319f613820565b5b145b156132ab575f81606001518060200190518101906131c09190614dac565b90505f61271067ffffffffffffffff16600360149054906101000a900467ffffffffffffffff1667ffffffffffffffff16835f01516131ff919061412b565b6132099190614199565b90505f60405180602001604052808381525090508060405160200161322e9190614df1565b604051602081830303815290604052846060018190525030846040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508360405160200161328e9190614e6a565b604051602081830303815290604052829550955050505050613423565b6002808111156132be576132bd613820565b5b815f015160028111156132d4576132d3613820565b5b036133f1575f81606001518060200190518101906132f29190614f07565b90505f61271067ffffffffffffffff16600360149054906101000a900467ffffffffffffffff1667ffffffffffffffff168360200151613332919061412b565b61333c9190614199565b90505f6040518060600160405280845f0151815260200183815260200184604001518152509050806040516020016133749190614f9b565b604051602081830303815290604052846060018190525030846040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050836040516020016133d49190614e6a565b604051602081830303815290604052829550955050505050613423565b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b915091565b60605f60028081111561343e5761343d613820565b5b84600281111561345157613450613820565b5b03613474578280602001905181019061346a9190614fbb565b5080915050613478565b8291505b5f6040518060a0016040528086600281111561349757613496613820565b5b81526020018873ffffffffffffffffffffffffffffffffffffffff168152602001878152602001600360149054906101000a900467ffffffffffffffff1667ffffffffffffffff1681526020018381525090508060045f6134f88c8c6123a9565b81526020019081526020015f205f820151815f015f6101000a81548160ff0219169083600281111561352d5761352c613820565b5b02179055506020820151815f0160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600101556060820151816002015560808201518160030155905050505050505050505050565b5f6135af5f836135b6565b9050919050565b5f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f09050806135fd5763301164255f526004601cfd5b5f60215292915050565b6040518060a001604052805f600281111561362557613624613820565b5b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81526020015f81525090565b6040518061010001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b828054828255905f5260205f20908101928215613785579160200282015b82811115613784578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019061372d565b5b5090506137929190613796565b5090565b5b808211156137ad575f815f905550600101613797565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b6137d4816137c2565b81146137de575f80fd5b50565b5f813590506137ef816137cb565b92915050565b5f6020828403121561380a576138096137ba565b5b5f613817848285016137e1565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6003811061385e5761385d613820565b5b50565b5f81905061386e8261384d565b919050565b5f61387d82613861565b9050919050565b61388d81613873565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6138bc82613893565b9050919050565b6138cc816138b2565b82525050565b5f819050919050565b6138e4816138d2565b82525050565b60a082015f8201516138fe5f850182613884565b50602082015161391160208501826138c3565b50604082015161392460408501826138db565b50606082015161393760608501826138db565b50608082015161394a60808501826138db565b50505050565b5f60a0820190506139635f8301846138ea565b92915050565b613972816138d2565b811461397c575f80fd5b50565b5f8135905061398d81613969565b92915050565b5f602082840312156139a8576139a76137ba565b5b5f6139b58482850161397f565b91505092915050565b5f819050919050565b5f6139e16139dc6139d784613893565b6139be565b613893565b9050919050565b5f6139f2826139c7565b9050919050565b5f613a03826139e8565b9050919050565b613a13816139f9565b82525050565b5f613a23826139e8565b9050919050565b613a3381613a19565b82525050565b5f613a43826139e8565b9050919050565b613a5381613a39565b82525050565b5f613a63826139c7565b9050919050565b5f613a7482613a59565b9050919050565b613a8481613a6a565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f613abd826139e8565b9050919050565b613acd81613ab3565b82525050565b5f613ade8383613ac4565b60208301905092915050565b5f602082019050919050565b5f613b0082613a8a565b613b0a8185613a94565b9350613b1583613aa4565b805f5b83811015613b45578151613b2c8882613ad3565b9750613b3783613aea565b925050600181019050613b18565b5085935050505092915050565b5f67ffffffffffffffff82169050919050565b613b6e81613b52565b82525050565b5f61010083015f830151613b8a5f860182613a0a565b506020830151613b9d6020860182613a2a565b506040830151613bb06040860182613a4a565b506060830151613bc36060860182613a7b565b5060808301518482036080860152613bdb8282613af6565b91505060a0830151613bf060a0860182613b65565b5060c0830151613c0360c08601826138db565b5060e0830151613c1660e08601826138c3565b508091505092915050565b5f6020820190508181035f830152613c398184613b74565b905092915050565b613c4a816138b2565b82525050565b5f602082019050613c635f830184613c41565b92915050565b613c7281613b52565b8114613c7c575f80fd5b50565b5f81359050613c8d81613c69565b92915050565b5f60208284031215613ca857613ca76137ba565b5b5f613cb584828501613c7f565b91505092915050565b613cc7816138b2565b8114613cd1575f80fd5b50565b5f81359050613ce281613cbe565b92915050565b5f60208284031215613cfd57613cfc6137ba565b5b5f613d0a84828501613cd4565b91505092915050565b613d1c816138d2565b82525050565b5f602082019050613d355f830184613d13565b92915050565b5f8060408385031215613d5157613d506137ba565b5b5f613d5e8582860161397f565b9250506020613d6f8582860161397f565b9150509250929050565b613d8281613873565b82525050565b5f60a082019050613d9b5f830188613d79565b613da86020830187613c41565b613db56040830186613d13565b613dc26060830185613d13565b613dcf6080830184613d13565b9695505050505050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112613dfa57613df9613dd9565b5b8235905067ffffffffffffffff811115613e1757613e16613ddd565b5b602083019150836001820283011115613e3357613e32613de1565b5b9250929050565b5f805f805f8060a08789031215613e5457613e536137ba565b5b5f613e6189828a0161397f565b9650506020613e7289828a0161397f565b9550506040613e8389828a01613cd4565b945050606087013567ffffffffffffffff811115613ea457613ea36137be565b5b613eb089828a01613de5565b93509350506080613ec389828a01613cd4565b9150509295509295509295565b5f613eda826139e8565b9050919050565b613eea81613ed0565b82525050565b5f602082019050613f035f830184613ee1565b92915050565b5f805f805f60808688031215613f2257613f216137ba565b5b5f613f2f8882890161397f565b9550506020613f408882890161397f565b9450506040613f5188828901613cd4565b935050606086013567ffffffffffffffff811115613f7257613f716137be565b5b613f7e88828901613de5565b92509250509295509295909350565b5f613f97826139e8565b9050919050565b613fa781613f8d565b82525050565b5f602082019050613fc05f830184613f9e565b92915050565b613fcf81613b52565b82525050565b5f602082019050613fe85f830184613fc6565b92915050565b5f805f8060608587031215614006576140056137ba565b5b5f85013567ffffffffffffffff811115614023576140226137be565b5b61402f87828801613de5565b945094505060206140428782880161397f565b92505060406140538782880161397f565b91505092959194509250565b5f6040820190506140725f830185613d13565b61407f6020830184613c41565b9392505050565b5f806020838503121561409c5761409b6137ba565b5b5f83013567ffffffffffffffff8111156140b9576140b86137be565b5b6140c585828601613de5565b92509250509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f614135826138d2565b9150614140836138d2565b925082820261414e816138d2565b91508282048414831517614165576141646140fe565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6141a3826138d2565b91506141ae836138d2565b9250826141be576141bd61416c565b5b828204905092915050565b5f6141d3826138d2565b91506141de836138d2565b92508282039050818111156141f6576141f56140fe565b5b92915050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f61423583856141fc565b935061424283858461420c565b61424b8361421a565b840190509392505050565b5f6040820190506142695f830186613c41565b818103602083015261427c81848661422a565b9050949350505050565b5f8115159050919050565b61429a81614286565b81146142a4575f80fd5b50565b5f815190506142b581614291565b92915050565b5f602082840312156142d0576142cf6137ba565b5b5f6142dd848285016142a7565b91505092915050565b5f6080820190506142f95f830188613d13565b6143066020830187613d13565b6143136040830186613c41565b818103606083015261432681848661422a565b90509695505050505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61436c8261421a565b810181811067ffffffffffffffff8211171561438b5761438a614336565b5b80604052505050565b5f61439d6137b1565b90506143a98282614363565b919050565b5f80fd5b5f80fd5b5f67ffffffffffffffff8211156143d0576143cf614336565b5b6143d98261421a565b9050602081019050919050565b5f6143f86143f3846143b6565b614394565b905082815260208101848484011115614414576144136143b2565b5b61441f84828561420c565b509392505050565b5f82601f83011261443b5761443a613dd9565b5b813561444b8482602086016143e6565b91505092915050565b5f6040828403121561446957614468614332565b5b6144736040614394565b90505f61448284828501613cd4565b5f83015250602082013567ffffffffffffffff8111156144a5576144a46143ae565b5b6144b184828501614427565b60208301525092915050565b5f602082840312156144d2576144d16137ba565b5b5f82013567ffffffffffffffff8111156144ef576144ee6137be565b5b6144fb84828501614454565b91505092915050565b5f8151905061451281613969565b92915050565b5f6020828403121561452d5761452c6137ba565b5b5f61453a84828501614504565b91505092915050565b50565b5f6145515f836141fc565b915061455c82614543565b5f82019050919050565b5f60a0820190506145795f830187613c41565b6145866020830186613c41565b6145936040830185613d13565b6145a06060830184613d13565b81810360808301526145b181614546565b905095945050505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6145ee826145bc565b6145f881856145c6565b93506146088185602086016145d6565b6146118161421a565b840191505092915050565b5f604083015f8301516146315f8601826138c3565b506020830151848203602086015261464982826145e4565b9150508091505092915050565b5f6020820190508181035f83015261466e818461461c565b905092915050565b5f614680826145bc565b61468a81856141fc565b935061469a8185602086016145d6565b6146a38161421a565b840191505092915050565b5f6020820190508181035f8301526146c68184614676565b905092915050565b5f815190506146dc81613cbe565b92915050565b5f80604083850312156146f8576146f76137ba565b5b5f61470585828601614504565b9250506020614716858286016146ce565b9150509250929050565b5f61472a82613893565b9050919050565b5f61473b82614720565b9050919050565b61474b81614731565b8114614755575f80fd5b50565b5f8151905061476681614742565b92915050565b5f61477e614779846143b6565b614394565b90508281526020810184848401111561479a576147996143b2565b5b6147a58482856145d6565b509392505050565b5f82601f8301126147c1576147c0613dd9565b5b81516147d184826020860161476c565b91505092915050565b5f606082840312156147ef576147ee614332565b5b6147f96060614394565b90505f614808848285016142a7565b5f83015250602061481b848285016146ce565b602083015250604082015167ffffffffffffffff81111561483f5761483e6143ae565b5b61484b848285016147ad565b60408301525092915050565b5f67ffffffffffffffff82111561487157614870614336565b5b602082029050602081019050919050565b5f61489461488f84614857565b614394565b905080838252602082019050602084028301858111156148b7576148b6613de1565b5b835b818110156148fe57805167ffffffffffffffff8111156148dc576148db613dd9565b5b8086016148e989826147da565b855260208501945050506020810190506148b9565b5050509392505050565b5f82601f83011261491c5761491b613dd9565b5b815161492c848260208601614882565b91505092915050565b5f8151905061494381613c69565b92915050565b5f610100828403121561495f5761495e614332565b5b61496a610100614394565b90505f61497984828501614758565b5f83015250602082015167ffffffffffffffff81111561499c5761499b6143ae565b5b6149a8848285016147da565b602083015250604082015167ffffffffffffffff8111156149cc576149cb6143ae565b5b6149d8848285016147da565b604083015250606082015167ffffffffffffffff8111156149fc576149fb6143ae565b5b614a08848285016147da565b606083015250608082015167ffffffffffffffff811115614a2c57614a2b6143ae565b5b614a3884828501614908565b60808301525060a0614a4c84828501614935565b60a08301525060c0614a6084828501614504565b60c08301525060e0614a74848285016146ce565b60e08301525092915050565b5f60208284031215614a9557614a946137ba565b5b5f82015167ffffffffffffffff811115614ab257614ab16137be565b5b614abe84828501614949565b91505092915050565b5f614ad182613b52565b9150614adc83613b52565b9250828201905067ffffffffffffffff811115614afc57614afb6140fe565b5b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b614b3681614b02565b82525050565b5f602082019050614b4f5f830184614b2d565b92915050565b5f604082019050614b685f830185614b2d565b614b756020830184613c41565b9392505050565b5f608082019050614b8f5f830187613d13565b614b9c6020830186613c41565b614ba96040830185613c41565b614bb66060830184613c41565b95945050505050565b5f819050919050565b614bd9614bd4826138d2565b614bbf565b82525050565b5f614bea8285614bc8565b602082019150614bfa8284614bc8565b6020820191508190509392505050565b5f604082019050614c1d5f830185613c41565b614c2a6020830184613d13565b9392505050565b5f60208284031215614c4657614c456137ba565b5b5f82015167ffffffffffffffff811115614c6357614c626137be565b5b614c6f848285016147ad565b91505092915050565b60038110614c84575f80fd5b50565b5f81519050614c9581614c78565b92915050565b5f60808284031215614cb057614caf614332565b5b614cba6080614394565b90505f614cc984828501614c87565b5f830152506020614cdc848285016146ce565b6020830152506040614cf0848285016146ce565b604083015250606082015167ffffffffffffffff811115614d1457614d136143ae565b5b614d20848285016147ad565b60608301525092915050565b5f60208284031215614d4157614d406137ba565b5b5f82015167ffffffffffffffff811115614d5e57614d5d6137be565b5b614d6a84828501614c9b565b91505092915050565b5f60208284031215614d8857614d87614332565b5b614d926020614394565b90505f614da184828501614504565b5f8301525092915050565b5f60208284031215614dc157614dc06137ba565b5b5f614dce84828501614d73565b91505092915050565b602082015f820151614deb5f8501826138db565b50505050565b5f602082019050614e045f830184614dd7565b92915050565b5f608083015f830151614e1f5f860182613884565b506020830151614e3260208601826138c3565b506040830151614e4560408601826138c3565b5060608301518482036060860152614e5d82826145e4565b9150508091505092915050565b5f6020820190508181035f830152614e828184614e0a565b905092915050565b5f60608284031215614e9f57614e9e614332565b5b614ea96060614394565b90505f614eb884828501614504565b5f830152506020614ecb84828501614504565b602083015250604082015167ffffffffffffffff811115614eef57614eee6143ae565b5b614efb848285016147ad565b60408301525092915050565b5f60208284031215614f1c57614f1b6137ba565b5b5f82015167ffffffffffffffff811115614f3957614f386137be565b5b614f4584828501614e8a565b91505092915050565b5f606083015f830151614f635f8601826138db565b506020830151614f7660208601826138db565b5060408301518482036040860152614f8e82826145e4565b9150508091505092915050565b5f6020820190508181035f830152614fb38184614f4e565b905092915050565b5f8060408385031215614fd157614fd06137ba565b5b5f614fde85828601614504565b925050602083015167ffffffffffffffff811115614fff57614ffe6137be565b5b61500b858286016147ad565b915050925092905056fea264697066735822122043ccaf0877e1788e8575053e71e189445c2f8a85b965b800cee903aac99bcedb64736f6c634300081a0033";
30
+ function D(t) {
31
+ const b = t.state.current, f = t.state.connections.get(b), e = f == null ? void 0 : f.accounts, a = e == null ? void 0 : e[0], c = t.chains.find((i) => i.id === (f == null ? void 0 : f.chainId)), d = t.state.status;
32
+ switch (d) {
33
+ case "connected":
34
+ return {
35
+ address: a,
36
+ addresses: e,
37
+ chain: c,
38
+ chainId: f == null ? void 0 : f.chainId,
39
+ connector: f == null ? void 0 : f.connector,
40
+ isConnected: !0,
41
+ isConnecting: !1,
42
+ isDisconnected: !1,
43
+ isReconnecting: !1,
44
+ status: d
45
+ };
46
+ case "reconnecting":
47
+ return {
48
+ address: a,
49
+ addresses: e,
50
+ chain: c,
51
+ chainId: f == null ? void 0 : f.chainId,
52
+ connector: f == null ? void 0 : f.connector,
53
+ isConnected: !!a,
54
+ isConnecting: !1,
55
+ isDisconnected: !1,
56
+ isReconnecting: !0,
57
+ status: d
58
+ };
59
+ case "connecting":
60
+ return {
61
+ address: a,
62
+ addresses: e,
63
+ chain: c,
64
+ chainId: f == null ? void 0 : f.chainId,
65
+ connector: f == null ? void 0 : f.connector,
66
+ isConnected: !1,
67
+ isConnecting: !0,
68
+ isDisconnected: !1,
69
+ isReconnecting: !1,
70
+ status: d
71
+ };
72
+ case "disconnected":
73
+ return {
74
+ address: void 0,
75
+ addresses: void 0,
76
+ chain: void 0,
77
+ chainId: void 0,
78
+ connector: void 0,
79
+ isConnected: !1,
80
+ isConnecting: !1,
81
+ isDisconnected: !0,
82
+ isReconnecting: !1,
83
+ status: d
84
+ };
85
+ }
86
+ }
87
+ function Vf(t) {
88
+ return t.state.chainId;
89
+ }
90
+ function O(t, b, f) {
91
+ const e = t[b.name];
92
+ if (typeof e == "function")
93
+ return e;
94
+ const a = t[f];
95
+ return typeof a == "function" ? a : (c) => b(t, c);
96
+ }
97
+ const qf = "2.13.8", zf = () => `@wagmi/core@${qf}`;
98
+ var S = function(t, b, f, e) {
99
+ if (f === "a" && !e) throw new TypeError("Private accessor was defined without a getter");
100
+ if (typeof b == "function" ? t !== b || !e : !b.has(t)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
101
+ return f === "m" ? e : f === "a" ? e.call(t) : e ? e.value : b.get(t);
102
+ }, I, N;
103
+ class v extends Error {
104
+ get docsBaseUrl() {
105
+ return "https://wagmi.sh/core";
106
+ }
107
+ get version() {
108
+ return zf();
109
+ }
110
+ constructor(b, f = {}) {
111
+ var c;
112
+ super(), I.add(this), Object.defineProperty(this, "details", {
113
+ enumerable: !0,
114
+ configurable: !0,
115
+ writable: !0,
116
+ value: void 0
117
+ }), Object.defineProperty(this, "docsPath", {
118
+ enumerable: !0,
119
+ configurable: !0,
120
+ writable: !0,
121
+ value: void 0
122
+ }), Object.defineProperty(this, "metaMessages", {
123
+ enumerable: !0,
124
+ configurable: !0,
125
+ writable: !0,
126
+ value: void 0
127
+ }), Object.defineProperty(this, "shortMessage", {
128
+ enumerable: !0,
129
+ configurable: !0,
130
+ writable: !0,
131
+ value: void 0
132
+ }), Object.defineProperty(this, "name", {
133
+ enumerable: !0,
134
+ configurable: !0,
135
+ writable: !0,
136
+ value: "WagmiCoreError"
137
+ });
138
+ const e = f.cause instanceof v ? f.cause.details : (c = f.cause) != null && c.message ? f.cause.message : f.details, a = f.cause instanceof v && f.cause.docsPath || f.docsPath;
139
+ this.message = [
140
+ b || "An error occurred.",
141
+ "",
142
+ ...f.metaMessages ? [...f.metaMessages, ""] : [],
143
+ ...a ? [
144
+ `Docs: ${this.docsBaseUrl}${a}.html${f.docsSlug ? `#${f.docsSlug}` : ""}`
145
+ ] : [],
146
+ ...e ? [`Details: ${e}`] : [],
147
+ `Version: ${this.version}`
148
+ ].join(`
149
+ `), f.cause && (this.cause = f.cause), this.details = e, this.docsPath = a, this.metaMessages = f.metaMessages, this.shortMessage = b;
150
+ }
151
+ walk(b) {
152
+ return S(this, I, "m", N).call(this, this, b);
153
+ }
154
+ }
155
+ I = /* @__PURE__ */ new WeakSet(), N = function t(b, f) {
156
+ return f != null && f(b) ? b : b.cause ? S(this, I, "m", t).call(this, b.cause, f) : b;
157
+ };
158
+ class Gf extends v {
159
+ constructor() {
160
+ super("Connector not connected."), Object.defineProperty(this, "name", {
161
+ enumerable: !0,
162
+ configurable: !0,
163
+ writable: !0,
164
+ value: "ConnectorNotConnectedError"
165
+ });
166
+ }
167
+ }
168
+ class Uf extends v {
169
+ constructor({ address: b, connector: f }) {
170
+ super(`Account "${b}" not found for connector "${f.name}".`), Object.defineProperty(this, "name", {
171
+ enumerable: !0,
172
+ configurable: !0,
173
+ writable: !0,
174
+ value: "ConnectorAccountNotFoundError"
175
+ });
176
+ }
177
+ }
178
+ class kf extends v {
179
+ constructor({ connectionChainId: b, connectorChainId: f }) {
180
+ super(`The current chain of the connector (id: ${f}) does not match the connection's chain (id: ${b}).`, {
181
+ metaMessages: [
182
+ `Current Chain ID: ${f}`,
183
+ `Expected Chain ID: ${b}`
184
+ ]
185
+ }), Object.defineProperty(this, "name", {
186
+ enumerable: !0,
187
+ configurable: !0,
188
+ writable: !0,
189
+ value: "ConnectorChainMismatchError"
190
+ });
191
+ }
192
+ }
193
+ class Wf extends v {
194
+ constructor({ connector: b }) {
195
+ super(`Connector "${b.name}" unavailable while reconnecting.`, {
196
+ details: [
197
+ "During the reconnection step, the only connector methods guaranteed to be available are: `id`, `name`, `type`, `uuid`.",
198
+ "All other methods are not guaranteed to be available until reconnection completes and connectors are fully restored.",
199
+ "This error commonly occurs for connectors that asynchronously inject after reconnection has already started."
200
+ ].join(" ")
201
+ }), Object.defineProperty(this, "name", {
202
+ enumerable: !0,
203
+ configurable: !0,
204
+ writable: !0,
205
+ value: "ConnectorUnavailableReconnectingError"
206
+ });
207
+ }
208
+ }
209
+ async function $(t, b = {}) {
210
+ let f;
211
+ if (b.connector) {
212
+ const { connector: n } = b;
213
+ if (t.state.status === "reconnecting" && !n.getAccounts && !n.getChainId)
214
+ throw new Wf({ connector: n });
215
+ const [g, w] = await Promise.all([
216
+ n.getAccounts(),
217
+ n.getChainId()
218
+ ]);
219
+ f = {
220
+ accounts: g,
221
+ chainId: w,
222
+ connector: n
223
+ };
224
+ } else
225
+ f = t.state.connections.get(t.state.current);
226
+ if (!f)
227
+ throw new Gf();
228
+ const e = b.chainId ?? f.chainId, a = await f.connector.getChainId();
229
+ if (a !== f.chainId)
230
+ throw new kf({
231
+ connectionChainId: f.chainId,
232
+ connectorChainId: a
233
+ });
234
+ const c = f.connector;
235
+ if (c.getClient)
236
+ return c.getClient({ chainId: e });
237
+ const d = xf(b.account ?? f.accounts[0]);
238
+ if (d.address = Mf(d.address), b.account && !f.accounts.some((n) => n.toLowerCase() === d.address.toLowerCase()))
239
+ throw new Uf({
240
+ address: d.address,
241
+ connector: c
242
+ });
243
+ const i = t.chains.find((n) => n.id === e), s = await f.connector.getProvider({ chainId: e });
244
+ return ef({
245
+ account: d,
246
+ chain: i,
247
+ name: "Connector Client",
248
+ transport: (n) => af(s)({ ...n, retryCount: 0 })
249
+ });
250
+ }
251
+ async function Hf(t, b) {
252
+ const { abi: f, chainId: e, connector: a, ...c } = b;
253
+ let d;
254
+ b.account ? d = b.account : d = (await $(t, {
255
+ chainId: e,
256
+ connector: a
257
+ })).account;
258
+ const i = t.getClient({ chainId: e }), s = O(i, $f, "simulateContract"), { result: n, request: g } = await s({ ...c, abi: f, account: d });
259
+ return {
260
+ chainId: i.chain.id,
261
+ result: n,
262
+ request: { __mode: "prepared", ...g, chainId: e }
263
+ };
264
+ }
265
+ async function F(t, b) {
266
+ const { account: f, chainId: e, connector: a, __mode: c, ...d } = b;
267
+ let i;
268
+ typeof f == "object" && f.type === "local" ? i = t.getClient({ chainId: e }) : i = await $(t, { account: f, chainId: e, connector: a });
269
+ const { connector: s } = D(t);
270
+ let n;
271
+ if (c === "prepared" || s != null && s.supportsSimulation)
272
+ n = d;
273
+ else {
274
+ const { request: o } = await Hf(t, {
275
+ ...d,
276
+ account: f,
277
+ chainId: e
278
+ });
279
+ n = o;
280
+ }
281
+ return await O(i, jf, "writeContract")({
282
+ ...n,
283
+ ...f ? { account: f } : {},
284
+ chain: e ? { id: e } : null
285
+ });
286
+ }
287
+ function Qf(t) {
288
+ return t.address !== void 0 && typeof t.address == "object" ? (b, f) => {
289
+ var d;
290
+ const e = Vf(b), a = D(b);
291
+ let c;
292
+ return f.chainId ? c = f.chainId : f.account && f.account === a.address || f.account === void 0 ? c = a.chainId : c = e, F(b, {
293
+ ...f,
294
+ ...t.functionName ? { functionName: t.functionName } : {},
295
+ address: c ? (d = t.address) == null ? void 0 : d[c] : void 0,
296
+ abi: t.abi
297
+ });
298
+ } : (b, f) => F(b, {
299
+ ...f,
300
+ ...t.address ? { address: t.address } : {},
301
+ ...t.functionName ? { functionName: t.functionName } : {},
302
+ abi: t.abi
303
+ });
304
+ }
305
+ const B0 = tf("0.000075"), y = {
306
+ 31337: void 0,
307
+ ...cf
308
+ }, _0 = y[11155111] || m;
309
+ function Yf(t) {
310
+ return t.address;
311
+ }
312
+ function Jf(t) {
313
+ return t.registryAddress && t.protocolFeeReceiver;
314
+ }
315
+ const P = class P extends wf {
316
+ /**
317
+ * A getter that will return Boost core's static addresses by numerical chain ID
318
+ *
319
+ * @public
320
+ * @readonly
321
+ * @type {Record<number, Address>}
322
+ */
323
+ get addresses() {
324
+ return this.constructor.addresses;
325
+ }
326
+ /**
327
+ * Creates an instance of BoostCore.
328
+ *
329
+ * @constructor
330
+ * @param {BoostCoreConfig} param0
331
+ * @param {Config} param0.config
332
+ * @param {?Account} [param0.account]
333
+ * @param {({ address?: Address; } | { registryAddress: Address; protocolFeeReceiver: Address; })} param0....options
334
+ */
335
+ constructor({ config: b, account: f, ...e }) {
336
+ if (Yf(e) && e.address)
337
+ super({ account: f, config: b }, e.address);
338
+ else if (Jf(e))
339
+ super({ account: f, config: b }, [
340
+ e.registryAddress,
341
+ e.protocolFeeReceiver
342
+ ]);
343
+ else {
344
+ const { address: a } = h(
345
+ b,
346
+ y
347
+ );
348
+ super({ account: f, config: b }, a);
349
+ }
350
+ this.abi = A;
351
+ }
352
+ /**
353
+ * Create a new Boost.
354
+ *
355
+ * @public
356
+ * @async
357
+ * @param {CreateBoostPayload} _boostPayload
358
+ * @param {?DeployableOptions} [_params]
359
+ * @returns {Promise<Boost>}
360
+ */
361
+ async createBoost(b, f) {
362
+ var C;
363
+ const [e, a] = this.validateDeploymentConfig(b, f), c = ((C = f == null ? void 0 : f.chain) == null ? void 0 : C.id) || (f == null ? void 0 : f.chainId), { chainId: d, address: i } = h(
364
+ a.config,
365
+ this.addresses,
366
+ c
367
+ ), s = Qf({
368
+ abi: A,
369
+ functionName: "createBoost",
370
+ address: i
371
+ }), n = await this.prepareCreateBoostPayload(
372
+ i,
373
+ d,
374
+ e,
375
+ a
376
+ ), g = await s(a.config, {
377
+ ...this.optionallyAttachAccount(a.account),
378
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
379
+ ...f,
380
+ chainId: d,
381
+ args: [_(n)]
382
+ }), w = await Z(a.config, {
383
+ hash: g
384
+ }), o = B({
385
+ abi: A,
386
+ eventName: "BoostCreated",
387
+ logs: w.logs
388
+ }).at(0);
389
+ let r = 0n;
390
+ if (!o) throw new Ef();
391
+ r = o == null ? void 0 : o.args.boostId;
392
+ const u = await this.readBoost(r);
393
+ return new E({
394
+ id: r,
395
+ budget: e.budget.at(u.budget),
396
+ action: e.action.at(u.action),
397
+ validator: e.validator.at(u.validator),
398
+ allowList: e.allowList.at(u.allowList),
399
+ incentives: e.incentives.map(
400
+ (j, x) => (
401
+ // biome-ignore lint/style/noNonNullAssertion: this will never be undefined
402
+ j.at(u.incentives.at(x))
403
+ )
404
+ ),
405
+ protocolFee: u.protocolFee,
406
+ maxParticipants: u.maxParticipants,
407
+ owner: u.owner
408
+ });
409
+ }
410
+ /**
411
+ * Returns a simulated Boost creation.
412
+ *
413
+ * @public
414
+ * @async
415
+ * @param {CreateBoostPayload} _boostPayload
416
+ * @param {?DeployableOptions} [_params]
417
+ * @returns {Promise<SimulateContractReturnType>}
418
+ */
419
+ async simulateCreateBoost(b, f) {
420
+ var n;
421
+ const [e, a] = this.validateDeploymentConfig(b, f), c = ((n = f == null ? void 0 : f.chain) == null ? void 0 : n.id) || (f == null ? void 0 : f.chainId), { chainId: d, address: i } = h(
422
+ a.config,
423
+ this.addresses,
424
+ c
425
+ ), s = await this.prepareCreateBoostPayload(
426
+ i,
427
+ d,
428
+ e,
429
+ a
430
+ );
431
+ return await M(this._config, {
432
+ ...this.optionallyAttachAccount(),
433
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
434
+ ...f,
435
+ address: i,
436
+ chainId: d,
437
+ args: [_(s)]
438
+ });
439
+ }
440
+ // This function mutates payload, which isn't awesome but it's fine
441
+ async prepareCreateBoostPayload(b, f, e, a) {
442
+ var w;
443
+ if (!e.owner && (e.owner = ((w = this._account) == null ? void 0 : w.address) || p(a.config).address || m, e.owner === m))
444
+ throw new Rf();
445
+ if (!e.validator) {
446
+ const r = ff(a.config).filter(
447
+ (C) => !!this.addresses[C.id] && C.id === f
448
+ ).at(0);
449
+ if (!r)
450
+ throw new Ff(
451
+ f,
452
+ Object.keys(this.addresses).map(Number)
453
+ );
454
+ const u = r.testnet || r.id === 31337;
455
+ e.validator = this.SignerValidator({
456
+ signers: [
457
+ u ? R.TESTNET : R.MAINNET
458
+ ],
459
+ validatorCaller: b
460
+ });
461
+ }
462
+ let c = m;
463
+ if (e.budget.address) {
464
+ if (c = e.budget.address, !await e.budget.isAuthorized(b))
465
+ throw new Lf(b);
466
+ } else
467
+ throw new Df();
468
+ let d = {
469
+ instance: m,
470
+ isBase: !0,
471
+ parameters: l
472
+ };
473
+ if (e.action.address) {
474
+ const o = e.action.isBase;
475
+ d = {
476
+ isBase: o,
477
+ instance: e.action.address,
478
+ parameters: o ? e.action.buildParameters(void 0, a).args.at(0) || l : l
479
+ };
480
+ } else
481
+ d.parameters = e.action.buildParameters(void 0, a).args.at(0) || l, d.instance = h(
482
+ a.config,
483
+ e.action.bases,
484
+ f
485
+ ).address;
486
+ let i = {
487
+ instance: m,
488
+ isBase: !0,
489
+ parameters: l
490
+ };
491
+ if (e.validator.address) {
492
+ const o = e.validator.isBase;
493
+ i = {
494
+ isBase: o,
495
+ instance: e.validator.address,
496
+ parameters: o ? e.validator.buildParameters(void 0, a).args.at(0) || l : l
497
+ };
498
+ } else
499
+ i.parameters = e.validator.buildParameters(void 0, a).args.at(0) || l, i.instance = h(
500
+ a.config,
501
+ e.validator.bases,
502
+ f
503
+ ).address;
504
+ let s = {
505
+ instance: m,
506
+ isBase: !0,
507
+ parameters: l
508
+ };
509
+ if (e.allowList || (e.allowList = this.OpenAllowList()), e.allowList.address) {
510
+ const o = e.allowList.isBase;
511
+ s = {
512
+ isBase: o,
513
+ instance: e.allowList.address,
514
+ parameters: o ? l : l
515
+ };
516
+ } else
517
+ s.parameters = e.allowList.buildParameters(void 0, a).args.at(0) || l, s.instance = h(
518
+ a.config,
519
+ e.allowList.bases,
520
+ f
521
+ ).address;
522
+ const n = e.incentives.map(() => ({
523
+ instance: m,
524
+ isBase: !0,
525
+ parameters: l
526
+ }));
527
+ for (let o = 0; o < e.incentives.length; o++) {
528
+ const r = e.incentives.at(o);
529
+ if (r.address) {
530
+ const u = r.isBase;
531
+ if (!u) throw new Of(r);
532
+ n[o] = {
533
+ isBase: u,
534
+ instance: r.address,
535
+ parameters: u ? r.buildParameters(void 0, a).args.at(0) || l : l
536
+ };
537
+ } else
538
+ n[o].parameters = r.buildParameters(void 0, a).args.at(0) || l, n[o].instance = h(
539
+ a.config,
540
+ r.bases,
541
+ f
542
+ ).address;
543
+ }
544
+ return {
545
+ budget: c,
546
+ action: d,
547
+ validator: i,
548
+ allowList: s,
549
+ incentives: n,
550
+ protocolFee: e.protocolFee || 0n,
551
+ maxParticipants: e.maxParticipants || 0n,
552
+ owner: e.owner
553
+ };
554
+ }
555
+ /**
556
+ * Claims one incentive from a given `Boost` by `boostId` and `incentiveId`
557
+ *
558
+ * @public
559
+ * @async
560
+ * @param {bigint} boostId
561
+ * @param {bigint} incentiveId
562
+ * @param {Address} address
563
+ * @param {Hex} data
564
+ * @param {?WriteParams} [params]
565
+ * @returns {Promise<void>}
566
+ */
567
+ async claimIncentive(b, f, e, a, c) {
568
+ return await this.awaitResult(
569
+ this.claimIncentiveRaw(b, f, e, a, c)
570
+ );
571
+ }
572
+ /**
573
+ * Claim an incentive for a Boost
574
+ *
575
+ * @public
576
+ * @async
577
+ * @param {bigint} boostId - The ID of the Boost
578
+ * @param {bigint} incentiveId - The ID of the Incentive
579
+ * @param {Address} referrer - The address of the referrer (if any)
580
+ * @param {Hex} data- The data for the claim
581
+ * @param {?WriteParams} [params]
582
+ * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
583
+ */
584
+ async claimIncentiveRaw(b, f, e, a, c) {
585
+ var n;
586
+ const { request: d, result: i } = await T(
587
+ this._config,
588
+ {
589
+ ...h(
590
+ this._config,
591
+ this.addresses,
592
+ ((n = c == null ? void 0 : c.chain) == null ? void 0 : n.id) || (c == null ? void 0 : c.chainId)
593
+ ),
594
+ args: [b, f, e, a],
595
+ ...this.optionallyAttachAccount(),
596
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
597
+ ...c
598
+ }
599
+ );
600
+ return { hash: await V(this._config, d), result: i };
601
+ }
602
+ /**
603
+ * Claims one incentive for a given `Boost` on behalf of another user by `boostId` and `incentiveId`
604
+ *
605
+ * @public
606
+ * @async
607
+ * @param {bigint} boostId
608
+ * @param {bigint} incentiveId
609
+ * @param {Address} referrer
610
+ * @param {Hex} data
611
+ * @param {Address} claimant
612
+ * @param {?WriteParams} [params]
613
+ * @returns {Promise<void>}
614
+ */
615
+ async claimIncentiveFor(b, f, e, a, c, d) {
616
+ return await this.awaitResult(
617
+ this.claimIncentiveForRaw(
618
+ b,
619
+ f,
620
+ e,
621
+ a,
622
+ c,
623
+ d
624
+ )
625
+ );
626
+ }
627
+ /**
628
+ * Claim an incentive for a Boost on behalf of another user
629
+ *
630
+ * @public
631
+ * @async
632
+ * @param {bigint} boostId - The ID of the Boost
633
+ * @param {bigint} incentiveId - The ID of the Incentive
634
+ * @param {Address} referrer - The address of the referrer (if any)
635
+ * @param {Hex} data - The data for the claim
636
+ * @param {Address} claimant - The address of the user eligible for the incentive payout
637
+ * @param {?WriteParams} [params]
638
+ * @returns {Promise<{ hash: Hex; result: void; }>}
639
+ */
640
+ async claimIncentiveForRaw(b, f, e, a, c, d) {
641
+ var g;
642
+ const { request: i, result: s } = await q(
643
+ this._config,
644
+ {
645
+ ...h(
646
+ this._config,
647
+ this.addresses,
648
+ ((g = d == null ? void 0 : d.chain) == null ? void 0 : g.id) || (d == null ? void 0 : d.chainId)
649
+ ),
650
+ args: [b, f, e, a, c],
651
+ ...this.optionallyAttachAccount(),
652
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
653
+ ...d
654
+ }
655
+ );
656
+ return { hash: await z(this._config, i), result: s };
657
+ }
658
+ /**
659
+ * Get a Boost by index, will return the raw on chain representation of a Boost.
660
+ *
661
+ * @public
662
+ * @async
663
+ * @param {bigint | string} id
664
+ * @param {?ReadParams} [params]
665
+ * @returns {Promise<RawBoost>}
666
+ * @throws {@link BoostNotFoundError}
667
+ */
668
+ async readBoost(b, f) {
669
+ var e;
670
+ try {
671
+ let a;
672
+ return typeof b == "string" ? a = BigInt(b) : a = b, await G(this._config, {
673
+ ...h(
674
+ this._config,
675
+ this.addresses,
676
+ f == null ? void 0 : f.chainId
677
+ ),
678
+ args: [a],
679
+ ...this.optionallyAttachAccount(),
680
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
681
+ ...f
682
+ });
683
+ } catch (a) {
684
+ throw (e = a == null ? void 0 : a.message) != null && e.includes("bounds") ? new Sf(String(b)) : a;
685
+ }
686
+ }
687
+ /**
688
+ * Get a Boost by index, will return a new {@link Boost} with correct target implementations instantiated, ie `(await core.getBoost(0n)).allowList instanceof SimpleAllowList` vs `SimpleDenyList`
689
+ *
690
+ * @public
691
+ * @async
692
+ * @param {(string | bigint)} _id
693
+ * @param {?ReadParams} [params]
694
+ * @returns {Promise<Boost>}
695
+ * @throws {@link BoostNotFoundError}
696
+ */
697
+ async getBoost(b, f) {
698
+ let e;
699
+ typeof b == "string" ? e = BigInt(b) : e = b;
700
+ const { protocolFee: a, maxParticipants: c, owner: d, ...i } = await this.readBoost(e, f), s = {
701
+ config: this._config,
702
+ account: this._account
703
+ }, [n, g, w, o, r] = await Promise.all([
704
+ df(s, i.action),
705
+ hf(s, i.budget),
706
+ _f(s, i.validator),
707
+ sf(s, i.allowList),
708
+ Promise.all(
709
+ i.incentives.map(
710
+ (u) => If(s, u)
711
+ )
712
+ )
713
+ ]);
714
+ return new E({
715
+ id: e,
716
+ action: n,
717
+ budget: g,
718
+ validator: w,
719
+ allowList: o,
720
+ incentives: r,
721
+ protocolFee: a,
722
+ maxParticipants: c,
723
+ owner: d
724
+ });
725
+ }
726
+ /**
727
+ * Retrieve the total number of deployed Boosts
728
+ *
729
+ * @public
730
+ * @async
731
+ * @param {?ReadParams} [params]
732
+ * @returns {Promise<bigint>}
733
+ */
734
+ async getBoostCount(b) {
735
+ return await U(this._config, {
736
+ ...h(
737
+ this._config,
738
+ this.addresses,
739
+ b == null ? void 0 : b.chainId
740
+ ),
741
+ args: [],
742
+ ...this.optionallyAttachAccount(),
743
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
744
+ ...b
745
+ });
746
+ }
747
+ /**
748
+ * Checks if an address is authorized
749
+ *
750
+ * @public
751
+ * @async
752
+ * @param {Address} address
753
+ * @param {?ReadParams &
754
+ * ReadParams<typeof iAuthAbi, 'isAuthorized'>} [params]
755
+ * @returns {Promise<boolean>}
756
+ */
757
+ async isAuthorized(b, f) {
758
+ const e = await this.createBoostAuth(f);
759
+ return k(this._config, {
760
+ address: e,
761
+ args: [b],
762
+ ...this.optionallyAttachAccount(),
763
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
764
+ ...f
765
+ });
766
+ }
767
+ /**
768
+ * Retrieve the address of the current creation auth provider.
769
+ *
770
+ * @public
771
+ * @async
772
+ * @param {?ReadParams} [params]
773
+ * @returns {Promise<Address>}
774
+ */
775
+ async createBoostAuth(b) {
776
+ return await W(this._config, {
777
+ ...h(
778
+ this._config,
779
+ this.addresses,
780
+ b == null ? void 0 : b.chainId
781
+ ),
782
+ args: [],
783
+ ...this.optionallyAttachAccount(),
784
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
785
+ ...b
786
+ });
787
+ }
788
+ /**
789
+ * Replace the current auth scheme.
790
+ *
791
+ * @public
792
+ * @async
793
+ * @param {Auth} auth
794
+ * @param {?WriteParams} [params]
795
+ * @returns {Promise<void>}
796
+ */
797
+ async setCreateBoostAuth(b, f) {
798
+ return await this.awaitResult(
799
+ this.setCreateBoostAuthRaw(b.assertValidAddress(), {
800
+ ...f
801
+ })
802
+ );
803
+ }
804
+ /**
805
+ * Set the createBoostAuth address
806
+ *
807
+ * @public
808
+ * @async
809
+ * @param {Address} address
810
+ * @param {?WriteParams} [params]
811
+ * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
812
+ */
813
+ async setCreateBoostAuthRaw(b, f) {
814
+ const { request: e, result: a } = await H(
815
+ this._config,
816
+ {
817
+ ...h(
818
+ this._config,
819
+ this.addresses,
820
+ f == null ? void 0 : f.chainId
821
+ ),
822
+ args: [b],
823
+ ...this.optionallyAttachAccount(),
824
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
825
+ ...f
826
+ }
827
+ );
828
+ return { hash: await Q(this._config, e), result: a };
829
+ }
830
+ /**
831
+ * Get the protocol fee.
832
+ *
833
+ * @public
834
+ * @async
835
+ * @param {?ReadParams} [params]
836
+ * @returns {unknown}
837
+ */
838
+ async protocolFee(b) {
839
+ return await Y(this._config, {
840
+ ...h(
841
+ this._config,
842
+ this.addresses,
843
+ b == null ? void 0 : b.chainId
844
+ ),
845
+ args: [],
846
+ ...this.optionallyAttachAccount(),
847
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
848
+ ...b
849
+ });
850
+ }
851
+ /**
852
+ * Get the protocol fee receiver.
853
+ *
854
+ * @public
855
+ * @async
856
+ * @param {?ReadParams} [params]
857
+ * @returns {Promise<Address>}
858
+ */
859
+ async protocolFeeReceiver(b) {
860
+ return await J(this._config, {
861
+ ...h(
862
+ this._config,
863
+ this.addresses,
864
+ b == null ? void 0 : b.chainId
865
+ ),
866
+ args: [],
867
+ ...this.optionallyAttachAccount(),
868
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
869
+ ...b
870
+ });
871
+ }
872
+ /**
873
+ * Set the protocol fee receiver address. This function is only callable by the owner.
874
+ *
875
+ * @public
876
+ * @async
877
+ * @param {Address} address
878
+ * @param {?WriteParams} [params]
879
+ * @returns {Promise<void>}
880
+ */
881
+ async setProcolFeeReceiver(b, f) {
882
+ return await this.awaitResult(
883
+ this.setProcolFeeReceiverRaw(b, {
884
+ ...f
885
+ })
886
+ );
887
+ }
888
+ /**
889
+ * Set the protocol fee receiver address. This function is only callable by the owner.
890
+ *
891
+ * @public
892
+ * @async
893
+ * @param {Address} address
894
+ * @param {?WriteParams} [params]
895
+ * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
896
+ */
897
+ async setProcolFeeReceiverRaw(b, f) {
898
+ const { request: e, result: a } = await K(
899
+ this._config,
900
+ {
901
+ ...h(
902
+ this._config,
903
+ this.addresses,
904
+ f == null ? void 0 : f.chainId
905
+ ),
906
+ args: [b],
907
+ ...this.optionallyAttachAccount(),
908
+ // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
909
+ ...f
910
+ }
911
+ );
912
+ return { hash: await X(
913
+ this._config,
914
+ e
915
+ ), result: a };
916
+ }
917
+ /**
918
+ * Retrieves the claim information from a transaction receipt.
919
+ *
920
+ * @param {GetTransactionReceiptParameters} params - The parameters required to get the transaction receipt.
921
+ * @returns {Promise<{ boostId: bigint, incentiveId: bigint, claimer: Address, amount: bigint } | undefined>} The claim information if found, undefined otherwise.
922
+ *
923
+ * @description
924
+ * This method retrieves the transaction receipt using the provided parameters,
925
+ * then parses the logs to find the 'BoostClaimed' event.
926
+ * If found, it returns the arguments of the event, which include the boost ID,
927
+ * incentive ID, claimer address, and claimed amount.
928
+ *
929
+ * @example
930
+ * ```ts
931
+ * const claimInfo = await boostCore.getClaimFromTransaction({
932
+ * hash: '0x...',
933
+ * chainId: 1
934
+ * });
935
+ * if (claimInfo) {
936
+ * console.log(`Boost ${claimInfo.boostId} claimed by ${claimInfo.claimer}`);
937
+ * }
938
+ * ```
939
+ */
940
+ async getClaimFromTransaction(b) {
941
+ var a;
942
+ const f = await bf(this._config, b);
943
+ return (a = B({
944
+ abi: A,
945
+ eventName: "BoostClaimed",
946
+ logs: f.logs
947
+ }).at(0)) == null ? void 0 : a.args;
948
+ }
949
+ /**
950
+ * Bound {@link PassthroughAuth} constructor that reuses the same configuration as the Boost Core instance.
951
+ *
952
+ * @example
953
+ * ```ts
954
+ * const auth = core.PassthroughAuth('0x') // is roughly equivalent to
955
+ * const auth = new PassthroughAuth({ config: core._config, account: core._account }, '0x')
956
+ * ```
957
+ * @param {Address} address
958
+ * @returns {PassthroughAuth}
959
+ */
960
+ PassthroughAuth(b) {
961
+ return new lf(
962
+ { config: this._config, account: this._account },
963
+ b
964
+ );
965
+ }
966
+ // /**
967
+ // * Bound {@link ContractAction} constructor that reuses the same configuration as the Boost Core instance.
968
+ // *
969
+ // * @example
970
+ // * ```ts
971
+ // * const action = core.ContractAction('0x') // is roughly equivalent to
972
+ // * const action = new ContractAction({ config: core._config, account: core._account }, '0x')
973
+ // * ```
974
+ // * @param {DeployablePayloadOrAddress<ContractActionPayload>} options
975
+ // * @param {?boolean} [isBase]
976
+ // * @returns {ContractAction}
977
+ // */
978
+ // ContractAction(
979
+ // options: DeployablePayloadOrAddress<ContractActionPayload>,
980
+ // isBase?: boolean,
981
+ // ) {
982
+ // return new ContractAction(
983
+ // { config: this._config, account: this._account },
984
+ // options,
985
+ // isBase,
986
+ // );
987
+ // }
988
+ /**
989
+ * Bound {@link EventAction} constructor that reuses the same configuration as the Boost Core instance.
990
+ *
991
+ * @example
992
+ * ```ts
993
+ * const action = core.EventAction('0x') // is roughly equivalent to
994
+ * const action = new EventAction({ config: core._config, account: core._account }, '0x')
995
+ */
996
+ EventAction(b, f) {
997
+ return new nf(
998
+ { config: this._config, account: this._account },
999
+ b,
1000
+ f
1001
+ );
1002
+ }
1003
+ // /**
1004
+ // * Bound {@link ERC721MintAction} constructor that reuses the same configuration as the Boost Core instance.
1005
+ // *
1006
+ // * @example
1007
+ // * ```ts
1008
+ // * const action = core.ERC721MintAction('0x') // is roughly equivalent to
1009
+ // * const action = new ERC721MintAction({ config: core._config, account: core._account }, '0x')
1010
+ // * ```
1011
+ // * @param {DeployablePayloadOrAddress<ERC721MintActionPayload>} options
1012
+ // * @param {?boolean} [isBase]
1013
+ // * @returns {ERC721MintAction}
1014
+ // */
1015
+ // ERC721MintAction(
1016
+ // options: DeployablePayloadOrAddress<ERC721MintActionPayload>,
1017
+ // isBase?: boolean,
1018
+ // ) {
1019
+ // return new ERC721MintAction(
1020
+ // { config: this._config, account: this._account },
1021
+ // options,
1022
+ // isBase,
1023
+ // );
1024
+ // }
1025
+ /**
1026
+ * Bound {@link OpenAllowList} constructor that reuses the same configuration as the Boost Core instance.
1027
+ *
1028
+ * @example
1029
+ * ```ts
1030
+ * const list = core.OpenAllowList('0x') // is roughly equivalent to
1031
+ * const list = new OpenAllowList({ config: core._config, account: core._account }, '0x')
1032
+ * ```
1033
+ * @param {?boolean} [isBase]
1034
+ * @returns {OpenAllowList}
1035
+ */
1036
+ OpenAllowList(b) {
1037
+ return new of(
1038
+ { config: this._config, account: this._account },
1039
+ void 0,
1040
+ b
1041
+ );
1042
+ }
1043
+ /**
1044
+ * Bound {@link SimpleAllowList} constructor that reuses the same configuration as the Boost Core instance.
1045
+ *
1046
+ * @example
1047
+ * ```ts
1048
+ * const list = core.SimpleAllowList('0x') // is roughly equivalent to
1049
+ * const list = new SimpleAllowList({ config: core._config, account: core._account }, '0x')
1050
+ * ```
1051
+ * @param {DeployablePayloadOrAddress<SimpleAllowListPayload>} options
1052
+ * @param {?boolean} [isBase]
1053
+ * @returns {SimpleAllowList}
1054
+ */
1055
+ SimpleAllowList(b, f) {
1056
+ return new rf(
1057
+ { config: this._config, account: this._account },
1058
+ b,
1059
+ f
1060
+ );
1061
+ }
1062
+ /**
1063
+ * Bound {@link SimpleDenyList} constructor that reuses the same configuration as the Boost Core instance.
1064
+ *
1065
+ * @example
1066
+ * ```ts
1067
+ * const list = core.SimpleDenyList('0x') // is roughly equivalent to
1068
+ * const list = new SimpleDenyList({ config: core._config, account: core._account }, '0x')
1069
+ * ```
1070
+ * @param {DeployablePayloadOrAddress<SimpleDenyListPayload>} options
1071
+ * @param {?boolean} [isBase]
1072
+ * @returns {SimpleDenyList}
1073
+ */
1074
+ SimpleDenyList(b, f) {
1075
+ return new uf(
1076
+ { config: this._config, account: this._account },
1077
+ b,
1078
+ f
1079
+ );
1080
+ }
1081
+ // /**
1082
+ // * Bound {@link SimpleBudget} constructor that reuses the same configuration as the Boost Core instance.
1083
+ // *
1084
+ // * @example
1085
+ // * ```ts
1086
+ // * const budget = core.SimpleBudget('0x') // is roughly equivalent to
1087
+ // * const budget = new SimpleBudget({ config: core._config, account: core._account }, '0x')
1088
+ // * ```
1089
+ // * @param {DeployablePayloadOrAddress<SimpleBudgetPayload>} options
1090
+ // * @returns {SimpleBudget}
1091
+ // */
1092
+ // SimpleBudget(options: DeployablePayloadOrAddress<SimpleBudgetPayload>) {
1093
+ // return new SimpleBudget(
1094
+ // { config: this._config, account: this._account },
1095
+ // options,
1096
+ // );
1097
+ // }
1098
+ /**
1099
+ * Bound {@link ManagedBudget} constructor that reuses the same configuration as the Boost Core instance.
1100
+ *
1101
+ * @example
1102
+ * ```ts
1103
+ * const budget = core.ManagedBudget('0x') // is roughly equivalent to
1104
+ * const budget = new ManagedBudget({ config: core._config, account: core._account }, '0x')
1105
+ * ```
1106
+ * @param {DeployablePayloadOrAddress<ManagedBudgetPayload>} options
1107
+ * @returns {ManagedBudget}
1108
+ */
1109
+ ManagedBudget(b) {
1110
+ return new gf(
1111
+ { config: this._config, account: this._account },
1112
+ b
1113
+ );
1114
+ }
1115
+ // /**
1116
+ // * Bound {@link VestingBudget} constructor that reuses the same configuration as the Boost Core instance.
1117
+ // *
1118
+ // * @example
1119
+ // * ```ts
1120
+ // * const budget = core.VestingBudget('0x') // is roughly equivalent to
1121
+ // * const budget = new VestingBudget({ config: core._config, account: core._account }, '0x')
1122
+ // * ```
1123
+ // * @param {DeployablePayloadOrAddress<VestingBudgetPayload>} options
1124
+ // * @returns {VestingBudget}
1125
+ // */
1126
+ // VestingBudget(options: DeployablePayloadOrAddress<VestingBudgetPayload>) {
1127
+ // return new VestingBudget(
1128
+ // { config: this._config, account: this._account },
1129
+ // options,
1130
+ // );
1131
+ // }
1132
+ /**
1133
+ * Bound {@link AllowListIncentive} constructor that reuses the same configuration as the Boost Core instance.
1134
+ *
1135
+ * @example
1136
+ * ```ts
1137
+ * const incentive = core.AllowListIncentive({ ... }) // is roughly equivalent to
1138
+ * const incentive = new AllowListIncentive({ config: core._config, account: core._account }, { ... })
1139
+ * ```
1140
+ * @param {DeployablePayloadOrAddress<VestingBudgetPayload>} options
1141
+ * @returns {VestingBudget}
1142
+ */
1143
+ AllowListIncentive(b) {
1144
+ return new mf(
1145
+ { config: this._config, account: this._account },
1146
+ b
1147
+ );
1148
+ }
1149
+ /**
1150
+ * Bound {@link CGDAIncentive} constructor that reuses the same configuration as the Boost Core instance.
1151
+ *
1152
+ * @example
1153
+ * ```ts
1154
+ * const incentive = core.CGDAIncentive({ ... }) // is roughly equivalent to
1155
+ * const incentive = new CGDAIncentive({ config: core._config, account: core._account }, { ... })
1156
+ * ```
1157
+ * @param {CGDAIncentivePayload} options
1158
+ * @returns {CGDAIncentive}
1159
+ */
1160
+ CGDAIncentive(b) {
1161
+ return new vf(
1162
+ { config: this._config, account: this._account },
1163
+ b
1164
+ );
1165
+ }
1166
+ /**
1167
+ * Bound {@link ERC20Incentive} constructor that reuses the same configuration as the Boost Core instance.
1168
+ *
1169
+ * @example
1170
+ * ```ts
1171
+ * const incentive = core.ERC20Incentive({ ... }) // is roughly equivalent to
1172
+ * const incentive = new ERC20Incentive({ config: core._config, account: core._account }, { ... })
1173
+ * ```
1174
+ * @param {ERC20IncentivePayload} options
1175
+ * @returns {ERC20Incentive}
1176
+ */
1177
+ ERC20Incentive(b) {
1178
+ return new Cf(
1179
+ { config: this._config, account: this._account },
1180
+ b
1181
+ );
1182
+ }
1183
+ // /**
1184
+ // * Temporarily disabled until low level ABI encoding bugs are resolved
1185
+ // * Bound {@link ERC1155Incentive} constructor that reuses the same configuration as the Boost Core instance.
1186
+ // *
1187
+ // * @experimental
1188
+ // * @example
1189
+ // * ```ts
1190
+ // * const incentive = core.ERC1155Incentive({ ... }) // is roughly equivalent to
1191
+ // * const incentive = new ERC1155Incentive({ config: core._config, account: core._account }, { ... })
1192
+ // * ```
1193
+ // * @param {ERC1155IncentivePayload} options
1194
+ // * @returns {ERC1155Incentive}
1195
+ // */
1196
+ // ERC1155Incentive(options: ERC1155IncentivePayload) {
1197
+ // return new ERC1155Incentive(
1198
+ // { config: this._config, account: this._account },
1199
+ // options,
1200
+ // );
1201
+ // }
1202
+ /**
1203
+ * Bound {@link PointsIncentive} constructor that reuses the same configuration as the Boost Core instance.
1204
+ *
1205
+ * @example
1206
+ * ```ts
1207
+ * const incentive = core.PointsIncentive({ ... }) // is roughly equivalent to
1208
+ * const incentive = new PointsIncentive({ config: core._config, account: core._account }, { ... })
1209
+ * ```
1210
+ * @param {PointsIncentivePayload} options
1211
+ * @returns {PointsIncentive}
1212
+ */
1213
+ PointsIncentive(b) {
1214
+ return new yf(
1215
+ { config: this._config, account: this._account },
1216
+ b
1217
+ );
1218
+ }
1219
+ /**
1220
+ * Bound {@link SignerValidator} constructor that reuses the same configuration as the Boost Core instance.
1221
+ *
1222
+ * @example
1223
+ * ```ts
1224
+ * const validator = core.SignerValidator({ ... }) // is roughly equivalent to
1225
+ * const validator = new SignerValidator({ config: core._config, account: core._account }, { ... })
1226
+ * ```
1227
+ * @param {DeployablePayloadOrAddress<SignerValidatorPayload>} options
1228
+ * @param {?boolean} [isBase]
1229
+ * @returns {SignerValidator}
1230
+ */
1231
+ SignerValidator(b, f) {
1232
+ return new Bf(
1233
+ { config: this._config, account: this._account },
1234
+ b,
1235
+ f
1236
+ );
1237
+ }
1238
+ /**
1239
+ * Bound {@link LimitedSignerValidator} constructor that reuses the same configuration as the Boost Core instance.
1240
+ *
1241
+ * @example
1242
+ * ```ts
1243
+ * const validator = core.LimitedSignerValidator({ ... }) // is roughly equivalent to
1244
+ * const validator = new LimitedSignerValidator({ config: core._config, account: core._account }, { ... })
1245
+ * ```
1246
+ * @param {DeployablePayloadOrAddress<LimitedSignerValidatorPayload>} options
1247
+ * @param {?boolean} [isBase]
1248
+ * @returns {LimitedSignerValidator}
1249
+ */
1250
+ LimitedSignerValidator(b, f) {
1251
+ return new Pf(
1252
+ { config: this._config, account: this._account },
1253
+ b,
1254
+ f
1255
+ );
1256
+ }
1257
+ /**
1258
+ * Bound {@link ERC20VariableCriteriaIncentive} constructor that reuses the same configuration as the Boost Core instance.
1259
+ *
1260
+ * @example
1261
+ * ```ts
1262
+ * const validator = core.ERC20VariableCrtieriaIncentive({ ... }) // is roughly equivalent to
1263
+ * const validator = new ERC20VariableCrtieriaIncentive({ config: core._config, account: core._account }, { ... })
1264
+ * ```
1265
+ * @param {DeployablePayloadOrAddress<ERC20VariableCrtieriaIncentivePayload>} options
1266
+ * @param {?boolean} [isBase]
1267
+ * @returns {ERC20VariableCrtieriaIncentive}
1268
+ * */
1269
+ ERC20VariableCriteriaIncentive(b, f) {
1270
+ return new Af(
1271
+ { config: this._config, account: this._account },
1272
+ b,
1273
+ f
1274
+ );
1275
+ }
1276
+ /**
1277
+ * Bound {@link ERC20VariableIncentive} constructor that reuses the same configuration as the Boost Core instance.
1278
+ *
1279
+ * @example
1280
+ * ```ts
1281
+ * const validator = core.ERC20VariableIncentive({ ... }) // is roughly equivalent to
1282
+ * const validator = new ERC20VariableIncentive({ config: core._config, account: core._account }, { ... })
1283
+ * ```
1284
+ * @param {DeployablePayloadOrAddress<ERC20VariableIncentivePayload>} options
1285
+ * @param {?boolean} [isBase]
1286
+ * @returns {ERC20VariableIncentive}
1287
+ */
1288
+ ERC20VariableIncentive(b, f) {
1289
+ return new Nf(
1290
+ { config: this._config, account: this._account },
1291
+ b,
1292
+ f
1293
+ );
1294
+ }
1295
+ /**
1296
+ * @inheritdoc
1297
+ *
1298
+ * @public
1299
+ * @param {?[Address, Address]} [_payload]
1300
+ * @param {?DeployableOptions} [_options]
1301
+ * @returns {GenericDeployableParams}
1302
+ */
1303
+ buildParameters(b, f) {
1304
+ const [e, a] = this.validateDeploymentConfig(
1305
+ b,
1306
+ f
1307
+ );
1308
+ return {
1309
+ abi: A,
1310
+ bytecode: Tf,
1311
+ args: e,
1312
+ ...this.optionallyAttachAccount(a.account)
1313
+ };
1314
+ }
1315
+ };
1316
+ P.addresses = y;
1317
+ let L = P;
25
1318
  export {
26
- M as BOOST_CORE_ADDRESS,
27
- d as BOOST_CORE_ADDRESSES,
28
- g as BOOST_CORE_CLAIM_FEE,
29
- h as BoostCore,
30
- I as boostCoreAbi
1319
+ _0 as BOOST_CORE_ADDRESS,
1320
+ y as BOOST_CORE_ADDRESSES,
1321
+ B0 as BOOST_CORE_CLAIM_FEE,
1322
+ L as BoostCore,
1323
+ A as boostCoreAbi
31
1324
  };
32
1325
  //# sourceMappingURL=BoostCore.js.map