@boostxyz/sdk 7.8.0 → 8.0.0-canary.0

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 (125) hide show
  1. package/dist/Actions/Action.cjs +1 -1
  2. package/dist/Actions/Action.js +1 -1
  3. package/dist/Actions/EventAction.cjs +1 -1
  4. package/dist/Actions/EventAction.cjs.map +1 -1
  5. package/dist/Actions/EventAction.d.ts +4 -4
  6. package/dist/Actions/EventAction.js +97 -97
  7. package/dist/Actions/EventAction.js.map +1 -1
  8. package/dist/{AllowList-DiU7g4Hs.js → AllowList-CWqAYlwr.js} +28 -28
  9. package/dist/{AllowList-DiU7g4Hs.js.map → AllowList-CWqAYlwr.js.map} +1 -1
  10. package/dist/{AllowList-BJ9HQGFs.cjs → AllowList-Lpqz7tn9.cjs} +2 -2
  11. package/dist/{AllowList-BJ9HQGFs.cjs.map → AllowList-Lpqz7tn9.cjs.map} +1 -1
  12. package/dist/AllowLists/AllowList.cjs +1 -1
  13. package/dist/AllowLists/AllowList.js +3 -3
  14. package/dist/AllowLists/SimpleAllowList.cjs +1 -1
  15. package/dist/AllowLists/SimpleAllowList.js +8 -8
  16. package/dist/AllowLists/SimpleDenyList.cjs +1 -1
  17. package/dist/AllowLists/SimpleDenyList.js +3 -3
  18. package/dist/Auth/PassthroughAuth.cjs +1 -1
  19. package/dist/Auth/PassthroughAuth.js +1 -1
  20. package/dist/BoostCore.cjs +2 -2
  21. package/dist/BoostCore.cjs.map +1 -1
  22. package/dist/BoostCore.d.ts +106 -23
  23. package/dist/BoostCore.d.ts.map +1 -1
  24. package/dist/BoostCore.js +518 -451
  25. package/dist/BoostCore.js.map +1 -1
  26. package/dist/BoostRegistry.cjs +1 -1
  27. package/dist/BoostRegistry.js +46 -46
  28. package/dist/{Budget-YIhV65cc.js → Budget-BPPXnBAK.js} +36 -36
  29. package/dist/{Budget-YIhV65cc.js.map → Budget-BPPXnBAK.js.map} +1 -1
  30. package/dist/{Budget-D_zhh1rh.cjs → Budget-rZm-AY09.cjs} +2 -2
  31. package/dist/{Budget-D_zhh1rh.cjs.map → Budget-rZm-AY09.cjs.map} +1 -1
  32. package/dist/Budgets/Budget.cjs +1 -1
  33. package/dist/Budgets/Budget.js +2 -2
  34. package/dist/Budgets/ManagedBudget.cjs +1 -1
  35. package/dist/Budgets/ManagedBudget.js +24 -24
  36. package/dist/Deployable/Contract.cjs +1 -1
  37. package/dist/Deployable/Contract.cjs.map +1 -1
  38. package/dist/Deployable/Contract.d.ts +8 -0
  39. package/dist/Deployable/Contract.d.ts.map +1 -1
  40. package/dist/Deployable/Contract.js +14 -4
  41. package/dist/Deployable/Contract.js.map +1 -1
  42. package/dist/Deployable/Deployable.cjs +1 -1
  43. package/dist/Deployable/Deployable.cjs.map +1 -1
  44. package/dist/Deployable/Deployable.d.ts +7 -0
  45. package/dist/Deployable/Deployable.d.ts.map +1 -1
  46. package/dist/Deployable/Deployable.js +13 -4
  47. package/dist/Deployable/Deployable.js.map +1 -1
  48. package/dist/Deployable/DeployableTarget.cjs +1 -1
  49. package/dist/Deployable/DeployableTarget.js +7 -7
  50. package/dist/Deployable/DeployableTargetWithRBAC.cjs +1 -1
  51. package/dist/Deployable/DeployableTargetWithRBAC.js +16 -16
  52. package/dist/{Incentive-CrnbYN_a.cjs → Incentive-Bse5BKbF.cjs} +2 -2
  53. package/dist/{Incentive-CrnbYN_a.cjs.map → Incentive-Bse5BKbF.cjs.map} +1 -1
  54. package/dist/{Incentive-CeoEla-t.js → Incentive-D1sYPD0W.js} +23 -23
  55. package/dist/{Incentive-CeoEla-t.js.map → Incentive-D1sYPD0W.js.map} +1 -1
  56. package/dist/Incentives/AllowListIncentive.cjs +1 -1
  57. package/dist/Incentives/AllowListIncentive.js +17 -17
  58. package/dist/Incentives/CGDAIncentive.cjs +1 -1
  59. package/dist/Incentives/CGDAIncentive.js +38 -38
  60. package/dist/Incentives/ERC20Incentive.cjs +1 -1
  61. package/dist/Incentives/ERC20Incentive.js +13 -13
  62. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentive.cjs +1 -1
  63. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentive.cjs.map +1 -1
  64. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentive.d.ts +6 -6
  65. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentive.js +22 -22
  66. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentive.js.map +1 -1
  67. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentiveV2.cjs +1 -1
  68. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentiveV2.cjs.map +1 -1
  69. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentiveV2.d.ts +6 -6
  70. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentiveV2.js +91 -91
  71. package/dist/Incentives/ERC20PeggedVariableCriteriaIncentiveV2.js.map +1 -1
  72. package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs +1 -1
  73. package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs.map +1 -1
  74. package/dist/Incentives/ERC20VariableCriteriaIncentive.d.ts +6 -6
  75. package/dist/Incentives/ERC20VariableCriteriaIncentive.js +9 -9
  76. package/dist/Incentives/ERC20VariableCriteriaIncentive.js.map +1 -1
  77. package/dist/Incentives/ERC20VariableCriteriaIncentiveV2.cjs +1 -1
  78. package/dist/Incentives/ERC20VariableCriteriaIncentiveV2.cjs.map +1 -1
  79. package/dist/Incentives/ERC20VariableCriteriaIncentiveV2.d.ts +6 -6
  80. package/dist/Incentives/ERC20VariableCriteriaIncentiveV2.js +9 -9
  81. package/dist/Incentives/ERC20VariableCriteriaIncentiveV2.js.map +1 -1
  82. package/dist/Incentives/ERC20VariableIncentive.cjs +1 -1
  83. package/dist/Incentives/ERC20VariableIncentive.js +12 -12
  84. package/dist/Incentives/Incentive.cjs +1 -1
  85. package/dist/Incentives/Incentive.js +2 -2
  86. package/dist/Incentives/PointsIncentive.cjs +1 -1
  87. package/dist/Incentives/PointsIncentive.js +10 -10
  88. package/dist/{SimpleDenyList-Dr03aOeP.js → SimpleDenyList-BtEUdiAj.js} +14 -14
  89. package/dist/{SimpleDenyList-Dr03aOeP.js.map → SimpleDenyList-BtEUdiAj.js.map} +1 -1
  90. package/dist/{SimpleDenyList-7-VTqfsH.cjs → SimpleDenyList-DEoMIYhE.cjs} +2 -2
  91. package/dist/{SimpleDenyList-7-VTqfsH.cjs.map → SimpleDenyList-DEoMIYhE.cjs.map} +1 -1
  92. package/dist/{Validator-rYW7PMwW.cjs → Validator-DHS4vjSa.cjs} +2 -2
  93. package/dist/{Validator-rYW7PMwW.cjs.map → Validator-DHS4vjSa.cjs.map} +1 -1
  94. package/dist/{Validator-DgvB9wge.js → Validator-Kpvmj9Bs.js} +9 -9
  95. package/dist/{Validator-DgvB9wge.js.map → Validator-Kpvmj9Bs.js.map} +1 -1
  96. package/dist/Validators/LimitedSignerValidator.cjs +1 -1
  97. package/dist/Validators/LimitedSignerValidator.js +17 -17
  98. package/dist/Validators/SignerValidator.cjs +1 -1
  99. package/dist/Validators/SignerValidator.js +3 -3
  100. package/dist/Validators/Validator.cjs +1 -1
  101. package/dist/Validators/Validator.js +2 -2
  102. package/dist/{deployments-CHQ30INq.js → deployments-Coa8CGi2.js} +67 -67
  103. package/dist/{deployments-CHQ30INq.js.map → deployments-Coa8CGi2.js.map} +1 -1
  104. package/dist/{deployments-BjBgk03b.cjs → deployments-Dgzcz4Ev.cjs} +2 -2
  105. package/dist/deployments-Dgzcz4Ev.cjs.map +1 -0
  106. package/dist/deployments.json +46 -46
  107. package/dist/generated-BzLYuFx3.cjs +3 -0
  108. package/dist/generated-BzLYuFx3.cjs.map +1 -0
  109. package/dist/{generated-B6mEIx8i.js → generated-D6oDILUw.js} +250 -193
  110. package/dist/generated-D6oDILUw.js.map +1 -0
  111. package/dist/index.cjs +1 -1
  112. package/dist/index.js +16 -16
  113. package/dist/utils.cjs.map +1 -1
  114. package/dist/utils.d.ts.map +1 -1
  115. package/dist/utils.js.map +1 -1
  116. package/package.json +1 -1
  117. package/src/BoostCore.test.ts +34 -23
  118. package/src/BoostCore.ts +124 -26
  119. package/src/Deployable/Contract.ts +11 -0
  120. package/src/Deployable/Deployable.ts +10 -0
  121. package/src/utils.ts +0 -1
  122. package/dist/deployments-BjBgk03b.cjs.map +0 -1
  123. package/dist/generated-B6mEIx8i.js.map +0 -1
  124. package/dist/generated-dd4FN0Fo.cjs +0 -3
  125. package/dist/generated-dd4FN0Fo.cjs.map +0 -1
@@ -1,14 +1,14 @@
1
- import { M as n, cJ as w, cK as A, cL as u, cM as y, cN as p, cO as m, cP as g, cQ as I, cR as _, cS as R, cT as D, cU as E, cV as S, cW as O, cX as L, cY as V, cZ as T, P as C, c_ as B } from "./generated-B6mEIx8i.js";
2
- import { n as q, o as v, p as P } from "./componentInterfaces-D2s6AXlV.js";
1
+ import { a as n, cJ as w, cK as A, cL as u, cM as y, cN as p, cO as m, cP as g, cQ as I, cR as _, cS as R, cT as D, cU as S, cV as E, cW as O, cX as V, cY as L, cZ as q, P as C, c_ as T } from "./generated-D6oDILUw.js";
2
+ import { n as B, o as v, p as P } from "./componentInterfaces-D2s6AXlV.js";
3
3
  import { getAccount as N, readContract as x } from "@wagmi/core";
4
- import { DeployableUnknownOwnerProvidedError as F, InvalidComponentInterfaceError as k } from "./errors.js";
5
- import { zeroAddress as l, encodeAbiParameters as M } from "viem";
6
- import { O as U } from "./deployments-CHQ30INq.js";
7
- import { DeployableTargetWithRBAC as W } from "./Deployable/DeployableTargetWithRBAC.js";
8
- import { RegistryType as j } from "./utils.js";
9
- import { S as h, b as z, p as G } from "./SimpleDenyList-Dr03aOeP.js";
10
- import { SimpleAllowList as J } from "./AllowLists/SimpleAllowList.js";
11
- const K = "0x6080604052348015600e575f80fd5b5060156019565b607c565b63409feecd198054600181161560365763f92ee8a95f526004601cfd5b6001600160401b03808260011c146077578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b612127806100895f395ff3fe608060405260043610610229575f3560e01c8063859aa08911610131578063e89079fa116100ac578063f04e283e1161007c578063fdee627a11610062578063fdee627a14610620578063fe9fbb8014610634578063fee81cf414610653575f80fd5b8063f04e283e146105fa578063f2fde38b1461060d575f80fd5b8063e89079fa14610587578063ec87621c146105a6578063ef05bda9146105ba578063ef4550bf146105d9575f80fd5b8063be4994f811610101578063dcc21361116100e7578063dcc2136114610526578063e3f756de14610545578063e611205f14610568575f80fd5b8063be4994f8146104e8578063cbb7de5114610507575f80fd5b8063859aa089146104535780638da5cb5b14610472578063937d599c146104aa57806399927eec146104c9575f80fd5b80632de94807116101c1578063514e62fc11610191578063715018a611610177578063715018a61461041857806375b238fc146104205780637e973e8214610434575f80fd5b8063514e62fc146103db57806354d1f13d14610410575f80fd5b80632de948071461034b5780634359d28a1461038a578063439fab91146103a95780634a4ee7b1146103c8575f80fd5b80631cd64df4116101fc5780631cd64df4146102b557806325692962146102ea57806328d6183b146102f25780632c297c181461032c575f80fd5b806301ffc9a71461022d578063096f199f14610261578063183a4f6e1461028d5780631c10893f146102a2575b5f80fd5b348015610238575f80fd5b5061024c610247366004611725565b610684565b60405190151581526020015b60405180910390f35b34801561026c575f80fd5b5061028061027b36600461176b565b6106df565b60405161025891906117b0565b6102a061029b36600461176b565b610785565b005b6102a06102b03660046117e3565b610792565b3480156102c0575f80fd5b5061024c6102cf3660046117e3565b638b78c6d8600c9081525f9290925260209091205481161490565b6102a06107a8565b3480156102fd575f80fd5b506040517f2a6b3c38000000000000000000000000000000000000000000000000000000008152602001610258565b348015610337575f80fd5b506102a0610346366004611852565b6107f5565b348015610356575f80fd5b5061037c610365366004611891565b638b78c6d8600c9081525f91909152602090205490565b604051908152602001610258565b348015610395575f80fd5b506102a06103a43660046118ed565b6108ea565b3480156103b4575f80fd5b506102a06103c3366004611852565b6109e4565b6102a06103d63660046117e3565b610ab7565b3480156103e6575f80fd5b5061024c6103f53660046117e3565b638b78c6d8600c9081525f9290925260209091205416151590565b6102a0610ac9565b6102a0610b02565b34801561042b575f80fd5b5061037c600281565b34801561043f575f80fd5b506102a061044e366004611852565b610b15565b34801561045e575f80fd5b506102a061046d366004611959565b610bfe565b34801561047d575f80fd5b50638b78c6d8195460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610258565b3480156104b5575f80fd5b5061024c6104c4366004611852565b610ca0565b3480156104d4575f80fd5b5061024c6104e3366004611852565b610d15565b3480156104f3575f80fd5b506102a06105023660046118ed565b610d7f565b348015610512575f80fd5b506102a0610521366004611959565b610e1d565b348015610531575f80fd5b506102a06105403660046118ed565b610ebd565b348015610550575f80fd5b5061024c61055f36600461198c565b60019392505050565b348015610573575f80fd5b5061028061058236600461176b565b610f5b565b348015610592575f80fd5b506102a06105a1366004611852565b610f69565b3480156105b1575f80fd5b5061037c600181565b3480156105c5575f80fd5b506102a06105d4366004611852565b6110bc565b3480156105e4575f80fd5b506105ed6111bc565b60405161025891906119dd565b6102a0610608366004611891565b611290565b6102a061061b366004611891565b6112ca565b34801561062b575f80fd5b506105ed6112f0565b34801561063f575f80fd5b5061024c61064e366004611891565b6113ba565b34801561065e575f80fd5b5061037c61066d366004611891565b63389a75e1600c9081525f91909152602090205490565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f2a6b3c380000000000000000000000000000000000000000000000000000000014806106d957506106d982611419565b92915050565b600181815481106106ee575f80fd5b905f5260205f20015f91509050805461070690611a5e565b80601f016020809104026020016040519081016040528092919081815260200182805461073290611a5e565b801561077d5780601f106107545761010080835404028352916020019161077d565b820191905f5260205f20905b81548152906001019060200180831161076057829003601f168201915b505050505081565b61078f338261146e565b50565b61079a611479565b6107a48282611493565b5050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b6107fe336113ba565b610834576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61083e8282610ca0565b156108aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f44656e796c69737420494420616c72656164792065786973747300000000000060448201526064015b60405180910390fd5b6001805480820182555f919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6016108e5828483611b27565b505050565b60026108f58161149f565b83821461092e576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b848110156109dc575f84848381811061094b5761094b611be1565b90506020020160208101906109609190611c0e565b90508015156001036109a25761099d87878481811061098157610981611be1565b90506020020160208101906109969190611891565b6001611493565b6109d3565b6109d38787848181106109b7576109b7611be1565b90506020020160208101906109cc9190611891565b600161146e565b50600101610930565b505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011328054600382558015610a355760018160011c14303b10610a2c5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8080610a4585870187611d5e565b925092509250610a54836114d0565b8151610a66905f90602085019061164f565b508051610a7a90600190602084019061164f565b5050505080156108e5576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a1505050565b610abf611479565b6107a4828261146e565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610b0a611479565b610b135f611518565b565b610b1e336113ba565b610b54576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b5e8282610d15565b15610bc5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f416c6c6f776c69737420494420616c726561647920657869737473000000000060448201526064016108a1565b5f80546001810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563016108e5828483611b27565b610c07336113ba565b610c3d576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c4860015f6116a3565b5f5b818110156108e5576001838383818110610c6657610c66611be1565b9050602002810190610c789190611dd4565b82546001810184555f938452602090932090920191610c979183611b27565b50600101610c4a565b5f805b600154811015610d0c578383604051610cbd929190611e35565b604051809103902060018281548110610cd857610cd8611be1565b905f5260205f2001604051610ced9190611e44565b604051809103902003610d045760019150506106d9565b600101610ca3565b505f9392505050565b5f805b5f54811015610d0c578383604051610d31929190611e35565b60405180910390205f8281548110610d4b57610d4b611be1565b905f5260205f2001604051610d609190611e44565b604051809103902003610d775760019150506106d9565b600101610d18565b6002610d8a8161149f565b838214610dc3576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b848110156109dc57610e15868683818110610de257610de2611be1565b9050602002016020810190610df79190611891565b858584818110610e0957610e09611be1565b90506020020135611493565b600101610dc5565b610e26336113ba565b610e5c576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e665f806116a3565b5f5b818110156108e5575f838383818110610e8357610e83611be1565b9050602002810190610e959190611dd4565b82546001810184555f938452602090932090920191610eb49183611b27565b50600101610e68565b6002610ec88161149f565b838214610f01576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b848110156109dc57610f53868683818110610f2057610f20611be1565b9050602002016020810190610f359190611891565b858584818110610f4757610f47611be1565b9050602002013561146e565b600101610f03565b5f81815481106106ee575f80fd5b610f72336113ba565b610fa8576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b5f54811015611085578282604051610fc3929190611e35565b60405180910390205f8281548110610fdd57610fdd611be1565b905f5260205f2001604051610ff29190611e44565b60405180910390200361107d575f805461100e90600190611ed3565b8154811061101e5761101e611be1565b905f5260205f20015f828154811061103857611038611be1565b905f5260205f2001908161104c9190611f0b565b505f80548061105d5761105d611fe3565b600190038181905f5260205f20015f61107691906116be565b9055505050565b600101610faa565b5081816040517f8cf9845e0000000000000000000000000000000000000000000000000000000081526004016108a1929190612010565b6110c5336113ba565b6110fb576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b600154811015611085578282604051611117929190611e35565b60405180910390206001828154811061113257611132611be1565b905f5260205f20016040516111479190611e44565b6040518091039020036111b45760018054611163908290611ed3565b8154811061117357611173611be1565b905f5260205f20016001828154811061118e5761118e611be1565b905f5260205f200190816111a29190611f0b565b50600180548061105d5761105d611fe3565b6001016110fd565b60606001805480602002602001604051908101604052809291908181526020015f905b82821015611287578382905f5260205f200180546111fc90611a5e565b80601f016020809104026020016040519081016040528092919081815260200182805461122890611a5e565b80156112735780601f1061124a57610100808354040283529160200191611273565b820191905f5260205f20905b81548152906001019060200180831161125657829003601f168201915b5050505050815260200190600101906111df565b50505050905090565b611298611479565b63389a75e1600c52805f526020600c2080544211156112be57636f5e88185f526004601cfd5b5f905561078f81611518565b6112d2611479565b8060601b6112e757637448fbae5f526004601cfd5b61078f81611518565b60605f805480602002602001604051908101604052809291908181526020015f905b82821015611287578382905f5260205f2001805461132f90611a5e565b80601f016020809104026020016040519081016040528092919081815260200182805461135b90611a5e565b80156113a65780601f1061137d576101008083540402835291602001916113a6565b820191905f5260205f20905b81548152906001019060200180831161138957829003601f168201915b505050505081526020019060010190611312565b5f8173ffffffffffffffffffffffffffffffffffffffff166113df638b78c6d8195490565b73ffffffffffffffffffffffffffffffffffffffff1614806106d95750638b78c6d8600c9081525f839052602090205460031615156106d9565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fe2089f790000000000000000000000000000000000000000000000000000000014806106d957506106d982611562565b6107a482825f6115f8565b638b78c6d819543314610b13576382b429005f526004601cfd5b6107a4828260016115f8565b638b78c6d81954331461078f57638b78c6d8600c52335f52806020600c20541661078f576382b429005f526004601cfd5b73ffffffffffffffffffffffffffffffffffffffff16638b78c6d819819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b638b78c6d819805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f6ab67a0d0000000000000000000000000000000000000000000000000000000014806106d957507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146106d9565b638b78c6d8600c52825f526020600c20805483811783611619575080841681185b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b828054828255905f5260205f20908101928215611693579160200282015b828111156116935782518290611683908261203e565b509160200191906001019061166d565b5061169f9291506116f5565b5090565b5080545f8255905f5260205f209081019061078f91906116f5565b5080546116ca90611a5e565b5f825580601f106116d9575050565b601f0160209004905f5260205f209081019061078f9190611711565b8082111561169f575f61170882826116be565b506001016116f5565b5b8082111561169f575f8155600101611712565b5f60208284031215611735575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611764575f80fd5b9392505050565b5f6020828403121561177b575f80fd5b5035919050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6117646020830184611782565b73ffffffffffffffffffffffffffffffffffffffff8116811461078f575f80fd5b5f80604083850312156117f4575f80fd5b82356117ff816117c2565b946020939093013593505050565b5f8083601f84011261181d575f80fd5b50813567ffffffffffffffff811115611834575f80fd5b60208301915083602082850101111561184b575f80fd5b9250929050565b5f8060208385031215611863575f80fd5b823567ffffffffffffffff811115611879575f80fd5b6118858582860161180d565b90969095509350505050565b5f602082840312156118a1575f80fd5b8135611764816117c2565b5f8083601f8401126118bc575f80fd5b50813567ffffffffffffffff8111156118d3575f80fd5b6020830191508360208260051b850101111561184b575f80fd5b5f805f8060408587031215611900575f80fd5b843567ffffffffffffffff811115611916575f80fd5b611922878288016118ac565b909550935050602085013567ffffffffffffffff811115611941575f80fd5b61194d878288016118ac565b95989497509550505050565b5f806020838503121561196a575f80fd5b823567ffffffffffffffff811115611980575f80fd5b611885858286016118ac565b5f805f6040848603121561199e575f80fd5b83356119a9816117c2565b9250602084013567ffffffffffffffff8111156119c4575f80fd5b6119d08682870161180d565b9497909650939450505050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015611a52577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452611a3d858351611782565b94506020938401939190910190600101611a03565b50929695505050505050565b600181811c90821680611a7257607f821691505b602082108103611aa9577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b601f8211156108e557805f5260205f20601f840160051c81016020851015611b015750805b601f840160051c820191505b81811015611b20575f8155600101611b0d565b5050505050565b67ffffffffffffffff831115611b3f57611b3f611aaf565b611b5383611b4d8354611a5e565b83611adc565b5f601f841160018114611b84575f8515611b6d5750838201355b5f19600387901b1c1916600186901b178355611b20565b5f83815260208120601f198716915b82811015611bb35786850135825560209485019460019092019101611b93565b5086821015611bcf575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215611c1e575f80fd5b81358015158114611764575f80fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611c5657611c56611aaf565b604052919050565b5f82601f830112611c6d575f80fd5b813567ffffffffffffffff811115611c8757611c87611aaf565b8060051b611c9760208201611c2d565b91825260208185018101929081019086841115611cb2575f80fd5b6020860192505b83831015611d5457823567ffffffffffffffff811115611cd7575f80fd5b8601603f81018813611ce7575f80fd5b602081013567ffffffffffffffff811115611d0457611d04611aaf565b611d176020601f19601f84011601611c2d565b8181526040838301018a1015611d2b575f80fd5b816040840160208301375f60208383010152808552505050602082019150602083019250611cb9565b9695505050505050565b5f805f60608486031215611d70575f80fd5b8335611d7b816117c2565b9250602084013567ffffffffffffffff811115611d96575f80fd5b611da286828701611c5e565b925050604084013567ffffffffffffffff811115611dbe575f80fd5b611dca86828701611c5e565b9150509250925092565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611e07575f80fd5b83018035915067ffffffffffffffff821115611e21575f80fd5b60200191503681900382131561184b575f80fd5b818382375f9101908152919050565b5f808354611e5181611a5e565b600182168015611e685760018114611e9b57611ec8565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0083168652811515820286019350611ec8565b865f5260205f205f5b83811015611ec057815488820152600190910190602001611ea4565b505081860193505b509195945050505050565b818103818111156106d9577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b818103611f16575050565b611f208254611a5e565b67ffffffffffffffff811115611f3857611f38611aaf565b611f4c81611f468454611a5e565b84611adc565b5f601f821160018114611f80575f8315611f665750848201545b600184901b5f19600386901b1c198216175b855550611b20565b5f8581526020808220868352908220601f198616925b83811015611fb65782860154825560019586019590910190602001611f96565b5085831015611fd357818501545f19600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208152816020820152818360408301375f818301604090810191909152601f909201601f19160101919050565b815167ffffffffffffffff81111561205857612058611aaf565b61206681611f468454611a5e565b6020601f821160018114612096575f8315611f66575081850151600184901b5f19600386901b1c19821617611f78565b5f84815260208120601f198516915b828110156120c557878501518255602094850194600190920191016120a5565b50848210156120e257868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fea26469706673582212206100a11e4e0b5bdd589ed060e5af18faef222dc9a5fb78d50ce02911e161f36664736f6c634300081a0033", t = { BASE_URL: "/", DEV: !1, MODE: "production", PROD: !0, SSR: !1, VITE_BOOST_MAINNET_SIGNER_EOA: "0xCBD0C302040bC803B4B2EDaF21Be0e49Deff5480", VITE_BOOST_TESTNET_SIGNER_EOA: "0xd63167e9db11B108940b2E8236581F961f33f396" }, s = class s extends W {
4
+ import { DeployableUnknownOwnerProvidedError as F, InvalidComponentInterfaceError as W } from "./errors.js";
5
+ import { zeroAddress as l, encodeAbiParameters as k } from "viem";
6
+ import { O as M } from "./deployments-Coa8CGi2.js";
7
+ import { DeployableTargetWithRBAC as U } from "./Deployable/DeployableTargetWithRBAC.js";
8
+ import { RegistryType as G } from "./utils.js";
9
+ import { S as h, b as J, p as Q } from "./SimpleDenyList-BtEUdiAj.js";
10
+ import { SimpleAllowList as $ } from "./AllowLists/SimpleAllowList.js";
11
+ const j = "0x6080604052348015600e575f80fd5b5060156019565b607c565b63409feecd198054600181161560365763f92ee8a95f526004601cfd5b6001600160401b03808260011c146077578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b612127806100895f395ff3fe608060405260043610610229575f3560e01c8063859aa08911610131578063e89079fa116100ac578063f04e283e1161007c578063fdee627a11610062578063fdee627a14610620578063fe9fbb8014610634578063fee81cf414610653575f80fd5b8063f04e283e146105fa578063f2fde38b1461060d575f80fd5b8063e89079fa14610587578063ec87621c146105a6578063ef05bda9146105ba578063ef4550bf146105d9575f80fd5b8063be4994f811610101578063dcc21361116100e7578063dcc2136114610526578063e3f756de14610545578063e611205f14610568575f80fd5b8063be4994f8146104e8578063cbb7de5114610507575f80fd5b8063859aa089146104535780638da5cb5b14610472578063937d599c146104aa57806399927eec146104c9575f80fd5b80632de94807116101c1578063514e62fc11610191578063715018a611610177578063715018a61461041857806375b238fc146104205780637e973e8214610434575f80fd5b8063514e62fc146103db57806354d1f13d14610410575f80fd5b80632de948071461034b5780634359d28a1461038a578063439fab91146103a95780634a4ee7b1146103c8575f80fd5b80631cd64df4116101fc5780631cd64df4146102b557806325692962146102ea57806328d6183b146102f25780632c297c181461032c575f80fd5b806301ffc9a71461022d578063096f199f14610261578063183a4f6e1461028d5780631c10893f146102a2575b5f80fd5b348015610238575f80fd5b5061024c610247366004611725565b610684565b60405190151581526020015b60405180910390f35b34801561026c575f80fd5b5061028061027b36600461176b565b6106df565b60405161025891906117b0565b6102a061029b36600461176b565b610785565b005b6102a06102b03660046117e3565b610792565b3480156102c0575f80fd5b5061024c6102cf3660046117e3565b638b78c6d8600c9081525f9290925260209091205481161490565b6102a06107a8565b3480156102fd575f80fd5b506040517f2a6b3c38000000000000000000000000000000000000000000000000000000008152602001610258565b348015610337575f80fd5b506102a0610346366004611852565b6107f5565b348015610356575f80fd5b5061037c610365366004611891565b638b78c6d8600c9081525f91909152602090205490565b604051908152602001610258565b348015610395575f80fd5b506102a06103a43660046118ed565b6108ea565b3480156103b4575f80fd5b506102a06103c3366004611852565b6109e4565b6102a06103d63660046117e3565b610ab7565b3480156103e6575f80fd5b5061024c6103f53660046117e3565b638b78c6d8600c9081525f9290925260209091205416151590565b6102a0610ac9565b6102a0610b02565b34801561042b575f80fd5b5061037c600281565b34801561043f575f80fd5b506102a061044e366004611852565b610b15565b34801561045e575f80fd5b506102a061046d366004611959565b610bfe565b34801561047d575f80fd5b50638b78c6d8195460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610258565b3480156104b5575f80fd5b5061024c6104c4366004611852565b610ca0565b3480156104d4575f80fd5b5061024c6104e3366004611852565b610d15565b3480156104f3575f80fd5b506102a06105023660046118ed565b610d7f565b348015610512575f80fd5b506102a0610521366004611959565b610e1d565b348015610531575f80fd5b506102a06105403660046118ed565b610ebd565b348015610550575f80fd5b5061024c61055f36600461198c565b60019392505050565b348015610573575f80fd5b5061028061058236600461176b565b610f5b565b348015610592575f80fd5b506102a06105a1366004611852565b610f69565b3480156105b1575f80fd5b5061037c600181565b3480156105c5575f80fd5b506102a06105d4366004611852565b6110bc565b3480156105e4575f80fd5b506105ed6111bc565b60405161025891906119dd565b6102a0610608366004611891565b611290565b6102a061061b366004611891565b6112ca565b34801561062b575f80fd5b506105ed6112f0565b34801561063f575f80fd5b5061024c61064e366004611891565b6113ba565b34801561065e575f80fd5b5061037c61066d366004611891565b63389a75e1600c9081525f91909152602090205490565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f2a6b3c380000000000000000000000000000000000000000000000000000000014806106d957506106d982611419565b92915050565b600181815481106106ee575f80fd5b905f5260205f20015f91509050805461070690611a5e565b80601f016020809104026020016040519081016040528092919081815260200182805461073290611a5e565b801561077d5780601f106107545761010080835404028352916020019161077d565b820191905f5260205f20905b81548152906001019060200180831161076057829003601f168201915b505050505081565b61078f338261146e565b50565b61079a611479565b6107a48282611493565b5050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b6107fe336113ba565b610834576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61083e8282610ca0565b156108aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f44656e796c69737420494420616c72656164792065786973747300000000000060448201526064015b60405180910390fd5b6001805480820182555f919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6016108e5828483611b27565b505050565b60026108f58161149f565b83821461092e576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b848110156109dc575f84848381811061094b5761094b611be1565b90506020020160208101906109609190611c0e565b90508015156001036109a25761099d87878481811061098157610981611be1565b90506020020160208101906109969190611891565b6001611493565b6109d3565b6109d38787848181106109b7576109b7611be1565b90506020020160208101906109cc9190611891565b600161146e565b50600101610930565b505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011328054600382558015610a355760018160011c14303b10610a2c5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8080610a4585870187611d5e565b925092509250610a54836114d0565b8151610a66905f90602085019061164f565b508051610a7a90600190602084019061164f565b5050505080156108e5576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a1505050565b610abf611479565b6107a4828261146e565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610b0a611479565b610b135f611518565b565b610b1e336113ba565b610b54576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b5e8282610d15565b15610bc5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f416c6c6f776c69737420494420616c726561647920657869737473000000000060448201526064016108a1565b5f80546001810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563016108e5828483611b27565b610c07336113ba565b610c3d576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c4860015f6116a3565b5f5b818110156108e5576001838383818110610c6657610c66611be1565b9050602002810190610c789190611dd4565b82546001810184555f938452602090932090920191610c979183611b27565b50600101610c4a565b5f805b600154811015610d0c578383604051610cbd929190611e35565b604051809103902060018281548110610cd857610cd8611be1565b905f5260205f2001604051610ced9190611e44565b604051809103902003610d045760019150506106d9565b600101610ca3565b505f9392505050565b5f805b5f54811015610d0c578383604051610d31929190611e35565b60405180910390205f8281548110610d4b57610d4b611be1565b905f5260205f2001604051610d609190611e44565b604051809103902003610d775760019150506106d9565b600101610d18565b6002610d8a8161149f565b838214610dc3576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b848110156109dc57610e15868683818110610de257610de2611be1565b9050602002016020810190610df79190611891565b858584818110610e0957610e09611be1565b90506020020135611493565b600101610dc5565b610e26336113ba565b610e5c576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e665f806116a3565b5f5b818110156108e5575f838383818110610e8357610e83611be1565b9050602002810190610e959190611dd4565b82546001810184555f938452602090932090920191610eb49183611b27565b50600101610e68565b6002610ec88161149f565b838214610f01576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b848110156109dc57610f53868683818110610f2057610f20611be1565b9050602002016020810190610f359190611891565b858584818110610f4757610f47611be1565b9050602002013561146e565b600101610f03565b5f81815481106106ee575f80fd5b610f72336113ba565b610fa8576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b5f54811015611085578282604051610fc3929190611e35565b60405180910390205f8281548110610fdd57610fdd611be1565b905f5260205f2001604051610ff29190611e44565b60405180910390200361107d575f805461100e90600190611ed3565b8154811061101e5761101e611be1565b905f5260205f20015f828154811061103857611038611be1565b905f5260205f2001908161104c9190611f0b565b505f80548061105d5761105d611fe3565b600190038181905f5260205f20015f61107691906116be565b9055505050565b600101610faa565b5081816040517f8cf9845e0000000000000000000000000000000000000000000000000000000081526004016108a1929190612010565b6110c5336113ba565b6110fb576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b600154811015611085578282604051611117929190611e35565b60405180910390206001828154811061113257611132611be1565b905f5260205f20016040516111479190611e44565b6040518091039020036111b45760018054611163908290611ed3565b8154811061117357611173611be1565b905f5260205f20016001828154811061118e5761118e611be1565b905f5260205f200190816111a29190611f0b565b50600180548061105d5761105d611fe3565b6001016110fd565b60606001805480602002602001604051908101604052809291908181526020015f905b82821015611287578382905f5260205f200180546111fc90611a5e565b80601f016020809104026020016040519081016040528092919081815260200182805461122890611a5e565b80156112735780601f1061124a57610100808354040283529160200191611273565b820191905f5260205f20905b81548152906001019060200180831161125657829003601f168201915b5050505050815260200190600101906111df565b50505050905090565b611298611479565b63389a75e1600c52805f526020600c2080544211156112be57636f5e88185f526004601cfd5b5f905561078f81611518565b6112d2611479565b8060601b6112e757637448fbae5f526004601cfd5b61078f81611518565b60605f805480602002602001604051908101604052809291908181526020015f905b82821015611287578382905f5260205f2001805461132f90611a5e565b80601f016020809104026020016040519081016040528092919081815260200182805461135b90611a5e565b80156113a65780601f1061137d576101008083540402835291602001916113a6565b820191905f5260205f20905b81548152906001019060200180831161138957829003601f168201915b505050505081526020019060010190611312565b5f8173ffffffffffffffffffffffffffffffffffffffff166113df638b78c6d8195490565b73ffffffffffffffffffffffffffffffffffffffff1614806106d95750638b78c6d8600c9081525f839052602090205460031615156106d9565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fe2089f790000000000000000000000000000000000000000000000000000000014806106d957506106d982611562565b6107a482825f6115f8565b638b78c6d819543314610b13576382b429005f526004601cfd5b6107a4828260016115f8565b638b78c6d81954331461078f57638b78c6d8600c52335f52806020600c20541661078f576382b429005f526004601cfd5b73ffffffffffffffffffffffffffffffffffffffff16638b78c6d819819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b638b78c6d819805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f6ab67a0d0000000000000000000000000000000000000000000000000000000014806106d957507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146106d9565b638b78c6d8600c52825f526020600c20805483811783611619575080841681185b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b828054828255905f5260205f20908101928215611693579160200282015b828111156116935782518290611683908261203e565b509160200191906001019061166d565b5061169f9291506116f5565b5090565b5080545f8255905f5260205f209081019061078f91906116f5565b5080546116ca90611a5e565b5f825580601f106116d9575050565b601f0160209004905f5260205f209081019061078f9190611711565b8082111561169f575f61170882826116be565b506001016116f5565b5b8082111561169f575f8155600101611712565b5f60208284031215611735575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611764575f80fd5b9392505050565b5f6020828403121561177b575f80fd5b5035919050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6117646020830184611782565b73ffffffffffffffffffffffffffffffffffffffff8116811461078f575f80fd5b5f80604083850312156117f4575f80fd5b82356117ff816117c2565b946020939093013593505050565b5f8083601f84011261181d575f80fd5b50813567ffffffffffffffff811115611834575f80fd5b60208301915083602082850101111561184b575f80fd5b9250929050565b5f8060208385031215611863575f80fd5b823567ffffffffffffffff811115611879575f80fd5b6118858582860161180d565b90969095509350505050565b5f602082840312156118a1575f80fd5b8135611764816117c2565b5f8083601f8401126118bc575f80fd5b50813567ffffffffffffffff8111156118d3575f80fd5b6020830191508360208260051b850101111561184b575f80fd5b5f805f8060408587031215611900575f80fd5b843567ffffffffffffffff811115611916575f80fd5b611922878288016118ac565b909550935050602085013567ffffffffffffffff811115611941575f80fd5b61194d878288016118ac565b95989497509550505050565b5f806020838503121561196a575f80fd5b823567ffffffffffffffff811115611980575f80fd5b611885858286016118ac565b5f805f6040848603121561199e575f80fd5b83356119a9816117c2565b9250602084013567ffffffffffffffff8111156119c4575f80fd5b6119d08682870161180d565b9497909650939450505050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015611a52577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452611a3d858351611782565b94506020938401939190910190600101611a03565b50929695505050505050565b600181811c90821680611a7257607f821691505b602082108103611aa9577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b601f8211156108e557805f5260205f20601f840160051c81016020851015611b015750805b601f840160051c820191505b81811015611b20575f8155600101611b0d565b5050505050565b67ffffffffffffffff831115611b3f57611b3f611aaf565b611b5383611b4d8354611a5e565b83611adc565b5f601f841160018114611b84575f8515611b6d5750838201355b5f19600387901b1c1916600186901b178355611b20565b5f83815260208120601f198716915b82811015611bb35786850135825560209485019460019092019101611b93565b5086821015611bcf575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215611c1e575f80fd5b81358015158114611764575f80fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611c5657611c56611aaf565b604052919050565b5f82601f830112611c6d575f80fd5b813567ffffffffffffffff811115611c8757611c87611aaf565b8060051b611c9760208201611c2d565b91825260208185018101929081019086841115611cb2575f80fd5b6020860192505b83831015611d5457823567ffffffffffffffff811115611cd7575f80fd5b8601603f81018813611ce7575f80fd5b602081013567ffffffffffffffff811115611d0457611d04611aaf565b611d176020601f19601f84011601611c2d565b8181526040838301018a1015611d2b575f80fd5b816040840160208301375f60208383010152808552505050602082019150602083019250611cb9565b9695505050505050565b5f805f60608486031215611d70575f80fd5b8335611d7b816117c2565b9250602084013567ffffffffffffffff811115611d96575f80fd5b611da286828701611c5e565b925050604084013567ffffffffffffffff811115611dbe575f80fd5b611dca86828701611c5e565b9150509250925092565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611e07575f80fd5b83018035915067ffffffffffffffff821115611e21575f80fd5b60200191503681900382131561184b575f80fd5b818382375f9101908152919050565b5f808354611e5181611a5e565b600182168015611e685760018114611e9b57611ec8565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0083168652811515820286019350611ec8565b865f5260205f205f5b83811015611ec057815488820152600190910190602001611ea4565b505081860193505b509195945050505050565b818103818111156106d9577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b818103611f16575050565b611f208254611a5e565b67ffffffffffffffff811115611f3857611f38611aaf565b611f4c81611f468454611a5e565b84611adc565b5f601f821160018114611f80575f8315611f665750848201545b600184901b5f19600386901b1c198216175b855550611b20565b5f8581526020808220868352908220601f198616925b83811015611fb65782860154825560019586019590910190602001611f96565b5085831015611fd357818501545f19600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208152816020820152818360408301375f818301604090810191909152601f909201601f19160101919050565b815167ffffffffffffffff81111561205857612058611aaf565b61206681611f468454611a5e565b6020601f821160018114612096575f8315611f66575081850151600184901b5f19600386901b1c19821617611f78565b5f84815260208120601f198516915b828110156120c557878501518255602094850194600190920191016120a5565b50848210156120e257868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fea2646970667358221220d48533f46ace671d98fdf56917341f0f952e8e90be14ad403bdcaa880953d80864736f6c634300081a0033", t = { BASE_URL: "/", DEV: !1, MODE: "production", PROD: !0, SSR: !1, VITE_BOOST_MAINNET_SIGNER_EOA: "0xCBD0C302040bC803B4B2EDaF21Be0e49Deff5480", VITE_BOOST_TESTNET_SIGNER_EOA: "0xd63167e9db11B108940b2E8236581F961f33f396" }, s = class s extends U {
12
12
  constructor() {
13
13
  super(...arguments), this.abi = n;
14
14
  }
@@ -247,14 +247,14 @@ const K = "0x6080604052348015600e575f80fd5b5060156019565b607c565b63409feecd19805
247
247
  * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
248
248
  */
249
249
  async removeAllowlistIdRaw(f, b) {
250
- const { request: e, result: a } = await E(this._config, {
250
+ const { request: e, result: a } = await S(this._config, {
251
251
  address: this.assertValidAddress(),
252
252
  args: [f],
253
253
  ...this.optionallyAttachAccount(),
254
254
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
255
255
  ...b
256
256
  });
257
- return { hash: await S(
257
+ return { hash: await E(
258
258
  this._config,
259
259
  e
260
260
  ), result: a };
@@ -288,7 +288,7 @@ const K = "0x6080604052348015600e575f80fd5b5060156019565b607c565b63409feecd19805
288
288
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
289
289
  ...b
290
290
  });
291
- return { hash: await L(
291
+ return { hash: await V(
292
292
  this._config,
293
293
  e
294
294
  ), result: a };
@@ -303,7 +303,7 @@ const K = "0x6080604052348015600e575f80fd5b5060156019565b607c565b63409feecd19805
303
303
  * @returns {Promise<boolean>} - True if the ID exists
304
304
  */
305
305
  async hasAllowlistId(f, b) {
306
- return await V(this._config, {
306
+ return await L(this._config, {
307
307
  address: this.assertValidAddress(),
308
308
  args: [f],
309
309
  ...this.optionallyAttachAccount(),
@@ -321,7 +321,7 @@ const K = "0x6080604052348015600e575f80fd5b5060156019565b607c565b63409feecd19805
321
321
  * @returns {Promise<boolean>} - True if the ID exists
322
322
  */
323
323
  async hasDenylistId(f, b) {
324
- return await T(this._config, {
324
+ return await q(this._config, {
325
325
  address: this.assertValidAddress(),
326
326
  args: [f],
327
327
  ...this.optionallyAttachAccount(),
@@ -352,23 +352,23 @@ const K = "0x6080604052348015600e575f80fd5b5060156019565b607c565b63409feecd19805
352
352
  }
353
353
  return {
354
354
  abi: n,
355
- bytecode: K,
356
- args: [$(e)],
355
+ bytecode: j,
356
+ args: [z(e)],
357
357
  ...this.optionallyAttachAccount(a.account)
358
358
  };
359
359
  }
360
360
  };
361
361
  s.bases = {
362
362
  ...t != null && t.VITE_OFFCHAIN_ACCESS_LIST_BASE ? { 31337: void 0 } : {},
363
- ...U
364
- }, s.registryType = j.ALLOW_LIST;
363
+ ...M
364
+ }, s.registryType = G.ALLOW_LIST;
365
365
  let i = s;
366
- function $({
366
+ function z({
367
367
  owner: c,
368
368
  allowlistIds: f,
369
369
  denylistIds: b
370
370
  }) {
371
- return M(
371
+ return k(
372
372
  [
373
373
  { type: "address", name: "owner" },
374
374
  { type: "string[]", name: "allowlistIds" },
@@ -391,26 +391,26 @@ class s0 extends h {
391
391
  const [e, a] = this.validateDeploymentConfig({}, b);
392
392
  return {
393
393
  abi: H,
394
- bytecode: z,
395
- args: [G({ owner: l, denied: [] })],
394
+ bytecode: J,
395
+ args: [Q({ owner: l, denied: [] })],
396
396
  ...this.optionallyAttachAccount(a.account)
397
397
  };
398
398
  }
399
399
  }
400
400
  const r = {
401
- [q]: J,
401
+ [B]: $,
402
402
  [v]: h,
403
403
  [P]: i
404
404
  };
405
405
  async function t0(c, f, b) {
406
406
  const e = await x(c.config, {
407
- abi: B,
407
+ abi: T,
408
408
  functionName: "getComponentInterface",
409
409
  address: f,
410
410
  ...b
411
411
  }), a = r[e];
412
412
  if (!a)
413
- throw new k(
413
+ throw new W(
414
414
  Object.keys(r),
415
415
  e
416
416
  );
@@ -421,6 +421,6 @@ export {
421
421
  i as O,
422
422
  s0 as a,
423
423
  t0 as b,
424
- $ as p
424
+ z as p
425
425
  };
426
- //# sourceMappingURL=AllowList-DiU7g4Hs.js.map
426
+ //# sourceMappingURL=AllowList-CWqAYlwr.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AllowList-DiU7g4Hs.js","sources":["../src/AllowLists/OffchainAccessList.ts","../src/AllowLists/OpenAllowList.ts","../src/AllowLists/AllowList.ts"],"sourcesContent":["import {\n offchainAccessListAbi,\n readOffchainAccessListGetAllowListIds,\n readOffchainAccessListGetDenyListIds,\n readOffchainAccessListHasAllowListId,\n readOffchainAccessListHasDenyListId,\n readOffchainAccessListOwner,\n simulateOffchainAccessListAddAllowListId,\n simulateOffchainAccessListAddDenyListId,\n simulateOffchainAccessListRemoveAllowListId,\n simulateOffchainAccessListRemoveDenyListId,\n simulateOffchainAccessListSetAllowListIds,\n simulateOffchainAccessListSetDenyListIds,\n writeOffchainAccessListAddAllowListId,\n writeOffchainAccessListAddDenyListId,\n writeOffchainAccessListRemoveAllowListId,\n writeOffchainAccessListRemoveDenyListId,\n writeOffchainAccessListSetAllowListIds,\n writeOffchainAccessListSetDenyListIds,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/allowlists/OffchainAccessList.sol/OffchainAccessList.json';\nimport { getAccount } from '@wagmi/core';\nimport {\n type Address,\n type ContractEventName,\n type Hex,\n encodeAbiParameters,\n zeroAddress,\n} from 'viem';\nimport { OffchainAccessList as OffchainAccessListBases } from '../../dist/deployments.json';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport { DeployableTargetWithRBAC } from '../Deployable/DeployableTargetWithRBAC';\nimport { DeployableUnknownOwnerProvidedError } from '../errors';\nimport {\n type GenericLog,\n type ReadParams,\n RegistryType,\n type WriteParams,\n} from '../utils';\n\nexport { offchainAccessListAbi };\n\n/**\n * Object representation of a {@link OffchainAccessList} initialization payload.\n *\n * @export\n * @interface OffchainAccessListPayload\n * @typedef {OffchainAccessListPayload}\n */\nexport interface OffchainAccessListPayload {\n /**\n * The access list's owner\n *\n * @type {Address}\n */\n owner: Address;\n /**\n * List of off-chain allowlist IDs.\n *\n * @type {string[]}\n */\n allowlistIds: string[];\n /**\n * List of off-chain denylist IDs.\n *\n * @type {string[]}\n */\n denylistIds: string[];\n}\n\n/**\n * A generic `viem.Log` event with support for `OffchainAccessList` event types.\n *\n * @export\n * @typedef {OffchainAccessListLog}\n * @template {ContractEventName<typeof offchainAccessListAbi>} [event=ContractEventName<\n * typeof offchainAccessListAbi\n * >]\n */\nexport type OffchainAccessListLog<\n event extends ContractEventName<\n typeof offchainAccessListAbi\n > = ContractEventName<typeof offchainAccessListAbi>,\n> = GenericLog<typeof offchainAccessListAbi, event>;\n\n/**\n * An AllowList that links on-chain boosts to off-chain access lists stored in a database.\n * This implementation always allows everyone (returns true) but stores references to off-chain allowlist and denylist IDs.\n *\n * @export\n * @class OffchainAccessList\n * @typedef {OffchainAccessList}\n * @extends {DeployableTargetWithRBAC<OffchainAccessListPayload>}\n */\nexport class OffchainAccessList extends DeployableTargetWithRBAC<\n OffchainAccessListPayload,\n typeof offchainAccessListAbi\n> {\n public override readonly abi = offchainAccessListAbi;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {Record<number, Address>}\n */\n public static override bases: Record<number, Address> = {\n ...(import.meta.env?.VITE_OFFCHAIN_ACCESS_LIST_BASE\n ? { 31337: import.meta.env.VITE_OFFCHAIN_ACCESS_LIST_BASE }\n : {}),\n ...(OffchainAccessListBases as Record<number, Address>),\n };\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {RegistryType}\n */\n public static override registryType: RegistryType = RegistryType.ALLOW_LIST;\n\n /**\n * Retrieves the owner\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<Address>} - The address of the owner\n */\n public async owner(params?: ReadParams): Promise<Address> {\n return await readOffchainAccessListOwner(this._config, {\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n address: this.assertValidAddress(),\n args: [],\n });\n }\n\n /**\n * Check if a user is authorized based on off-chain allowlists/denylists\n *\n * @public\n * @async\n * @param {Address} address - The address of the user\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} - True if the user is allowed\n */\n public isAllowed(_address: Address, _params?: ReadParams) {\n // TODO: check address against offchain allowlist/denylist using api calls\n throw new Error(\n 'isAllowed() not available for OffchainAccessList, implementation should be done offchain',\n );\n }\n\n /**\n * Get all allowlist IDs\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<string[]>} - Array of allowlist IDs\n */\n public async getAllowlistIds(params?: ReadParams) {\n return await readOffchainAccessListGetAllowListIds(this._config, {\n address: this.assertValidAddress(),\n args: [],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Get all denylist IDs\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<string[]>} - Array of denylist IDs\n */\n public async getDenylistIds(params?: ReadParams) {\n return await readOffchainAccessListGetDenyListIds(this._config, {\n address: this.assertValidAddress(),\n args: [],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Set allowlist IDs, replacing all existing ones. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string[]} ids - The new allowlist IDs\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setAllowlistIds(ids: string[], params?: WriteParams) {\n return await this.awaitResult(this.setAllowlistIdsRaw(ids, params));\n }\n\n /**\n * Set allowlist IDs, replacing all existing ones. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string[]} ids - The new allowlist IDs\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async setAllowlistIdsRaw(ids: string[], params?: WriteParams) {\n const { request, result } = await simulateOffchainAccessListSetAllowListIds(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [ids],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeOffchainAccessListSetAllowListIds(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Set denylist IDs, replacing all existing ones. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string[]} ids - The new denylist IDs\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setDenylistIds(ids: string[], params?: WriteParams) {\n return await this.awaitResult(this.setDenylistIdsRaw(ids, params));\n }\n\n /**\n * Set denylist IDs, replacing all existing ones. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string[]} ids - The new denylist IDs\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async setDenylistIdsRaw(ids: string[], params?: WriteParams) {\n const { request, result } = await simulateOffchainAccessListSetDenyListIds(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [ids],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeOffchainAccessListSetDenyListIds(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Add a single allowlist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The allowlist ID to add\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async addAllowlistId(id: string, params?: WriteParams) {\n return await this.awaitResult(this.addAllowlistIdRaw(id, params));\n }\n\n /**\n * Add a single allowlist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The allowlist ID to add\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async addAllowlistIdRaw(id: string, params?: WriteParams) {\n const { request, result } = await simulateOffchainAccessListAddAllowListId(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [id],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeOffchainAccessListAddAllowListId(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Add a single denylist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The denylist ID to add\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async addDenylistId(id: string, params?: WriteParams) {\n return await this.awaitResult(this.addDenylistIdRaw(id, params));\n }\n\n /**\n * Add a single denylist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The denylist ID to add\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async addDenylistIdRaw(id: string, params?: WriteParams) {\n const { request, result } = await simulateOffchainAccessListAddDenyListId(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [id],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeOffchainAccessListAddDenyListId(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Remove a single allowlist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The allowlist ID to remove\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async removeAllowlistId(id: string, params?: WriteParams) {\n return await this.awaitResult(this.removeAllowlistIdRaw(id, params));\n }\n\n /**\n * Remove a single allowlist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The allowlist ID to remove\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async removeAllowlistIdRaw(id: string, params?: WriteParams) {\n const { request, result } =\n await simulateOffchainAccessListRemoveAllowListId(this._config, {\n address: this.assertValidAddress(),\n args: [id],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n const hash = await writeOffchainAccessListRemoveAllowListId(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Remove a single denylist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The denylist ID to remove\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async removeDenylistId(id: string, params?: WriteParams) {\n return await this.awaitResult(this.removeDenylistIdRaw(id, params));\n }\n\n /**\n * Remove a single denylist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The denylist ID to remove\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async removeDenylistIdRaw(id: string, params?: WriteParams) {\n const { request, result } =\n await simulateOffchainAccessListRemoveDenyListId(this._config, {\n address: this.assertValidAddress(),\n args: [id],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n const hash = await writeOffchainAccessListRemoveDenyListId(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Check if an allowlist ID exists\n *\n * @public\n * @async\n * @param {string} id - The allowlist ID to check\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} - True if the ID exists\n */\n public async hasAllowlistId(\n id: string,\n params?: ReadParams,\n ): Promise<boolean> {\n return await readOffchainAccessListHasAllowListId(this._config, {\n address: this.assertValidAddress(),\n args: [id],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Check if a denylist ID exists\n *\n * @public\n * @async\n * @param {string} id - The denylist ID to check\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} - True if the ID exists\n */\n public async hasDenylistId(\n id: string,\n params?: ReadParams,\n ): Promise<boolean> {\n return await readOffchainAccessListHasDenyListId(this._config, {\n address: this.assertValidAddress(),\n args: [id],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * @inheritdoc\n *\n * @public\n * @param {?OffchainAccessListPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: OffchainAccessListPayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [payload, options] = this.validateDeploymentConfig(\n _payload,\n _options,\n );\n if (!payload.owner || payload.owner === zeroAddress) {\n const owner = options.account\n ? options.account.address\n : options.config\n ? getAccount(options.config).address\n : this._account?.address;\n if (owner) {\n payload.owner = owner;\n } else {\n throw new DeployableUnknownOwnerProvidedError();\n }\n }\n return {\n abi: offchainAccessListAbi,\n bytecode: bytecode as Hex,\n args: [prepareOffchainAccessListPayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n\n/**\n * Given a {@link OffchainAccessListPayload}, properly encode the initialization payload.\n *\n * @param {OffchainAccessListPayload} param0\n * @param {Address} param0.owner - The access list's owner\n * @param {string[]} param0.allowlistIds - List of off-chain allowlist IDs\n * @param {string[]} param0.denylistIds - List of off-chain denylist IDs\n * @returns {Hex}\n */\nexport function prepareOffchainAccessListPayload({\n owner,\n allowlistIds,\n denylistIds,\n}: OffchainAccessListPayload) {\n return encodeAbiParameters(\n [\n { type: 'address', name: 'owner' },\n { type: 'string[]', name: 'allowlistIds' },\n { type: 'string[]', name: 'denylistIds' },\n ],\n [owner, allowlistIds, denylistIds],\n );\n}\n","import { simpleDenyListAbi } from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/allowlists/SimpleDenyList.sol/SimpleDenyList.json';\nimport { type Hex, zeroAddress } from 'viem';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport {\n SimpleDenyList,\n type SimpleDenyListPayload,\n prepareSimpleDenyListPayload,\n} from './SimpleDenyList';\n\nexport const openAllowListAbi = simpleDenyListAbi;\n\n/**\n * A simple AllowList, extending {@link DenyList}, that is ownerless and allows anyone to claim.\n *\n * @export\n * @class OpenAllowList\n * @typedef {OpenAllowList}\n * @extends {DeployableTarget<OpenAllowListPayload>}\n */\nexport class OpenAllowList extends SimpleDenyList<undefined> {\n /**\n * @inheritdoc\n *\n * @public\n * @param {?SimpleDenyListPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: SimpleDenyListPayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [_, options] = this.validateDeploymentConfig({}, _options);\n return {\n abi: openAllowListAbi,\n bytecode: bytecode as Hex,\n args: [prepareSimpleDenyListPayload({ owner: zeroAddress, denied: [] })],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n","import { aAllowListAbi } from '@boostxyz/evm';\nimport {\n AOffchainAccessList,\n ASimpleAllowList,\n ASimpleDenyList,\n} from '@boostxyz/evm/deploys/componentInterfaces.json';\nimport { readContract } from '@wagmi/core';\nimport type { Address, Hex } from 'viem';\nimport type { DeployableOptions } from '../Deployable/Deployable';\nimport { InvalidComponentInterfaceError } from '../errors';\nimport type { ReadParams } from '../utils';\nimport { OffchainAccessList } from './OffchainAccessList';\nimport { OpenAllowList } from './OpenAllowList';\nimport { SimpleAllowList } from './SimpleAllowList';\nimport { SimpleDenyList } from './SimpleDenyList';\n\nexport { OffchainAccessList, OpenAllowList, SimpleAllowList, SimpleDenyList };\n\n/**\n * A union type representing all valid protocol AllowList implementations\n *\n * @export\n * @typedef {AllowList}\n */\nexport type AllowList =\n | OffchainAccessList\n | OpenAllowList\n | SimpleAllowList\n | SimpleDenyList;\n\n/**\n * A map of AllowList component interfaces to their constructors.\n *\n * @type {{ \"0x1392d798\": SimpleAllowList; \"0x3d30a22c\": SimpleDenyList; \"0x2a6b3c38\": OffchainAccessList; }}\n */\nexport const AllowListByComponentInterface = {\n [ASimpleAllowList as Hex]: SimpleAllowList,\n [ASimpleDenyList as Hex]: SimpleDenyList,\n [AOffchainAccessList as Hex]: OffchainAccessList,\n};\n\n/**\n * A function that will read a contract's component interface using `getComponentInterface` and return the correct instantiated instance.\n * This function will never return an instance of {@link OpenAllowList} because it has the same component interface as {@link SimpleDenyList}\n *\n * @export\n * @async\n * @param {DeployableOptions} options\n * @param {Address} address\n * @returns {Promise<SimpleAllowList | SimpleDenyList>}\n * @throws {@link InvalidComponentInterfaceError}\n */\nexport async function allowListFromAddress(\n options: DeployableOptions,\n address: Address,\n params?: ReadParams,\n) {\n const interfaceId = (await readContract(options.config, {\n abi: aAllowListAbi,\n functionName: 'getComponentInterface',\n address,\n ...params,\n })) as keyof typeof AllowListByComponentInterface;\n const Ctor = AllowListByComponentInterface[interfaceId];\n if (!Ctor) {\n throw new InvalidComponentInterfaceError(\n Object.keys(AllowListByComponentInterface) as Hex[],\n interfaceId as Hex,\n );\n }\n return new Ctor(options, address) as\n | SimpleDenyList\n | SimpleAllowList\n | OffchainAccessList;\n}\n"],"names":["_OffchainAccessList","DeployableTargetWithRBAC","offchainAccessListAbi","params","readOffchainAccessListOwner","_address","_params","readOffchainAccessListGetAllowListIds","readOffchainAccessListGetDenyListIds","ids","request","result","simulateOffchainAccessListSetAllowListIds","writeOffchainAccessListSetAllowListIds","simulateOffchainAccessListSetDenyListIds","writeOffchainAccessListSetDenyListIds","id","simulateOffchainAccessListAddAllowListId","writeOffchainAccessListAddAllowListId","simulateOffchainAccessListAddDenyListId","writeOffchainAccessListAddDenyListId","simulateOffchainAccessListRemoveAllowListId","writeOffchainAccessListRemoveAllowListId","simulateOffchainAccessListRemoveDenyListId","writeOffchainAccessListRemoveDenyListId","readOffchainAccessListHasAllowListId","readOffchainAccessListHasDenyListId","_payload","_options","payload","options","zeroAddress","owner","getAccount","_a","DeployableUnknownOwnerProvidedError","bytecode","prepareOffchainAccessListPayload","__vite_import_meta_env__","OffchainAccessListBases","RegistryType","OffchainAccessList","allowlistIds","denylistIds","encodeAbiParameters","openAllowListAbi","simpleDenyListAbi","OpenAllowList","SimpleDenyList","_","prepareSimpleDenyListPayload","AllowListByComponentInterface","ASimpleAllowList","SimpleAllowList","ASimpleDenyList","AOffchainAccessList","allowListFromAddress","address","interfaceId","readContract","aAllowListAbi","Ctor","InvalidComponentInterfaceError"],"mappings":"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"}
1
+ {"version":3,"file":"AllowList-CWqAYlwr.js","sources":["../src/AllowLists/OffchainAccessList.ts","../src/AllowLists/OpenAllowList.ts","../src/AllowLists/AllowList.ts"],"sourcesContent":["import {\n offchainAccessListAbi,\n readOffchainAccessListGetAllowListIds,\n readOffchainAccessListGetDenyListIds,\n readOffchainAccessListHasAllowListId,\n readOffchainAccessListHasDenyListId,\n readOffchainAccessListOwner,\n simulateOffchainAccessListAddAllowListId,\n simulateOffchainAccessListAddDenyListId,\n simulateOffchainAccessListRemoveAllowListId,\n simulateOffchainAccessListRemoveDenyListId,\n simulateOffchainAccessListSetAllowListIds,\n simulateOffchainAccessListSetDenyListIds,\n writeOffchainAccessListAddAllowListId,\n writeOffchainAccessListAddDenyListId,\n writeOffchainAccessListRemoveAllowListId,\n writeOffchainAccessListRemoveDenyListId,\n writeOffchainAccessListSetAllowListIds,\n writeOffchainAccessListSetDenyListIds,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/allowlists/OffchainAccessList.sol/OffchainAccessList.json';\nimport { getAccount } from '@wagmi/core';\nimport {\n type Address,\n type ContractEventName,\n type Hex,\n encodeAbiParameters,\n zeroAddress,\n} from 'viem';\nimport { OffchainAccessList as OffchainAccessListBases } from '../../dist/deployments.json';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport { DeployableTargetWithRBAC } from '../Deployable/DeployableTargetWithRBAC';\nimport { DeployableUnknownOwnerProvidedError } from '../errors';\nimport {\n type GenericLog,\n type ReadParams,\n RegistryType,\n type WriteParams,\n} from '../utils';\n\nexport { offchainAccessListAbi };\n\n/**\n * Object representation of a {@link OffchainAccessList} initialization payload.\n *\n * @export\n * @interface OffchainAccessListPayload\n * @typedef {OffchainAccessListPayload}\n */\nexport interface OffchainAccessListPayload {\n /**\n * The access list's owner\n *\n * @type {Address}\n */\n owner: Address;\n /**\n * List of off-chain allowlist IDs.\n *\n * @type {string[]}\n */\n allowlistIds: string[];\n /**\n * List of off-chain denylist IDs.\n *\n * @type {string[]}\n */\n denylistIds: string[];\n}\n\n/**\n * A generic `viem.Log` event with support for `OffchainAccessList` event types.\n *\n * @export\n * @typedef {OffchainAccessListLog}\n * @template {ContractEventName<typeof offchainAccessListAbi>} [event=ContractEventName<\n * typeof offchainAccessListAbi\n * >]\n */\nexport type OffchainAccessListLog<\n event extends ContractEventName<\n typeof offchainAccessListAbi\n > = ContractEventName<typeof offchainAccessListAbi>,\n> = GenericLog<typeof offchainAccessListAbi, event>;\n\n/**\n * An AllowList that links on-chain boosts to off-chain access lists stored in a database.\n * This implementation always allows everyone (returns true) but stores references to off-chain allowlist and denylist IDs.\n *\n * @export\n * @class OffchainAccessList\n * @typedef {OffchainAccessList}\n * @extends {DeployableTargetWithRBAC<OffchainAccessListPayload>}\n */\nexport class OffchainAccessList extends DeployableTargetWithRBAC<\n OffchainAccessListPayload,\n typeof offchainAccessListAbi\n> {\n public override readonly abi = offchainAccessListAbi;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {Record<number, Address>}\n */\n public static override bases: Record<number, Address> = {\n ...(import.meta.env?.VITE_OFFCHAIN_ACCESS_LIST_BASE\n ? { 31337: import.meta.env.VITE_OFFCHAIN_ACCESS_LIST_BASE }\n : {}),\n ...(OffchainAccessListBases as Record<number, Address>),\n };\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {RegistryType}\n */\n public static override registryType: RegistryType = RegistryType.ALLOW_LIST;\n\n /**\n * Retrieves the owner\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<Address>} - The address of the owner\n */\n public async owner(params?: ReadParams): Promise<Address> {\n return await readOffchainAccessListOwner(this._config, {\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n address: this.assertValidAddress(),\n args: [],\n });\n }\n\n /**\n * Check if a user is authorized based on off-chain allowlists/denylists\n *\n * @public\n * @async\n * @param {Address} address - The address of the user\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} - True if the user is allowed\n */\n public isAllowed(_address: Address, _params?: ReadParams) {\n // TODO: check address against offchain allowlist/denylist using api calls\n throw new Error(\n 'isAllowed() not available for OffchainAccessList, implementation should be done offchain',\n );\n }\n\n /**\n * Get all allowlist IDs\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<string[]>} - Array of allowlist IDs\n */\n public async getAllowlistIds(params?: ReadParams) {\n return await readOffchainAccessListGetAllowListIds(this._config, {\n address: this.assertValidAddress(),\n args: [],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Get all denylist IDs\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<string[]>} - Array of denylist IDs\n */\n public async getDenylistIds(params?: ReadParams) {\n return await readOffchainAccessListGetDenyListIds(this._config, {\n address: this.assertValidAddress(),\n args: [],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Set allowlist IDs, replacing all existing ones. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string[]} ids - The new allowlist IDs\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setAllowlistIds(ids: string[], params?: WriteParams) {\n return await this.awaitResult(this.setAllowlistIdsRaw(ids, params));\n }\n\n /**\n * Set allowlist IDs, replacing all existing ones. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string[]} ids - The new allowlist IDs\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async setAllowlistIdsRaw(ids: string[], params?: WriteParams) {\n const { request, result } = await simulateOffchainAccessListSetAllowListIds(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [ids],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeOffchainAccessListSetAllowListIds(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Set denylist IDs, replacing all existing ones. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string[]} ids - The new denylist IDs\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setDenylistIds(ids: string[], params?: WriteParams) {\n return await this.awaitResult(this.setDenylistIdsRaw(ids, params));\n }\n\n /**\n * Set denylist IDs, replacing all existing ones. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string[]} ids - The new denylist IDs\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async setDenylistIdsRaw(ids: string[], params?: WriteParams) {\n const { request, result } = await simulateOffchainAccessListSetDenyListIds(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [ids],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeOffchainAccessListSetDenyListIds(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Add a single allowlist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The allowlist ID to add\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async addAllowlistId(id: string, params?: WriteParams) {\n return await this.awaitResult(this.addAllowlistIdRaw(id, params));\n }\n\n /**\n * Add a single allowlist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The allowlist ID to add\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async addAllowlistIdRaw(id: string, params?: WriteParams) {\n const { request, result } = await simulateOffchainAccessListAddAllowListId(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [id],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeOffchainAccessListAddAllowListId(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Add a single denylist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The denylist ID to add\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async addDenylistId(id: string, params?: WriteParams) {\n return await this.awaitResult(this.addDenylistIdRaw(id, params));\n }\n\n /**\n * Add a single denylist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The denylist ID to add\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async addDenylistIdRaw(id: string, params?: WriteParams) {\n const { request, result } = await simulateOffchainAccessListAddDenyListId(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [id],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeOffchainAccessListAddDenyListId(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Remove a single allowlist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The allowlist ID to remove\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async removeAllowlistId(id: string, params?: WriteParams) {\n return await this.awaitResult(this.removeAllowlistIdRaw(id, params));\n }\n\n /**\n * Remove a single allowlist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The allowlist ID to remove\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async removeAllowlistIdRaw(id: string, params?: WriteParams) {\n const { request, result } =\n await simulateOffchainAccessListRemoveAllowListId(this._config, {\n address: this.assertValidAddress(),\n args: [id],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n const hash = await writeOffchainAccessListRemoveAllowListId(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Remove a single denylist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The denylist ID to remove\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async removeDenylistId(id: string, params?: WriteParams) {\n return await this.awaitResult(this.removeDenylistIdRaw(id, params));\n }\n\n /**\n * Remove a single denylist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The denylist ID to remove\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async removeDenylistIdRaw(id: string, params?: WriteParams) {\n const { request, result } =\n await simulateOffchainAccessListRemoveDenyListId(this._config, {\n address: this.assertValidAddress(),\n args: [id],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n const hash = await writeOffchainAccessListRemoveDenyListId(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Check if an allowlist ID exists\n *\n * @public\n * @async\n * @param {string} id - The allowlist ID to check\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} - True if the ID exists\n */\n public async hasAllowlistId(\n id: string,\n params?: ReadParams,\n ): Promise<boolean> {\n return await readOffchainAccessListHasAllowListId(this._config, {\n address: this.assertValidAddress(),\n args: [id],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Check if a denylist ID exists\n *\n * @public\n * @async\n * @param {string} id - The denylist ID to check\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} - True if the ID exists\n */\n public async hasDenylistId(\n id: string,\n params?: ReadParams,\n ): Promise<boolean> {\n return await readOffchainAccessListHasDenyListId(this._config, {\n address: this.assertValidAddress(),\n args: [id],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * @inheritdoc\n *\n * @public\n * @param {?OffchainAccessListPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: OffchainAccessListPayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [payload, options] = this.validateDeploymentConfig(\n _payload,\n _options,\n );\n if (!payload.owner || payload.owner === zeroAddress) {\n const owner = options.account\n ? options.account.address\n : options.config\n ? getAccount(options.config).address\n : this._account?.address;\n if (owner) {\n payload.owner = owner;\n } else {\n throw new DeployableUnknownOwnerProvidedError();\n }\n }\n return {\n abi: offchainAccessListAbi,\n bytecode: bytecode as Hex,\n args: [prepareOffchainAccessListPayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n\n/**\n * Given a {@link OffchainAccessListPayload}, properly encode the initialization payload.\n *\n * @param {OffchainAccessListPayload} param0\n * @param {Address} param0.owner - The access list's owner\n * @param {string[]} param0.allowlistIds - List of off-chain allowlist IDs\n * @param {string[]} param0.denylistIds - List of off-chain denylist IDs\n * @returns {Hex}\n */\nexport function prepareOffchainAccessListPayload({\n owner,\n allowlistIds,\n denylistIds,\n}: OffchainAccessListPayload) {\n return encodeAbiParameters(\n [\n { type: 'address', name: 'owner' },\n { type: 'string[]', name: 'allowlistIds' },\n { type: 'string[]', name: 'denylistIds' },\n ],\n [owner, allowlistIds, denylistIds],\n );\n}\n","import { simpleDenyListAbi } from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/allowlists/SimpleDenyList.sol/SimpleDenyList.json';\nimport { type Hex, zeroAddress } from 'viem';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport {\n SimpleDenyList,\n type SimpleDenyListPayload,\n prepareSimpleDenyListPayload,\n} from './SimpleDenyList';\n\nexport const openAllowListAbi = simpleDenyListAbi;\n\n/**\n * A simple AllowList, extending {@link DenyList}, that is ownerless and allows anyone to claim.\n *\n * @export\n * @class OpenAllowList\n * @typedef {OpenAllowList}\n * @extends {DeployableTarget<OpenAllowListPayload>}\n */\nexport class OpenAllowList extends SimpleDenyList<undefined> {\n /**\n * @inheritdoc\n *\n * @public\n * @param {?SimpleDenyListPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: SimpleDenyListPayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [_, options] = this.validateDeploymentConfig({}, _options);\n return {\n abi: openAllowListAbi,\n bytecode: bytecode as Hex,\n args: [prepareSimpleDenyListPayload({ owner: zeroAddress, denied: [] })],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n","import { aAllowListAbi } from '@boostxyz/evm';\nimport {\n AOffchainAccessList,\n ASimpleAllowList,\n ASimpleDenyList,\n} from '@boostxyz/evm/deploys/componentInterfaces.json';\nimport { readContract } from '@wagmi/core';\nimport type { Address, Hex } from 'viem';\nimport type { DeployableOptions } from '../Deployable/Deployable';\nimport { InvalidComponentInterfaceError } from '../errors';\nimport type { ReadParams } from '../utils';\nimport { OffchainAccessList } from './OffchainAccessList';\nimport { OpenAllowList } from './OpenAllowList';\nimport { SimpleAllowList } from './SimpleAllowList';\nimport { SimpleDenyList } from './SimpleDenyList';\n\nexport { OffchainAccessList, OpenAllowList, SimpleAllowList, SimpleDenyList };\n\n/**\n * A union type representing all valid protocol AllowList implementations\n *\n * @export\n * @typedef {AllowList}\n */\nexport type AllowList =\n | OffchainAccessList\n | OpenAllowList\n | SimpleAllowList\n | SimpleDenyList;\n\n/**\n * A map of AllowList component interfaces to their constructors.\n *\n * @type {{ \"0x1392d798\": SimpleAllowList; \"0x3d30a22c\": SimpleDenyList; \"0x2a6b3c38\": OffchainAccessList; }}\n */\nexport const AllowListByComponentInterface = {\n [ASimpleAllowList as Hex]: SimpleAllowList,\n [ASimpleDenyList as Hex]: SimpleDenyList,\n [AOffchainAccessList as Hex]: OffchainAccessList,\n};\n\n/**\n * A function that will read a contract's component interface using `getComponentInterface` and return the correct instantiated instance.\n * This function will never return an instance of {@link OpenAllowList} because it has the same component interface as {@link SimpleDenyList}\n *\n * @export\n * @async\n * @param {DeployableOptions} options\n * @param {Address} address\n * @returns {Promise<SimpleAllowList | SimpleDenyList>}\n * @throws {@link InvalidComponentInterfaceError}\n */\nexport async function allowListFromAddress(\n options: DeployableOptions,\n address: Address,\n params?: ReadParams,\n) {\n const interfaceId = (await readContract(options.config, {\n abi: aAllowListAbi,\n functionName: 'getComponentInterface',\n address,\n ...params,\n })) as keyof typeof AllowListByComponentInterface;\n const Ctor = AllowListByComponentInterface[interfaceId];\n if (!Ctor) {\n throw new InvalidComponentInterfaceError(\n Object.keys(AllowListByComponentInterface) as Hex[],\n interfaceId as Hex,\n );\n }\n return new Ctor(options, address) as\n | SimpleDenyList\n | SimpleAllowList\n | OffchainAccessList;\n}\n"],"names":["_OffchainAccessList","DeployableTargetWithRBAC","offchainAccessListAbi","params","readOffchainAccessListOwner","_address","_params","readOffchainAccessListGetAllowListIds","readOffchainAccessListGetDenyListIds","ids","request","result","simulateOffchainAccessListSetAllowListIds","writeOffchainAccessListSetAllowListIds","simulateOffchainAccessListSetDenyListIds","writeOffchainAccessListSetDenyListIds","id","simulateOffchainAccessListAddAllowListId","writeOffchainAccessListAddAllowListId","simulateOffchainAccessListAddDenyListId","writeOffchainAccessListAddDenyListId","simulateOffchainAccessListRemoveAllowListId","writeOffchainAccessListRemoveAllowListId","simulateOffchainAccessListRemoveDenyListId","writeOffchainAccessListRemoveDenyListId","readOffchainAccessListHasAllowListId","readOffchainAccessListHasDenyListId","_payload","_options","payload","options","zeroAddress","owner","getAccount","_a","DeployableUnknownOwnerProvidedError","bytecode","prepareOffchainAccessListPayload","__vite_import_meta_env__","OffchainAccessListBases","RegistryType","OffchainAccessList","allowlistIds","denylistIds","encodeAbiParameters","openAllowListAbi","simpleDenyListAbi","OpenAllowList","SimpleDenyList","_","prepareSimpleDenyListPayload","AllowListByComponentInterface","ASimpleAllowList","SimpleAllowList","ASimpleDenyList","AOffchainAccessList","allowListFromAddress","address","interfaceId","readContract","aAllowListAbi","Ctor","InvalidComponentInterfaceError"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";const a=require("./generated-dd4FN0Fo.cjs"),r=require("./componentInterfaces-BZ3fSNkT.cjs"),u=require("@wagmi/core"),A=require("./errors.cjs"),h=require("viem"),p=require("./deployments-BjBgk03b.cjs"),g=require("./Deployable/DeployableTargetWithRBAC.cjs"),I=require("./utils.cjs"),s=require("./SimpleDenyList-7-VTqfsH.cjs"),m=require("./AllowLists/SimpleAllowList.cjs"),D="0x6080604052348015600e575f80fd5b5060156019565b607c565b63409feecd198054600181161560365763f92ee8a95f526004601cfd5b6001600160401b03808260011c146077578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b612127806100895f395ff3fe608060405260043610610229575f3560e01c8063859aa08911610131578063e89079fa116100ac578063f04e283e1161007c578063fdee627a11610062578063fdee627a14610620578063fe9fbb8014610634578063fee81cf414610653575f80fd5b8063f04e283e146105fa578063f2fde38b1461060d575f80fd5b8063e89079fa14610587578063ec87621c146105a6578063ef05bda9146105ba578063ef4550bf146105d9575f80fd5b8063be4994f811610101578063dcc21361116100e7578063dcc2136114610526578063e3f756de14610545578063e611205f14610568575f80fd5b8063be4994f8146104e8578063cbb7de5114610507575f80fd5b8063859aa089146104535780638da5cb5b14610472578063937d599c146104aa57806399927eec146104c9575f80fd5b80632de94807116101c1578063514e62fc11610191578063715018a611610177578063715018a61461041857806375b238fc146104205780637e973e8214610434575f80fd5b8063514e62fc146103db57806354d1f13d14610410575f80fd5b80632de948071461034b5780634359d28a1461038a578063439fab91146103a95780634a4ee7b1146103c8575f80fd5b80631cd64df4116101fc5780631cd64df4146102b557806325692962146102ea57806328d6183b146102f25780632c297c181461032c575f80fd5b806301ffc9a71461022d578063096f199f14610261578063183a4f6e1461028d5780631c10893f146102a2575b5f80fd5b348015610238575f80fd5b5061024c610247366004611725565b610684565b60405190151581526020015b60405180910390f35b34801561026c575f80fd5b5061028061027b36600461176b565b6106df565b60405161025891906117b0565b6102a061029b36600461176b565b610785565b005b6102a06102b03660046117e3565b610792565b3480156102c0575f80fd5b5061024c6102cf3660046117e3565b638b78c6d8600c9081525f9290925260209091205481161490565b6102a06107a8565b3480156102fd575f80fd5b506040517f2a6b3c38000000000000000000000000000000000000000000000000000000008152602001610258565b348015610337575f80fd5b506102a0610346366004611852565b6107f5565b348015610356575f80fd5b5061037c610365366004611891565b638b78c6d8600c9081525f91909152602090205490565b604051908152602001610258565b348015610395575f80fd5b506102a06103a43660046118ed565b6108ea565b3480156103b4575f80fd5b506102a06103c3366004611852565b6109e4565b6102a06103d63660046117e3565b610ab7565b3480156103e6575f80fd5b5061024c6103f53660046117e3565b638b78c6d8600c9081525f9290925260209091205416151590565b6102a0610ac9565b6102a0610b02565b34801561042b575f80fd5b5061037c600281565b34801561043f575f80fd5b506102a061044e366004611852565b610b15565b34801561045e575f80fd5b506102a061046d366004611959565b610bfe565b34801561047d575f80fd5b50638b78c6d8195460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610258565b3480156104b5575f80fd5b5061024c6104c4366004611852565b610ca0565b3480156104d4575f80fd5b5061024c6104e3366004611852565b610d15565b3480156104f3575f80fd5b506102a06105023660046118ed565b610d7f565b348015610512575f80fd5b506102a0610521366004611959565b610e1d565b348015610531575f80fd5b506102a06105403660046118ed565b610ebd565b348015610550575f80fd5b5061024c61055f36600461198c565b60019392505050565b348015610573575f80fd5b5061028061058236600461176b565b610f5b565b348015610592575f80fd5b506102a06105a1366004611852565b610f69565b3480156105b1575f80fd5b5061037c600181565b3480156105c5575f80fd5b506102a06105d4366004611852565b6110bc565b3480156105e4575f80fd5b506105ed6111bc565b60405161025891906119dd565b6102a0610608366004611891565b611290565b6102a061061b366004611891565b6112ca565b34801561062b575f80fd5b506105ed6112f0565b34801561063f575f80fd5b5061024c61064e366004611891565b6113ba565b34801561065e575f80fd5b5061037c61066d366004611891565b63389a75e1600c9081525f91909152602090205490565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f2a6b3c380000000000000000000000000000000000000000000000000000000014806106d957506106d982611419565b92915050565b600181815481106106ee575f80fd5b905f5260205f20015f91509050805461070690611a5e565b80601f016020809104026020016040519081016040528092919081815260200182805461073290611a5e565b801561077d5780601f106107545761010080835404028352916020019161077d565b820191905f5260205f20905b81548152906001019060200180831161076057829003601f168201915b505050505081565b61078f338261146e565b50565b61079a611479565b6107a48282611493565b5050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b6107fe336113ba565b610834576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61083e8282610ca0565b156108aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f44656e796c69737420494420616c72656164792065786973747300000000000060448201526064015b60405180910390fd5b6001805480820182555f919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6016108e5828483611b27565b505050565b60026108f58161149f565b83821461092e576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b848110156109dc575f84848381811061094b5761094b611be1565b90506020020160208101906109609190611c0e565b90508015156001036109a25761099d87878481811061098157610981611be1565b90506020020160208101906109969190611891565b6001611493565b6109d3565b6109d38787848181106109b7576109b7611be1565b90506020020160208101906109cc9190611891565b600161146e565b50600101610930565b505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011328054600382558015610a355760018160011c14303b10610a2c5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8080610a4585870187611d5e565b925092509250610a54836114d0565b8151610a66905f90602085019061164f565b508051610a7a90600190602084019061164f565b5050505080156108e5576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a1505050565b610abf611479565b6107a4828261146e565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610b0a611479565b610b135f611518565b565b610b1e336113ba565b610b54576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b5e8282610d15565b15610bc5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f416c6c6f776c69737420494420616c726561647920657869737473000000000060448201526064016108a1565b5f80546001810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563016108e5828483611b27565b610c07336113ba565b610c3d576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c4860015f6116a3565b5f5b818110156108e5576001838383818110610c6657610c66611be1565b9050602002810190610c789190611dd4565b82546001810184555f938452602090932090920191610c979183611b27565b50600101610c4a565b5f805b600154811015610d0c578383604051610cbd929190611e35565b604051809103902060018281548110610cd857610cd8611be1565b905f5260205f2001604051610ced9190611e44565b604051809103902003610d045760019150506106d9565b600101610ca3565b505f9392505050565b5f805b5f54811015610d0c578383604051610d31929190611e35565b60405180910390205f8281548110610d4b57610d4b611be1565b905f5260205f2001604051610d609190611e44565b604051809103902003610d775760019150506106d9565b600101610d18565b6002610d8a8161149f565b838214610dc3576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b848110156109dc57610e15868683818110610de257610de2611be1565b9050602002016020810190610df79190611891565b858584818110610e0957610e09611be1565b90506020020135611493565b600101610dc5565b610e26336113ba565b610e5c576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e665f806116a3565b5f5b818110156108e5575f838383818110610e8357610e83611be1565b9050602002810190610e959190611dd4565b82546001810184555f938452602090932090920191610eb49183611b27565b50600101610e68565b6002610ec88161149f565b838214610f01576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b848110156109dc57610f53868683818110610f2057610f20611be1565b9050602002016020810190610f359190611891565b858584818110610f4757610f47611be1565b9050602002013561146e565b600101610f03565b5f81815481106106ee575f80fd5b610f72336113ba565b610fa8576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b5f54811015611085578282604051610fc3929190611e35565b60405180910390205f8281548110610fdd57610fdd611be1565b905f5260205f2001604051610ff29190611e44565b60405180910390200361107d575f805461100e90600190611ed3565b8154811061101e5761101e611be1565b905f5260205f20015f828154811061103857611038611be1565b905f5260205f2001908161104c9190611f0b565b505f80548061105d5761105d611fe3565b600190038181905f5260205f20015f61107691906116be565b9055505050565b600101610faa565b5081816040517f8cf9845e0000000000000000000000000000000000000000000000000000000081526004016108a1929190612010565b6110c5336113ba565b6110fb576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b600154811015611085578282604051611117929190611e35565b60405180910390206001828154811061113257611132611be1565b905f5260205f20016040516111479190611e44565b6040518091039020036111b45760018054611163908290611ed3565b8154811061117357611173611be1565b905f5260205f20016001828154811061118e5761118e611be1565b905f5260205f200190816111a29190611f0b565b50600180548061105d5761105d611fe3565b6001016110fd565b60606001805480602002602001604051908101604052809291908181526020015f905b82821015611287578382905f5260205f200180546111fc90611a5e565b80601f016020809104026020016040519081016040528092919081815260200182805461122890611a5e565b80156112735780601f1061124a57610100808354040283529160200191611273565b820191905f5260205f20905b81548152906001019060200180831161125657829003601f168201915b5050505050815260200190600101906111df565b50505050905090565b611298611479565b63389a75e1600c52805f526020600c2080544211156112be57636f5e88185f526004601cfd5b5f905561078f81611518565b6112d2611479565b8060601b6112e757637448fbae5f526004601cfd5b61078f81611518565b60605f805480602002602001604051908101604052809291908181526020015f905b82821015611287578382905f5260205f2001805461132f90611a5e565b80601f016020809104026020016040519081016040528092919081815260200182805461135b90611a5e565b80156113a65780601f1061137d576101008083540402835291602001916113a6565b820191905f5260205f20905b81548152906001019060200180831161138957829003601f168201915b505050505081526020019060010190611312565b5f8173ffffffffffffffffffffffffffffffffffffffff166113df638b78c6d8195490565b73ffffffffffffffffffffffffffffffffffffffff1614806106d95750638b78c6d8600c9081525f839052602090205460031615156106d9565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fe2089f790000000000000000000000000000000000000000000000000000000014806106d957506106d982611562565b6107a482825f6115f8565b638b78c6d819543314610b13576382b429005f526004601cfd5b6107a4828260016115f8565b638b78c6d81954331461078f57638b78c6d8600c52335f52806020600c20541661078f576382b429005f526004601cfd5b73ffffffffffffffffffffffffffffffffffffffff16638b78c6d819819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b638b78c6d819805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f6ab67a0d0000000000000000000000000000000000000000000000000000000014806106d957507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146106d9565b638b78c6d8600c52825f526020600c20805483811783611619575080841681185b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b828054828255905f5260205f20908101928215611693579160200282015b828111156116935782518290611683908261203e565b509160200191906001019061166d565b5061169f9291506116f5565b5090565b5080545f8255905f5260205f209081019061078f91906116f5565b5080546116ca90611a5e565b5f825580601f106116d9575050565b601f0160209004905f5260205f209081019061078f9190611711565b8082111561169f575f61170882826116be565b506001016116f5565b5b8082111561169f575f8155600101611712565b5f60208284031215611735575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611764575f80fd5b9392505050565b5f6020828403121561177b575f80fd5b5035919050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6117646020830184611782565b73ffffffffffffffffffffffffffffffffffffffff8116811461078f575f80fd5b5f80604083850312156117f4575f80fd5b82356117ff816117c2565b946020939093013593505050565b5f8083601f84011261181d575f80fd5b50813567ffffffffffffffff811115611834575f80fd5b60208301915083602082850101111561184b575f80fd5b9250929050565b5f8060208385031215611863575f80fd5b823567ffffffffffffffff811115611879575f80fd5b6118858582860161180d565b90969095509350505050565b5f602082840312156118a1575f80fd5b8135611764816117c2565b5f8083601f8401126118bc575f80fd5b50813567ffffffffffffffff8111156118d3575f80fd5b6020830191508360208260051b850101111561184b575f80fd5b5f805f8060408587031215611900575f80fd5b843567ffffffffffffffff811115611916575f80fd5b611922878288016118ac565b909550935050602085013567ffffffffffffffff811115611941575f80fd5b61194d878288016118ac565b95989497509550505050565b5f806020838503121561196a575f80fd5b823567ffffffffffffffff811115611980575f80fd5b611885858286016118ac565b5f805f6040848603121561199e575f80fd5b83356119a9816117c2565b9250602084013567ffffffffffffffff8111156119c4575f80fd5b6119d08682870161180d565b9497909650939450505050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015611a52577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452611a3d858351611782565b94506020938401939190910190600101611a03565b50929695505050505050565b600181811c90821680611a7257607f821691505b602082108103611aa9577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b601f8211156108e557805f5260205f20601f840160051c81016020851015611b015750805b601f840160051c820191505b81811015611b20575f8155600101611b0d565b5050505050565b67ffffffffffffffff831115611b3f57611b3f611aaf565b611b5383611b4d8354611a5e565b83611adc565b5f601f841160018114611b84575f8515611b6d5750838201355b5f19600387901b1c1916600186901b178355611b20565b5f83815260208120601f198716915b82811015611bb35786850135825560209485019460019092019101611b93565b5086821015611bcf575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215611c1e575f80fd5b81358015158114611764575f80fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611c5657611c56611aaf565b604052919050565b5f82601f830112611c6d575f80fd5b813567ffffffffffffffff811115611c8757611c87611aaf565b8060051b611c9760208201611c2d565b91825260208185018101929081019086841115611cb2575f80fd5b6020860192505b83831015611d5457823567ffffffffffffffff811115611cd7575f80fd5b8601603f81018813611ce7575f80fd5b602081013567ffffffffffffffff811115611d0457611d04611aaf565b611d176020601f19601f84011601611c2d565b8181526040838301018a1015611d2b575f80fd5b816040840160208301375f60208383010152808552505050602082019150602083019250611cb9565b9695505050505050565b5f805f60608486031215611d70575f80fd5b8335611d7b816117c2565b9250602084013567ffffffffffffffff811115611d96575f80fd5b611da286828701611c5e565b925050604084013567ffffffffffffffff811115611dbe575f80fd5b611dca86828701611c5e565b9150509250925092565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611e07575f80fd5b83018035915067ffffffffffffffff821115611e21575f80fd5b60200191503681900382131561184b575f80fd5b818382375f9101908152919050565b5f808354611e5181611a5e565b600182168015611e685760018114611e9b57611ec8565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0083168652811515820286019350611ec8565b865f5260205f205f5b83811015611ec057815488820152600190910190602001611ea4565b505081860193505b509195945050505050565b818103818111156106d9577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b818103611f16575050565b611f208254611a5e565b67ffffffffffffffff811115611f3857611f38611aaf565b611f4c81611f468454611a5e565b84611adc565b5f601f821160018114611f80575f8315611f665750848201545b600184901b5f19600386901b1c198216175b855550611b20565b5f8581526020808220868352908220601f198616925b83811015611fb65782860154825560019586019590910190602001611f96565b5085831015611fd357818501545f19600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208152816020820152818360408301375f818301604090810191909152601f909201601f19160101919050565b815167ffffffffffffffff81111561205857612058611aaf565b61206681611f468454611a5e565b6020601f821160018114612096575f8315611f66575081850151600184901b5f19600386901b1c19821617611f78565b5f84815260208120601f198516915b828110156120c557878501518255602094850194600190920191016120a5565b50848210156120e257868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fea26469706673582212206100a11e4e0b5bdd589ed060e5af18faef222dc9a5fb78d50ce02911e161f36664736f6c634300081a0033",o={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1,VITE_BOOST_MAINNET_SIGNER_EOA:"0xCBD0C302040bC803B4B2EDaF21Be0e49Deff5480",VITE_BOOST_TESTNET_SIGNER_EOA:"0xd63167e9db11B108940b2E8236581F961f33f396"},n=class n extends g.DeployableTargetWithRBAC{constructor(){super(...arguments),this.abi=a.M}async owner(f){return await a.R4(this._config,{...this.optionallyAttachAccount(),...f,address:this.assertValidAddress(),args:[]})}isAllowed(f,b){throw new Error("isAllowed() not available for OffchainAccessList, implementation should be done offchain")}async getAllowlistIds(f){return await a.v4(this._config,{address:this.assertValidAddress(),args:[],...this.optionallyAttachAccount(),...f})}async getDenylistIds(f){return await a.w4(this._config,{address:this.assertValidAddress(),args:[],...this.optionallyAttachAccount(),...f})}async setAllowlistIds(f,b){return await this.awaitResult(this.setAllowlistIdsRaw(f,b))}async setAllowlistIdsRaw(f,b){const{request:d,result:e}=await a.lq(this._config,{address:this.assertValidAddress(),args:[f],...this.optionallyAttachAccount(),...b});return{hash:await a.U4(this._config,d),result:e}}async setDenylistIds(f,b){return await this.awaitResult(this.setDenylistIdsRaw(f,b))}async setDenylistIdsRaw(f,b){const{request:d,result:e}=await a.dq(this._config,{address:this.assertValidAddress(),args:[f],...this.optionallyAttachAccount(),...b});return{hash:await a.j4(this._config,d),result:e}}async addAllowlistId(f,b){return await this.awaitResult(this.addAllowlistIdRaw(f,b))}async addAllowlistIdRaw(f,b){const{request:d,result:e}=await a.J4(this._config,{address:this.assertValidAddress(),args:[f],...this.optionallyAttachAccount(),...b});return{hash:await a.z4(this._config,d),result:e}}async addDenylistId(f,b){return await this.awaitResult(this.addDenylistIdRaw(f,b))}async addDenylistIdRaw(f,b){const{request:d,result:e}=await a.K4(this._config,{address:this.assertValidAddress(),args:[f],...this.optionallyAttachAccount(),...b});return{hash:await a.B4(this._config,d),result:e}}async removeAllowlistId(f,b){return await this.awaitResult(this.removeAllowlistIdRaw(f,b))}async removeAllowlistIdRaw(f,b){const{request:d,result:e}=await a.aq(this._config,{address:this.assertValidAddress(),args:[f],...this.optionallyAttachAccount(),...b});return{hash:await a.P4(this._config,d),result:e}}async removeDenylistId(f,b){return await this.awaitResult(this.removeDenylistIdRaw(f,b))}async removeDenylistIdRaw(f,b){const{request:d,result:e}=await a.iq(this._config,{address:this.assertValidAddress(),args:[f],...this.optionallyAttachAccount(),...b});return{hash:await a.k4(this._config,d),result:e}}async hasAllowlistId(f,b){return await a.A4(this._config,{address:this.assertValidAddress(),args:[f],...this.optionallyAttachAccount(),...b})}async hasDenylistId(f,b){return await a.I4(this._config,{address:this.assertValidAddress(),args:[f],...this.optionallyAttachAccount(),...b})}buildParameters(f,b){var c;const[d,e]=this.validateDeploymentConfig(f,b);if(!d.owner||d.owner===h.zeroAddress){const w=e.account?e.account.address:e.config?u.getAccount(e.config).address:(c=this._account)==null?void 0:c.address;if(w)d.owner=w;else throw new A.DeployableUnknownOwnerProvidedError}return{abi:a.M,bytecode:D,args:[y(d)],...this.optionallyAttachAccount(e.account)}}};n.bases={...o!=null&&o.VITE_OFFCHAIN_ACCESS_LIST_BASE?{31337:void 0}:{},...p.OffchainAccessList},n.registryType=I.RegistryType.ALLOW_LIST;let i=n;function y({owner:t,allowlistIds:f,denylistIds:b}){return h.encodeAbiParameters([{type:"address",name:"owner"},{type:"string[]",name:"allowlistIds"},{type:"string[]",name:"denylistIds"}],[t,f,b])}const R=a.P;class _ extends s.SimpleDenyList{buildParameters(f,b){const[d,e]=this.validateDeploymentConfig({},b);return{abi:R,bytecode:s.bytecode,args:[s.prepareSimpleDenyListPayload({owner:h.zeroAddress,denied:[]})],...this.optionallyAttachAccount(e.account)}}}const l={[r.ASimpleAllowList]:m.SimpleAllowList,[r.ASimpleDenyList]:s.SimpleDenyList,[r.AOffchainAccessList]:i};async function L(t,f,b){const d=await u.readContract(t.config,{abi:a.k,functionName:"getComponentInterface",address:f,...b}),e=l[d];if(!e)throw new A.InvalidComponentInterfaceError(Object.keys(l),d);return new e(t,f)}exports.AllowListByComponentInterface=l;exports.OffchainAccessList=i;exports.OpenAllowList=_;exports.allowListFromAddress=L;exports.prepareOffchainAccessListPayload=y;
2
- //# sourceMappingURL=AllowList-BJ9HQGFs.cjs.map
1
+ "use strict";const a=require("./generated-BzLYuFx3.cjs"),r=require("./componentInterfaces-BZ3fSNkT.cjs"),w=require("@wagmi/core"),A=require("./errors.cjs"),h=require("viem"),p=require("./deployments-Dgzcz4Ev.cjs"),g=require("./Deployable/DeployableTargetWithRBAC.cjs"),I=require("./utils.cjs"),s=require("./SimpleDenyList-DEoMIYhE.cjs"),m=require("./AllowLists/SimpleAllowList.cjs"),R="0x6080604052348015600e575f80fd5b5060156019565b607c565b63409feecd198054600181161560365763f92ee8a95f526004601cfd5b6001600160401b03808260011c146077578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b612127806100895f395ff3fe608060405260043610610229575f3560e01c8063859aa08911610131578063e89079fa116100ac578063f04e283e1161007c578063fdee627a11610062578063fdee627a14610620578063fe9fbb8014610634578063fee81cf414610653575f80fd5b8063f04e283e146105fa578063f2fde38b1461060d575f80fd5b8063e89079fa14610587578063ec87621c146105a6578063ef05bda9146105ba578063ef4550bf146105d9575f80fd5b8063be4994f811610101578063dcc21361116100e7578063dcc2136114610526578063e3f756de14610545578063e611205f14610568575f80fd5b8063be4994f8146104e8578063cbb7de5114610507575f80fd5b8063859aa089146104535780638da5cb5b14610472578063937d599c146104aa57806399927eec146104c9575f80fd5b80632de94807116101c1578063514e62fc11610191578063715018a611610177578063715018a61461041857806375b238fc146104205780637e973e8214610434575f80fd5b8063514e62fc146103db57806354d1f13d14610410575f80fd5b80632de948071461034b5780634359d28a1461038a578063439fab91146103a95780634a4ee7b1146103c8575f80fd5b80631cd64df4116101fc5780631cd64df4146102b557806325692962146102ea57806328d6183b146102f25780632c297c181461032c575f80fd5b806301ffc9a71461022d578063096f199f14610261578063183a4f6e1461028d5780631c10893f146102a2575b5f80fd5b348015610238575f80fd5b5061024c610247366004611725565b610684565b60405190151581526020015b60405180910390f35b34801561026c575f80fd5b5061028061027b36600461176b565b6106df565b60405161025891906117b0565b6102a061029b36600461176b565b610785565b005b6102a06102b03660046117e3565b610792565b3480156102c0575f80fd5b5061024c6102cf3660046117e3565b638b78c6d8600c9081525f9290925260209091205481161490565b6102a06107a8565b3480156102fd575f80fd5b506040517f2a6b3c38000000000000000000000000000000000000000000000000000000008152602001610258565b348015610337575f80fd5b506102a0610346366004611852565b6107f5565b348015610356575f80fd5b5061037c610365366004611891565b638b78c6d8600c9081525f91909152602090205490565b604051908152602001610258565b348015610395575f80fd5b506102a06103a43660046118ed565b6108ea565b3480156103b4575f80fd5b506102a06103c3366004611852565b6109e4565b6102a06103d63660046117e3565b610ab7565b3480156103e6575f80fd5b5061024c6103f53660046117e3565b638b78c6d8600c9081525f9290925260209091205416151590565b6102a0610ac9565b6102a0610b02565b34801561042b575f80fd5b5061037c600281565b34801561043f575f80fd5b506102a061044e366004611852565b610b15565b34801561045e575f80fd5b506102a061046d366004611959565b610bfe565b34801561047d575f80fd5b50638b78c6d8195460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610258565b3480156104b5575f80fd5b5061024c6104c4366004611852565b610ca0565b3480156104d4575f80fd5b5061024c6104e3366004611852565b610d15565b3480156104f3575f80fd5b506102a06105023660046118ed565b610d7f565b348015610512575f80fd5b506102a0610521366004611959565b610e1d565b348015610531575f80fd5b506102a06105403660046118ed565b610ebd565b348015610550575f80fd5b5061024c61055f36600461198c565b60019392505050565b348015610573575f80fd5b5061028061058236600461176b565b610f5b565b348015610592575f80fd5b506102a06105a1366004611852565b610f69565b3480156105b1575f80fd5b5061037c600181565b3480156105c5575f80fd5b506102a06105d4366004611852565b6110bc565b3480156105e4575f80fd5b506105ed6111bc565b60405161025891906119dd565b6102a0610608366004611891565b611290565b6102a061061b366004611891565b6112ca565b34801561062b575f80fd5b506105ed6112f0565b34801561063f575f80fd5b5061024c61064e366004611891565b6113ba565b34801561065e575f80fd5b5061037c61066d366004611891565b63389a75e1600c9081525f91909152602090205490565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f2a6b3c380000000000000000000000000000000000000000000000000000000014806106d957506106d982611419565b92915050565b600181815481106106ee575f80fd5b905f5260205f20015f91509050805461070690611a5e565b80601f016020809104026020016040519081016040528092919081815260200182805461073290611a5e565b801561077d5780601f106107545761010080835404028352916020019161077d565b820191905f5260205f20905b81548152906001019060200180831161076057829003601f168201915b505050505081565b61078f338261146e565b50565b61079a611479565b6107a48282611493565b5050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b6107fe336113ba565b610834576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61083e8282610ca0565b156108aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f44656e796c69737420494420616c72656164792065786973747300000000000060448201526064015b60405180910390fd5b6001805480820182555f919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6016108e5828483611b27565b505050565b60026108f58161149f565b83821461092e576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b848110156109dc575f84848381811061094b5761094b611be1565b90506020020160208101906109609190611c0e565b90508015156001036109a25761099d87878481811061098157610981611be1565b90506020020160208101906109969190611891565b6001611493565b6109d3565b6109d38787848181106109b7576109b7611be1565b90506020020160208101906109cc9190611891565b600161146e565b50600101610930565b505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011328054600382558015610a355760018160011c14303b10610a2c5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8080610a4585870187611d5e565b925092509250610a54836114d0565b8151610a66905f90602085019061164f565b508051610a7a90600190602084019061164f565b5050505080156108e5576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a1505050565b610abf611479565b6107a4828261146e565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610b0a611479565b610b135f611518565b565b610b1e336113ba565b610b54576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b5e8282610d15565b15610bc5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f416c6c6f776c69737420494420616c726561647920657869737473000000000060448201526064016108a1565b5f80546001810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563016108e5828483611b27565b610c07336113ba565b610c3d576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c4860015f6116a3565b5f5b818110156108e5576001838383818110610c6657610c66611be1565b9050602002810190610c789190611dd4565b82546001810184555f938452602090932090920191610c979183611b27565b50600101610c4a565b5f805b600154811015610d0c578383604051610cbd929190611e35565b604051809103902060018281548110610cd857610cd8611be1565b905f5260205f2001604051610ced9190611e44565b604051809103902003610d045760019150506106d9565b600101610ca3565b505f9392505050565b5f805b5f54811015610d0c578383604051610d31929190611e35565b60405180910390205f8281548110610d4b57610d4b611be1565b905f5260205f2001604051610d609190611e44565b604051809103902003610d775760019150506106d9565b600101610d18565b6002610d8a8161149f565b838214610dc3576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b848110156109dc57610e15868683818110610de257610de2611be1565b9050602002016020810190610df79190611891565b858584818110610e0957610e09611be1565b90506020020135611493565b600101610dc5565b610e26336113ba565b610e5c576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e665f806116a3565b5f5b818110156108e5575f838383818110610e8357610e83611be1565b9050602002810190610e959190611dd4565b82546001810184555f938452602090932090920191610eb49183611b27565b50600101610e68565b6002610ec88161149f565b838214610f01576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b848110156109dc57610f53868683818110610f2057610f20611be1565b9050602002016020810190610f359190611891565b858584818110610f4757610f47611be1565b9050602002013561146e565b600101610f03565b5f81815481106106ee575f80fd5b610f72336113ba565b610fa8576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b5f54811015611085578282604051610fc3929190611e35565b60405180910390205f8281548110610fdd57610fdd611be1565b905f5260205f2001604051610ff29190611e44565b60405180910390200361107d575f805461100e90600190611ed3565b8154811061101e5761101e611be1565b905f5260205f20015f828154811061103857611038611be1565b905f5260205f2001908161104c9190611f0b565b505f80548061105d5761105d611fe3565b600190038181905f5260205f20015f61107691906116be565b9055505050565b600101610faa565b5081816040517f8cf9845e0000000000000000000000000000000000000000000000000000000081526004016108a1929190612010565b6110c5336113ba565b6110fb576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b600154811015611085578282604051611117929190611e35565b60405180910390206001828154811061113257611132611be1565b905f5260205f20016040516111479190611e44565b6040518091039020036111b45760018054611163908290611ed3565b8154811061117357611173611be1565b905f5260205f20016001828154811061118e5761118e611be1565b905f5260205f200190816111a29190611f0b565b50600180548061105d5761105d611fe3565b6001016110fd565b60606001805480602002602001604051908101604052809291908181526020015f905b82821015611287578382905f5260205f200180546111fc90611a5e565b80601f016020809104026020016040519081016040528092919081815260200182805461122890611a5e565b80156112735780601f1061124a57610100808354040283529160200191611273565b820191905f5260205f20905b81548152906001019060200180831161125657829003601f168201915b5050505050815260200190600101906111df565b50505050905090565b611298611479565b63389a75e1600c52805f526020600c2080544211156112be57636f5e88185f526004601cfd5b5f905561078f81611518565b6112d2611479565b8060601b6112e757637448fbae5f526004601cfd5b61078f81611518565b60605f805480602002602001604051908101604052809291908181526020015f905b82821015611287578382905f5260205f2001805461132f90611a5e565b80601f016020809104026020016040519081016040528092919081815260200182805461135b90611a5e565b80156113a65780601f1061137d576101008083540402835291602001916113a6565b820191905f5260205f20905b81548152906001019060200180831161138957829003601f168201915b505050505081526020019060010190611312565b5f8173ffffffffffffffffffffffffffffffffffffffff166113df638b78c6d8195490565b73ffffffffffffffffffffffffffffffffffffffff1614806106d95750638b78c6d8600c9081525f839052602090205460031615156106d9565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fe2089f790000000000000000000000000000000000000000000000000000000014806106d957506106d982611562565b6107a482825f6115f8565b638b78c6d819543314610b13576382b429005f526004601cfd5b6107a4828260016115f8565b638b78c6d81954331461078f57638b78c6d8600c52335f52806020600c20541661078f576382b429005f526004601cfd5b73ffffffffffffffffffffffffffffffffffffffff16638b78c6d819819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b638b78c6d819805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f6ab67a0d0000000000000000000000000000000000000000000000000000000014806106d957507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146106d9565b638b78c6d8600c52825f526020600c20805483811783611619575080841681185b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b828054828255905f5260205f20908101928215611693579160200282015b828111156116935782518290611683908261203e565b509160200191906001019061166d565b5061169f9291506116f5565b5090565b5080545f8255905f5260205f209081019061078f91906116f5565b5080546116ca90611a5e565b5f825580601f106116d9575050565b601f0160209004905f5260205f209081019061078f9190611711565b8082111561169f575f61170882826116be565b506001016116f5565b5b8082111561169f575f8155600101611712565b5f60208284031215611735575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611764575f80fd5b9392505050565b5f6020828403121561177b575f80fd5b5035919050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6117646020830184611782565b73ffffffffffffffffffffffffffffffffffffffff8116811461078f575f80fd5b5f80604083850312156117f4575f80fd5b82356117ff816117c2565b946020939093013593505050565b5f8083601f84011261181d575f80fd5b50813567ffffffffffffffff811115611834575f80fd5b60208301915083602082850101111561184b575f80fd5b9250929050565b5f8060208385031215611863575f80fd5b823567ffffffffffffffff811115611879575f80fd5b6118858582860161180d565b90969095509350505050565b5f602082840312156118a1575f80fd5b8135611764816117c2565b5f8083601f8401126118bc575f80fd5b50813567ffffffffffffffff8111156118d3575f80fd5b6020830191508360208260051b850101111561184b575f80fd5b5f805f8060408587031215611900575f80fd5b843567ffffffffffffffff811115611916575f80fd5b611922878288016118ac565b909550935050602085013567ffffffffffffffff811115611941575f80fd5b61194d878288016118ac565b95989497509550505050565b5f806020838503121561196a575f80fd5b823567ffffffffffffffff811115611980575f80fd5b611885858286016118ac565b5f805f6040848603121561199e575f80fd5b83356119a9816117c2565b9250602084013567ffffffffffffffff8111156119c4575f80fd5b6119d08682870161180d565b9497909650939450505050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015611a52577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452611a3d858351611782565b94506020938401939190910190600101611a03565b50929695505050505050565b600181811c90821680611a7257607f821691505b602082108103611aa9577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b601f8211156108e557805f5260205f20601f840160051c81016020851015611b015750805b601f840160051c820191505b81811015611b20575f8155600101611b0d565b5050505050565b67ffffffffffffffff831115611b3f57611b3f611aaf565b611b5383611b4d8354611a5e565b83611adc565b5f601f841160018114611b84575f8515611b6d5750838201355b5f19600387901b1c1916600186901b178355611b20565b5f83815260208120601f198716915b82811015611bb35786850135825560209485019460019092019101611b93565b5086821015611bcf575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215611c1e575f80fd5b81358015158114611764575f80fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611c5657611c56611aaf565b604052919050565b5f82601f830112611c6d575f80fd5b813567ffffffffffffffff811115611c8757611c87611aaf565b8060051b611c9760208201611c2d565b91825260208185018101929081019086841115611cb2575f80fd5b6020860192505b83831015611d5457823567ffffffffffffffff811115611cd7575f80fd5b8601603f81018813611ce7575f80fd5b602081013567ffffffffffffffff811115611d0457611d04611aaf565b611d176020601f19601f84011601611c2d565b8181526040838301018a1015611d2b575f80fd5b816040840160208301375f60208383010152808552505050602082019150602083019250611cb9565b9695505050505050565b5f805f60608486031215611d70575f80fd5b8335611d7b816117c2565b9250602084013567ffffffffffffffff811115611d96575f80fd5b611da286828701611c5e565b925050604084013567ffffffffffffffff811115611dbe575f80fd5b611dca86828701611c5e565b9150509250925092565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611e07575f80fd5b83018035915067ffffffffffffffff821115611e21575f80fd5b60200191503681900382131561184b575f80fd5b818382375f9101908152919050565b5f808354611e5181611a5e565b600182168015611e685760018114611e9b57611ec8565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0083168652811515820286019350611ec8565b865f5260205f205f5b83811015611ec057815488820152600190910190602001611ea4565b505081860193505b509195945050505050565b818103818111156106d9577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b818103611f16575050565b611f208254611a5e565b67ffffffffffffffff811115611f3857611f38611aaf565b611f4c81611f468454611a5e565b84611adc565b5f601f821160018114611f80575f8315611f665750848201545b600184901b5f19600386901b1c198216175b855550611b20565b5f8581526020808220868352908220601f198616925b83811015611fb65782860154825560019586019590910190602001611f96565b5085831015611fd357818501545f19600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b60208152816020820152818360408301375f818301604090810191909152601f909201601f19160101919050565b815167ffffffffffffffff81111561205857612058611aaf565b61206681611f468454611a5e565b6020601f821160018114612096575f8315611f66575081850151600184901b5f19600386901b1c19821617611f78565b5f84815260208120601f198516915b828110156120c557878501518255602094850194600190920191016120a5565b50848210156120e257868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fea2646970667358221220d48533f46ace671d98fdf56917341f0f952e8e90be14ad403bdcaa880953d80864736f6c634300081a0033",o={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1,VITE_BOOST_MAINNET_SIGNER_EOA:"0xCBD0C302040bC803B4B2EDaF21Be0e49Deff5480",VITE_BOOST_TESTNET_SIGNER_EOA:"0xd63167e9db11B108940b2E8236581F961f33f396"},n=class n extends g.DeployableTargetWithRBAC{constructor(){super(...arguments),this.abi=a.R}async owner(f){return await a.S4(this._config,{...this.optionallyAttachAccount(),...f,address:this.assertValidAddress(),args:[]})}isAllowed(f,b){throw new Error("isAllowed() not available for OffchainAccessList, implementation should be done offchain")}async getAllowlistIds(f){return await a.C4(this._config,{address:this.assertValidAddress(),args:[],...this.optionallyAttachAccount(),...f})}async getDenylistIds(f){return await a.V4(this._config,{address:this.assertValidAddress(),args:[],...this.optionallyAttachAccount(),...f})}async setAllowlistIds(f,b){return await this.awaitResult(this.setAllowlistIdsRaw(f,b))}async setAllowlistIdsRaw(f,b){const{request:d,result:e}=await a.Aq(this._config,{address:this.assertValidAddress(),args:[f],...this.optionallyAttachAccount(),...b});return{hash:await a.nq(this._config,d),result:e}}async setDenylistIds(f,b){return await this.awaitResult(this.setDenylistIdsRaw(f,b))}async setDenylistIdsRaw(f,b){const{request:d,result:e}=await a.Iq(this._config,{address:this.assertValidAddress(),args:[f],...this.optionallyAttachAccount(),...b});return{hash:await a.iq(this._config,d),result:e}}async addAllowlistId(f,b){return await this.awaitResult(this.addAllowlistIdRaw(f,b))}async addAllowlistIdRaw(f,b){const{request:d,result:e}=await a.oq(this._config,{address:this.assertValidAddress(),args:[f],...this.optionallyAttachAccount(),...b});return{hash:await a.q4(this._config,d),result:e}}async addDenylistId(f,b){return await this.awaitResult(this.addDenylistIdRaw(f,b))}async addDenylistIdRaw(f,b){const{request:d,result:e}=await a.pq(this._config,{address:this.assertValidAddress(),args:[f],...this.optionallyAttachAccount(),...b});return{hash:await a.W4(this._config,d),result:e}}async removeAllowlistId(f,b){return await this.awaitResult(this.removeAllowlistIdRaw(f,b))}async removeAllowlistIdRaw(f,b){const{request:d,result:e}=await a.mq(this._config,{address:this.assertValidAddress(),args:[f],...this.optionallyAttachAccount(),...b});return{hash:await a.Q4(this._config,d),result:e}}async removeDenylistId(f,b){return await this.awaitResult(this.removeDenylistIdRaw(f,b))}async removeDenylistIdRaw(f,b){const{request:d,result:e}=await a.bq(this._config,{address:this.assertValidAddress(),args:[f],...this.optionallyAttachAccount(),...b});return{hash:await a.J4(this._config,d),result:e}}async hasAllowlistId(f,b){return await a.B4(this._config,{address:this.assertValidAddress(),args:[f],...this.optionallyAttachAccount(),...b})}async hasDenylistId(f,b){return await a.x4(this._config,{address:this.assertValidAddress(),args:[f],...this.optionallyAttachAccount(),...b})}buildParameters(f,b){var c;const[d,e]=this.validateDeploymentConfig(f,b);if(!d.owner||d.owner===h.zeroAddress){const u=e.account?e.account.address:e.config?w.getAccount(e.config).address:(c=this._account)==null?void 0:c.address;if(u)d.owner=u;else throw new A.DeployableUnknownOwnerProvidedError}return{abi:a.R,bytecode:R,args:[y(d)],...this.optionallyAttachAccount(e.account)}}};n.bases={...o!=null&&o.VITE_OFFCHAIN_ACCESS_LIST_BASE?{31337:void 0}:{},...p.OffchainAccessList},n.registryType=I.RegistryType.ALLOW_LIST;let i=n;function y({owner:t,allowlistIds:f,denylistIds:b}){return h.encodeAbiParameters([{type:"address",name:"owner"},{type:"string[]",name:"allowlistIds"},{type:"string[]",name:"denylistIds"}],[t,f,b])}const D=a.P;class _ extends s.SimpleDenyList{buildParameters(f,b){const[d,e]=this.validateDeploymentConfig({},b);return{abi:D,bytecode:s.bytecode,args:[s.prepareSimpleDenyListPayload({owner:h.zeroAddress,denied:[]})],...this.optionallyAttachAccount(e.account)}}}const l={[r.ASimpleAllowList]:m.SimpleAllowList,[r.ASimpleDenyList]:s.SimpleDenyList,[r.AOffchainAccessList]:i};async function q(t,f,b){const d=await w.readContract(t.config,{abi:a.k,functionName:"getComponentInterface",address:f,...b}),e=l[d];if(!e)throw new A.InvalidComponentInterfaceError(Object.keys(l),d);return new e(t,f)}exports.AllowListByComponentInterface=l;exports.OffchainAccessList=i;exports.OpenAllowList=_;exports.allowListFromAddress=q;exports.prepareOffchainAccessListPayload=y;
2
+ //# sourceMappingURL=AllowList-Lpqz7tn9.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"AllowList-BJ9HQGFs.cjs","sources":["../src/AllowLists/OffchainAccessList.ts","../src/AllowLists/OpenAllowList.ts","../src/AllowLists/AllowList.ts"],"sourcesContent":["import {\n offchainAccessListAbi,\n readOffchainAccessListGetAllowListIds,\n readOffchainAccessListGetDenyListIds,\n readOffchainAccessListHasAllowListId,\n readOffchainAccessListHasDenyListId,\n readOffchainAccessListOwner,\n simulateOffchainAccessListAddAllowListId,\n simulateOffchainAccessListAddDenyListId,\n simulateOffchainAccessListRemoveAllowListId,\n simulateOffchainAccessListRemoveDenyListId,\n simulateOffchainAccessListSetAllowListIds,\n simulateOffchainAccessListSetDenyListIds,\n writeOffchainAccessListAddAllowListId,\n writeOffchainAccessListAddDenyListId,\n writeOffchainAccessListRemoveAllowListId,\n writeOffchainAccessListRemoveDenyListId,\n writeOffchainAccessListSetAllowListIds,\n writeOffchainAccessListSetDenyListIds,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/allowlists/OffchainAccessList.sol/OffchainAccessList.json';\nimport { getAccount } from '@wagmi/core';\nimport {\n type Address,\n type ContractEventName,\n type Hex,\n encodeAbiParameters,\n zeroAddress,\n} from 'viem';\nimport { OffchainAccessList as OffchainAccessListBases } from '../../dist/deployments.json';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport { DeployableTargetWithRBAC } from '../Deployable/DeployableTargetWithRBAC';\nimport { DeployableUnknownOwnerProvidedError } from '../errors';\nimport {\n type GenericLog,\n type ReadParams,\n RegistryType,\n type WriteParams,\n} from '../utils';\n\nexport { offchainAccessListAbi };\n\n/**\n * Object representation of a {@link OffchainAccessList} initialization payload.\n *\n * @export\n * @interface OffchainAccessListPayload\n * @typedef {OffchainAccessListPayload}\n */\nexport interface OffchainAccessListPayload {\n /**\n * The access list's owner\n *\n * @type {Address}\n */\n owner: Address;\n /**\n * List of off-chain allowlist IDs.\n *\n * @type {string[]}\n */\n allowlistIds: string[];\n /**\n * List of off-chain denylist IDs.\n *\n * @type {string[]}\n */\n denylistIds: string[];\n}\n\n/**\n * A generic `viem.Log` event with support for `OffchainAccessList` event types.\n *\n * @export\n * @typedef {OffchainAccessListLog}\n * @template {ContractEventName<typeof offchainAccessListAbi>} [event=ContractEventName<\n * typeof offchainAccessListAbi\n * >]\n */\nexport type OffchainAccessListLog<\n event extends ContractEventName<\n typeof offchainAccessListAbi\n > = ContractEventName<typeof offchainAccessListAbi>,\n> = GenericLog<typeof offchainAccessListAbi, event>;\n\n/**\n * An AllowList that links on-chain boosts to off-chain access lists stored in a database.\n * This implementation always allows everyone (returns true) but stores references to off-chain allowlist and denylist IDs.\n *\n * @export\n * @class OffchainAccessList\n * @typedef {OffchainAccessList}\n * @extends {DeployableTargetWithRBAC<OffchainAccessListPayload>}\n */\nexport class OffchainAccessList extends DeployableTargetWithRBAC<\n OffchainAccessListPayload,\n typeof offchainAccessListAbi\n> {\n public override readonly abi = offchainAccessListAbi;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {Record<number, Address>}\n */\n public static override bases: Record<number, Address> = {\n ...(import.meta.env?.VITE_OFFCHAIN_ACCESS_LIST_BASE\n ? { 31337: import.meta.env.VITE_OFFCHAIN_ACCESS_LIST_BASE }\n : {}),\n ...(OffchainAccessListBases as Record<number, Address>),\n };\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {RegistryType}\n */\n public static override registryType: RegistryType = RegistryType.ALLOW_LIST;\n\n /**\n * Retrieves the owner\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<Address>} - The address of the owner\n */\n public async owner(params?: ReadParams): Promise<Address> {\n return await readOffchainAccessListOwner(this._config, {\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n address: this.assertValidAddress(),\n args: [],\n });\n }\n\n /**\n * Check if a user is authorized based on off-chain allowlists/denylists\n *\n * @public\n * @async\n * @param {Address} address - The address of the user\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} - True if the user is allowed\n */\n public isAllowed(_address: Address, _params?: ReadParams) {\n // TODO: check address against offchain allowlist/denylist using api calls\n throw new Error(\n 'isAllowed() not available for OffchainAccessList, implementation should be done offchain',\n );\n }\n\n /**\n * Get all allowlist IDs\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<string[]>} - Array of allowlist IDs\n */\n public async getAllowlistIds(params?: ReadParams) {\n return await readOffchainAccessListGetAllowListIds(this._config, {\n address: this.assertValidAddress(),\n args: [],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Get all denylist IDs\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<string[]>} - Array of denylist IDs\n */\n public async getDenylistIds(params?: ReadParams) {\n return await readOffchainAccessListGetDenyListIds(this._config, {\n address: this.assertValidAddress(),\n args: [],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Set allowlist IDs, replacing all existing ones. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string[]} ids - The new allowlist IDs\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setAllowlistIds(ids: string[], params?: WriteParams) {\n return await this.awaitResult(this.setAllowlistIdsRaw(ids, params));\n }\n\n /**\n * Set allowlist IDs, replacing all existing ones. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string[]} ids - The new allowlist IDs\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async setAllowlistIdsRaw(ids: string[], params?: WriteParams) {\n const { request, result } = await simulateOffchainAccessListSetAllowListIds(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [ids],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeOffchainAccessListSetAllowListIds(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Set denylist IDs, replacing all existing ones. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string[]} ids - The new denylist IDs\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setDenylistIds(ids: string[], params?: WriteParams) {\n return await this.awaitResult(this.setDenylistIdsRaw(ids, params));\n }\n\n /**\n * Set denylist IDs, replacing all existing ones. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string[]} ids - The new denylist IDs\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async setDenylistIdsRaw(ids: string[], params?: WriteParams) {\n const { request, result } = await simulateOffchainAccessListSetDenyListIds(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [ids],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeOffchainAccessListSetDenyListIds(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Add a single allowlist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The allowlist ID to add\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async addAllowlistId(id: string, params?: WriteParams) {\n return await this.awaitResult(this.addAllowlistIdRaw(id, params));\n }\n\n /**\n * Add a single allowlist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The allowlist ID to add\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async addAllowlistIdRaw(id: string, params?: WriteParams) {\n const { request, result } = await simulateOffchainAccessListAddAllowListId(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [id],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeOffchainAccessListAddAllowListId(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Add a single denylist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The denylist ID to add\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async addDenylistId(id: string, params?: WriteParams) {\n return await this.awaitResult(this.addDenylistIdRaw(id, params));\n }\n\n /**\n * Add a single denylist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The denylist ID to add\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async addDenylistIdRaw(id: string, params?: WriteParams) {\n const { request, result } = await simulateOffchainAccessListAddDenyListId(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [id],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeOffchainAccessListAddDenyListId(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Remove a single allowlist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The allowlist ID to remove\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async removeAllowlistId(id: string, params?: WriteParams) {\n return await this.awaitResult(this.removeAllowlistIdRaw(id, params));\n }\n\n /**\n * Remove a single allowlist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The allowlist ID to remove\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async removeAllowlistIdRaw(id: string, params?: WriteParams) {\n const { request, result } =\n await simulateOffchainAccessListRemoveAllowListId(this._config, {\n address: this.assertValidAddress(),\n args: [id],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n const hash = await writeOffchainAccessListRemoveAllowListId(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Remove a single denylist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The denylist ID to remove\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async removeDenylistId(id: string, params?: WriteParams) {\n return await this.awaitResult(this.removeDenylistIdRaw(id, params));\n }\n\n /**\n * Remove a single denylist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The denylist ID to remove\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async removeDenylistIdRaw(id: string, params?: WriteParams) {\n const { request, result } =\n await simulateOffchainAccessListRemoveDenyListId(this._config, {\n address: this.assertValidAddress(),\n args: [id],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n const hash = await writeOffchainAccessListRemoveDenyListId(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Check if an allowlist ID exists\n *\n * @public\n * @async\n * @param {string} id - The allowlist ID to check\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} - True if the ID exists\n */\n public async hasAllowlistId(\n id: string,\n params?: ReadParams,\n ): Promise<boolean> {\n return await readOffchainAccessListHasAllowListId(this._config, {\n address: this.assertValidAddress(),\n args: [id],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Check if a denylist ID exists\n *\n * @public\n * @async\n * @param {string} id - The denylist ID to check\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} - True if the ID exists\n */\n public async hasDenylistId(\n id: string,\n params?: ReadParams,\n ): Promise<boolean> {\n return await readOffchainAccessListHasDenyListId(this._config, {\n address: this.assertValidAddress(),\n args: [id],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * @inheritdoc\n *\n * @public\n * @param {?OffchainAccessListPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: OffchainAccessListPayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [payload, options] = this.validateDeploymentConfig(\n _payload,\n _options,\n );\n if (!payload.owner || payload.owner === zeroAddress) {\n const owner = options.account\n ? options.account.address\n : options.config\n ? getAccount(options.config).address\n : this._account?.address;\n if (owner) {\n payload.owner = owner;\n } else {\n throw new DeployableUnknownOwnerProvidedError();\n }\n }\n return {\n abi: offchainAccessListAbi,\n bytecode: bytecode as Hex,\n args: [prepareOffchainAccessListPayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n\n/**\n * Given a {@link OffchainAccessListPayload}, properly encode the initialization payload.\n *\n * @param {OffchainAccessListPayload} param0\n * @param {Address} param0.owner - The access list's owner\n * @param {string[]} param0.allowlistIds - List of off-chain allowlist IDs\n * @param {string[]} param0.denylistIds - List of off-chain denylist IDs\n * @returns {Hex}\n */\nexport function prepareOffchainAccessListPayload({\n owner,\n allowlistIds,\n denylistIds,\n}: OffchainAccessListPayload) {\n return encodeAbiParameters(\n [\n { type: 'address', name: 'owner' },\n { type: 'string[]', name: 'allowlistIds' },\n { type: 'string[]', name: 'denylistIds' },\n ],\n [owner, allowlistIds, denylistIds],\n );\n}\n","import { simpleDenyListAbi } from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/allowlists/SimpleDenyList.sol/SimpleDenyList.json';\nimport { type Hex, zeroAddress } from 'viem';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport {\n SimpleDenyList,\n type SimpleDenyListPayload,\n prepareSimpleDenyListPayload,\n} from './SimpleDenyList';\n\nexport const openAllowListAbi = simpleDenyListAbi;\n\n/**\n * A simple AllowList, extending {@link DenyList}, that is ownerless and allows anyone to claim.\n *\n * @export\n * @class OpenAllowList\n * @typedef {OpenAllowList}\n * @extends {DeployableTarget<OpenAllowListPayload>}\n */\nexport class OpenAllowList extends SimpleDenyList<undefined> {\n /**\n * @inheritdoc\n *\n * @public\n * @param {?SimpleDenyListPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: SimpleDenyListPayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [_, options] = this.validateDeploymentConfig({}, _options);\n return {\n abi: openAllowListAbi,\n bytecode: bytecode as Hex,\n args: [prepareSimpleDenyListPayload({ owner: zeroAddress, denied: [] })],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n","import { aAllowListAbi } from '@boostxyz/evm';\nimport {\n AOffchainAccessList,\n ASimpleAllowList,\n ASimpleDenyList,\n} from '@boostxyz/evm/deploys/componentInterfaces.json';\nimport { readContract } from '@wagmi/core';\nimport type { Address, Hex } from 'viem';\nimport type { DeployableOptions } from '../Deployable/Deployable';\nimport { InvalidComponentInterfaceError } from '../errors';\nimport type { ReadParams } from '../utils';\nimport { OffchainAccessList } from './OffchainAccessList';\nimport { OpenAllowList } from './OpenAllowList';\nimport { SimpleAllowList } from './SimpleAllowList';\nimport { SimpleDenyList } from './SimpleDenyList';\n\nexport { OffchainAccessList, OpenAllowList, SimpleAllowList, SimpleDenyList };\n\n/**\n * A union type representing all valid protocol AllowList implementations\n *\n * @export\n * @typedef {AllowList}\n */\nexport type AllowList =\n | OffchainAccessList\n | OpenAllowList\n | SimpleAllowList\n | SimpleDenyList;\n\n/**\n * A map of AllowList component interfaces to their constructors.\n *\n * @type {{ \"0x1392d798\": SimpleAllowList; \"0x3d30a22c\": SimpleDenyList; \"0x2a6b3c38\": OffchainAccessList; }}\n */\nexport const AllowListByComponentInterface = {\n [ASimpleAllowList as Hex]: SimpleAllowList,\n [ASimpleDenyList as Hex]: SimpleDenyList,\n [AOffchainAccessList as Hex]: OffchainAccessList,\n};\n\n/**\n * A function that will read a contract's component interface using `getComponentInterface` and return the correct instantiated instance.\n * This function will never return an instance of {@link OpenAllowList} because it has the same component interface as {@link SimpleDenyList}\n *\n * @export\n * @async\n * @param {DeployableOptions} options\n * @param {Address} address\n * @returns {Promise<SimpleAllowList | SimpleDenyList>}\n * @throws {@link InvalidComponentInterfaceError}\n */\nexport async function allowListFromAddress(\n options: DeployableOptions,\n address: Address,\n params?: ReadParams,\n) {\n const interfaceId = (await readContract(options.config, {\n abi: aAllowListAbi,\n functionName: 'getComponentInterface',\n address,\n ...params,\n })) as keyof typeof AllowListByComponentInterface;\n const Ctor = AllowListByComponentInterface[interfaceId];\n if (!Ctor) {\n throw new InvalidComponentInterfaceError(\n Object.keys(AllowListByComponentInterface) as Hex[],\n interfaceId as Hex,\n );\n }\n return new Ctor(options, address) as\n | SimpleDenyList\n | SimpleAllowList\n | OffchainAccessList;\n}\n"],"names":["_OffchainAccessList","DeployableTargetWithRBAC","offchainAccessListAbi","params","readOffchainAccessListOwner","_address","_params","readOffchainAccessListGetAllowListIds","readOffchainAccessListGetDenyListIds","ids","request","result","simulateOffchainAccessListSetAllowListIds","writeOffchainAccessListSetAllowListIds","simulateOffchainAccessListSetDenyListIds","writeOffchainAccessListSetDenyListIds","id","simulateOffchainAccessListAddAllowListId","writeOffchainAccessListAddAllowListId","simulateOffchainAccessListAddDenyListId","writeOffchainAccessListAddDenyListId","simulateOffchainAccessListRemoveAllowListId","writeOffchainAccessListRemoveAllowListId","simulateOffchainAccessListRemoveDenyListId","writeOffchainAccessListRemoveDenyListId","readOffchainAccessListHasAllowListId","readOffchainAccessListHasDenyListId","_payload","_options","payload","options","zeroAddress","owner","getAccount","_a","DeployableUnknownOwnerProvidedError","bytecode","prepareOffchainAccessListPayload","__vite_import_meta_env__","OffchainAccessListBases","RegistryType","OffchainAccessList","allowlistIds","denylistIds","encodeAbiParameters","openAllowListAbi","simpleDenyListAbi","OpenAllowList","SimpleDenyList","_","prepareSimpleDenyListPayload","AllowListByComponentInterface","ASimpleAllowList","SimpleAllowList","ASimpleDenyList","AOffchainAccessList","allowListFromAddress","address","interfaceId","readContract","aAllowListAbi","Ctor","InvalidComponentInterfaceError"],"mappings":"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"}
1
+ {"version":3,"file":"AllowList-Lpqz7tn9.cjs","sources":["../src/AllowLists/OffchainAccessList.ts","../src/AllowLists/OpenAllowList.ts","../src/AllowLists/AllowList.ts"],"sourcesContent":["import {\n offchainAccessListAbi,\n readOffchainAccessListGetAllowListIds,\n readOffchainAccessListGetDenyListIds,\n readOffchainAccessListHasAllowListId,\n readOffchainAccessListHasDenyListId,\n readOffchainAccessListOwner,\n simulateOffchainAccessListAddAllowListId,\n simulateOffchainAccessListAddDenyListId,\n simulateOffchainAccessListRemoveAllowListId,\n simulateOffchainAccessListRemoveDenyListId,\n simulateOffchainAccessListSetAllowListIds,\n simulateOffchainAccessListSetDenyListIds,\n writeOffchainAccessListAddAllowListId,\n writeOffchainAccessListAddDenyListId,\n writeOffchainAccessListRemoveAllowListId,\n writeOffchainAccessListRemoveDenyListId,\n writeOffchainAccessListSetAllowListIds,\n writeOffchainAccessListSetDenyListIds,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/allowlists/OffchainAccessList.sol/OffchainAccessList.json';\nimport { getAccount } from '@wagmi/core';\nimport {\n type Address,\n type ContractEventName,\n type Hex,\n encodeAbiParameters,\n zeroAddress,\n} from 'viem';\nimport { OffchainAccessList as OffchainAccessListBases } from '../../dist/deployments.json';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport { DeployableTargetWithRBAC } from '../Deployable/DeployableTargetWithRBAC';\nimport { DeployableUnknownOwnerProvidedError } from '../errors';\nimport {\n type GenericLog,\n type ReadParams,\n RegistryType,\n type WriteParams,\n} from '../utils';\n\nexport { offchainAccessListAbi };\n\n/**\n * Object representation of a {@link OffchainAccessList} initialization payload.\n *\n * @export\n * @interface OffchainAccessListPayload\n * @typedef {OffchainAccessListPayload}\n */\nexport interface OffchainAccessListPayload {\n /**\n * The access list's owner\n *\n * @type {Address}\n */\n owner: Address;\n /**\n * List of off-chain allowlist IDs.\n *\n * @type {string[]}\n */\n allowlistIds: string[];\n /**\n * List of off-chain denylist IDs.\n *\n * @type {string[]}\n */\n denylistIds: string[];\n}\n\n/**\n * A generic `viem.Log` event with support for `OffchainAccessList` event types.\n *\n * @export\n * @typedef {OffchainAccessListLog}\n * @template {ContractEventName<typeof offchainAccessListAbi>} [event=ContractEventName<\n * typeof offchainAccessListAbi\n * >]\n */\nexport type OffchainAccessListLog<\n event extends ContractEventName<\n typeof offchainAccessListAbi\n > = ContractEventName<typeof offchainAccessListAbi>,\n> = GenericLog<typeof offchainAccessListAbi, event>;\n\n/**\n * An AllowList that links on-chain boosts to off-chain access lists stored in a database.\n * This implementation always allows everyone (returns true) but stores references to off-chain allowlist and denylist IDs.\n *\n * @export\n * @class OffchainAccessList\n * @typedef {OffchainAccessList}\n * @extends {DeployableTargetWithRBAC<OffchainAccessListPayload>}\n */\nexport class OffchainAccessList extends DeployableTargetWithRBAC<\n OffchainAccessListPayload,\n typeof offchainAccessListAbi\n> {\n public override readonly abi = offchainAccessListAbi;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {Record<number, Address>}\n */\n public static override bases: Record<number, Address> = {\n ...(import.meta.env?.VITE_OFFCHAIN_ACCESS_LIST_BASE\n ? { 31337: import.meta.env.VITE_OFFCHAIN_ACCESS_LIST_BASE }\n : {}),\n ...(OffchainAccessListBases as Record<number, Address>),\n };\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {RegistryType}\n */\n public static override registryType: RegistryType = RegistryType.ALLOW_LIST;\n\n /**\n * Retrieves the owner\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<Address>} - The address of the owner\n */\n public async owner(params?: ReadParams): Promise<Address> {\n return await readOffchainAccessListOwner(this._config, {\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n address: this.assertValidAddress(),\n args: [],\n });\n }\n\n /**\n * Check if a user is authorized based on off-chain allowlists/denylists\n *\n * @public\n * @async\n * @param {Address} address - The address of the user\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} - True if the user is allowed\n */\n public isAllowed(_address: Address, _params?: ReadParams) {\n // TODO: check address against offchain allowlist/denylist using api calls\n throw new Error(\n 'isAllowed() not available for OffchainAccessList, implementation should be done offchain',\n );\n }\n\n /**\n * Get all allowlist IDs\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<string[]>} - Array of allowlist IDs\n */\n public async getAllowlistIds(params?: ReadParams) {\n return await readOffchainAccessListGetAllowListIds(this._config, {\n address: this.assertValidAddress(),\n args: [],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Get all denylist IDs\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<string[]>} - Array of denylist IDs\n */\n public async getDenylistIds(params?: ReadParams) {\n return await readOffchainAccessListGetDenyListIds(this._config, {\n address: this.assertValidAddress(),\n args: [],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Set allowlist IDs, replacing all existing ones. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string[]} ids - The new allowlist IDs\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setAllowlistIds(ids: string[], params?: WriteParams) {\n return await this.awaitResult(this.setAllowlistIdsRaw(ids, params));\n }\n\n /**\n * Set allowlist IDs, replacing all existing ones. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string[]} ids - The new allowlist IDs\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async setAllowlistIdsRaw(ids: string[], params?: WriteParams) {\n const { request, result } = await simulateOffchainAccessListSetAllowListIds(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [ids],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeOffchainAccessListSetAllowListIds(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Set denylist IDs, replacing all existing ones. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string[]} ids - The new denylist IDs\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setDenylistIds(ids: string[], params?: WriteParams) {\n return await this.awaitResult(this.setDenylistIdsRaw(ids, params));\n }\n\n /**\n * Set denylist IDs, replacing all existing ones. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string[]} ids - The new denylist IDs\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async setDenylistIdsRaw(ids: string[], params?: WriteParams) {\n const { request, result } = await simulateOffchainAccessListSetDenyListIds(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [ids],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeOffchainAccessListSetDenyListIds(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Add a single allowlist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The allowlist ID to add\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async addAllowlistId(id: string, params?: WriteParams) {\n return await this.awaitResult(this.addAllowlistIdRaw(id, params));\n }\n\n /**\n * Add a single allowlist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The allowlist ID to add\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async addAllowlistIdRaw(id: string, params?: WriteParams) {\n const { request, result } = await simulateOffchainAccessListAddAllowListId(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [id],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeOffchainAccessListAddAllowListId(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Add a single denylist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The denylist ID to add\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async addDenylistId(id: string, params?: WriteParams) {\n return await this.awaitResult(this.addDenylistIdRaw(id, params));\n }\n\n /**\n * Add a single denylist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The denylist ID to add\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async addDenylistIdRaw(id: string, params?: WriteParams) {\n const { request, result } = await simulateOffchainAccessListAddDenyListId(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [id],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeOffchainAccessListAddDenyListId(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Remove a single allowlist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The allowlist ID to remove\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async removeAllowlistId(id: string, params?: WriteParams) {\n return await this.awaitResult(this.removeAllowlistIdRaw(id, params));\n }\n\n /**\n * Remove a single allowlist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The allowlist ID to remove\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async removeAllowlistIdRaw(id: string, params?: WriteParams) {\n const { request, result } =\n await simulateOffchainAccessListRemoveAllowListId(this._config, {\n address: this.assertValidAddress(),\n args: [id],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n const hash = await writeOffchainAccessListRemoveAllowListId(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Remove a single denylist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The denylist ID to remove\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async removeDenylistId(id: string, params?: WriteParams) {\n return await this.awaitResult(this.removeDenylistIdRaw(id, params));\n }\n\n /**\n * Remove a single denylist ID. This function can only be called by authorized users.\n *\n * @public\n * @async\n * @param {string} id - The denylist ID to remove\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async removeDenylistIdRaw(id: string, params?: WriteParams) {\n const { request, result } =\n await simulateOffchainAccessListRemoveDenyListId(this._config, {\n address: this.assertValidAddress(),\n args: [id],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n const hash = await writeOffchainAccessListRemoveDenyListId(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Check if an allowlist ID exists\n *\n * @public\n * @async\n * @param {string} id - The allowlist ID to check\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} - True if the ID exists\n */\n public async hasAllowlistId(\n id: string,\n params?: ReadParams,\n ): Promise<boolean> {\n return await readOffchainAccessListHasAllowListId(this._config, {\n address: this.assertValidAddress(),\n args: [id],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Check if a denylist ID exists\n *\n * @public\n * @async\n * @param {string} id - The denylist ID to check\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} - True if the ID exists\n */\n public async hasDenylistId(\n id: string,\n params?: ReadParams,\n ): Promise<boolean> {\n return await readOffchainAccessListHasDenyListId(this._config, {\n address: this.assertValidAddress(),\n args: [id],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * @inheritdoc\n *\n * @public\n * @param {?OffchainAccessListPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: OffchainAccessListPayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [payload, options] = this.validateDeploymentConfig(\n _payload,\n _options,\n );\n if (!payload.owner || payload.owner === zeroAddress) {\n const owner = options.account\n ? options.account.address\n : options.config\n ? getAccount(options.config).address\n : this._account?.address;\n if (owner) {\n payload.owner = owner;\n } else {\n throw new DeployableUnknownOwnerProvidedError();\n }\n }\n return {\n abi: offchainAccessListAbi,\n bytecode: bytecode as Hex,\n args: [prepareOffchainAccessListPayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n\n/**\n * Given a {@link OffchainAccessListPayload}, properly encode the initialization payload.\n *\n * @param {OffchainAccessListPayload} param0\n * @param {Address} param0.owner - The access list's owner\n * @param {string[]} param0.allowlistIds - List of off-chain allowlist IDs\n * @param {string[]} param0.denylistIds - List of off-chain denylist IDs\n * @returns {Hex}\n */\nexport function prepareOffchainAccessListPayload({\n owner,\n allowlistIds,\n denylistIds,\n}: OffchainAccessListPayload) {\n return encodeAbiParameters(\n [\n { type: 'address', name: 'owner' },\n { type: 'string[]', name: 'allowlistIds' },\n { type: 'string[]', name: 'denylistIds' },\n ],\n [owner, allowlistIds, denylistIds],\n );\n}\n","import { simpleDenyListAbi } from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/allowlists/SimpleDenyList.sol/SimpleDenyList.json';\nimport { type Hex, zeroAddress } from 'viem';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport {\n SimpleDenyList,\n type SimpleDenyListPayload,\n prepareSimpleDenyListPayload,\n} from './SimpleDenyList';\n\nexport const openAllowListAbi = simpleDenyListAbi;\n\n/**\n * A simple AllowList, extending {@link DenyList}, that is ownerless and allows anyone to claim.\n *\n * @export\n * @class OpenAllowList\n * @typedef {OpenAllowList}\n * @extends {DeployableTarget<OpenAllowListPayload>}\n */\nexport class OpenAllowList extends SimpleDenyList<undefined> {\n /**\n * @inheritdoc\n *\n * @public\n * @param {?SimpleDenyListPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: SimpleDenyListPayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [_, options] = this.validateDeploymentConfig({}, _options);\n return {\n abi: openAllowListAbi,\n bytecode: bytecode as Hex,\n args: [prepareSimpleDenyListPayload({ owner: zeroAddress, denied: [] })],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n","import { aAllowListAbi } from '@boostxyz/evm';\nimport {\n AOffchainAccessList,\n ASimpleAllowList,\n ASimpleDenyList,\n} from '@boostxyz/evm/deploys/componentInterfaces.json';\nimport { readContract } from '@wagmi/core';\nimport type { Address, Hex } from 'viem';\nimport type { DeployableOptions } from '../Deployable/Deployable';\nimport { InvalidComponentInterfaceError } from '../errors';\nimport type { ReadParams } from '../utils';\nimport { OffchainAccessList } from './OffchainAccessList';\nimport { OpenAllowList } from './OpenAllowList';\nimport { SimpleAllowList } from './SimpleAllowList';\nimport { SimpleDenyList } from './SimpleDenyList';\n\nexport { OffchainAccessList, OpenAllowList, SimpleAllowList, SimpleDenyList };\n\n/**\n * A union type representing all valid protocol AllowList implementations\n *\n * @export\n * @typedef {AllowList}\n */\nexport type AllowList =\n | OffchainAccessList\n | OpenAllowList\n | SimpleAllowList\n | SimpleDenyList;\n\n/**\n * A map of AllowList component interfaces to their constructors.\n *\n * @type {{ \"0x1392d798\": SimpleAllowList; \"0x3d30a22c\": SimpleDenyList; \"0x2a6b3c38\": OffchainAccessList; }}\n */\nexport const AllowListByComponentInterface = {\n [ASimpleAllowList as Hex]: SimpleAllowList,\n [ASimpleDenyList as Hex]: SimpleDenyList,\n [AOffchainAccessList as Hex]: OffchainAccessList,\n};\n\n/**\n * A function that will read a contract's component interface using `getComponentInterface` and return the correct instantiated instance.\n * This function will never return an instance of {@link OpenAllowList} because it has the same component interface as {@link SimpleDenyList}\n *\n * @export\n * @async\n * @param {DeployableOptions} options\n * @param {Address} address\n * @returns {Promise<SimpleAllowList | SimpleDenyList>}\n * @throws {@link InvalidComponentInterfaceError}\n */\nexport async function allowListFromAddress(\n options: DeployableOptions,\n address: Address,\n params?: ReadParams,\n) {\n const interfaceId = (await readContract(options.config, {\n abi: aAllowListAbi,\n functionName: 'getComponentInterface',\n address,\n ...params,\n })) as keyof typeof AllowListByComponentInterface;\n const Ctor = AllowListByComponentInterface[interfaceId];\n if (!Ctor) {\n throw new InvalidComponentInterfaceError(\n Object.keys(AllowListByComponentInterface) as Hex[],\n interfaceId as Hex,\n );\n }\n return new Ctor(options, address) as\n | SimpleDenyList\n | SimpleAllowList\n | OffchainAccessList;\n}\n"],"names":["_OffchainAccessList","DeployableTargetWithRBAC","offchainAccessListAbi","params","readOffchainAccessListOwner","_address","_params","readOffchainAccessListGetAllowListIds","readOffchainAccessListGetDenyListIds","ids","request","result","simulateOffchainAccessListSetAllowListIds","writeOffchainAccessListSetAllowListIds","simulateOffchainAccessListSetDenyListIds","writeOffchainAccessListSetDenyListIds","id","simulateOffchainAccessListAddAllowListId","writeOffchainAccessListAddAllowListId","simulateOffchainAccessListAddDenyListId","writeOffchainAccessListAddDenyListId","simulateOffchainAccessListRemoveAllowListId","writeOffchainAccessListRemoveAllowListId","simulateOffchainAccessListRemoveDenyListId","writeOffchainAccessListRemoveDenyListId","readOffchainAccessListHasAllowListId","readOffchainAccessListHasDenyListId","_payload","_options","payload","options","zeroAddress","owner","getAccount","_a","DeployableUnknownOwnerProvidedError","bytecode","prepareOffchainAccessListPayload","__vite_import_meta_env__","OffchainAccessListBases","RegistryType","OffchainAccessList","allowlistIds","denylistIds","encodeAbiParameters","openAllowListAbi","simpleDenyListAbi","OpenAllowList","SimpleDenyList","_","prepareSimpleDenyListPayload","AllowListByComponentInterface","ASimpleAllowList","SimpleAllowList","ASimpleDenyList","AOffchainAccessList","allowListFromAddress","address","interfaceId","readContract","aAllowListAbi","Ctor","InvalidComponentInterfaceError"],"mappings":"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"}