@boostxyz/sdk 2.1.1 → 2.2.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 (131) hide show
  1. package/dist/Actions/Action.cjs +1 -1
  2. package/dist/Actions/Action.cjs.map +1 -1
  3. package/dist/Actions/Action.d.ts +2 -1
  4. package/dist/Actions/Action.d.ts.map +1 -1
  5. package/dist/Actions/Action.js +14 -13
  6. package/dist/Actions/Action.js.map +1 -1
  7. package/dist/Actions/EventAction.cjs +1 -1
  8. package/dist/Actions/EventAction.cjs.map +1 -1
  9. package/dist/Actions/EventAction.d.ts.map +1 -1
  10. package/dist/Actions/EventAction.js +33 -33
  11. package/dist/Actions/EventAction.js.map +1 -1
  12. package/dist/AllowLists/AllowList.cjs +1 -1
  13. package/dist/AllowLists/AllowList.cjs.map +1 -1
  14. package/dist/AllowLists/AllowList.d.ts +2 -1
  15. package/dist/AllowLists/AllowList.d.ts.map +1 -1
  16. package/dist/AllowLists/AllowList.js +19 -18
  17. package/dist/AllowLists/AllowList.js.map +1 -1
  18. package/dist/AllowLists/SimpleAllowList.cjs +1 -1
  19. package/dist/AllowLists/SimpleAllowList.js +7 -7
  20. package/dist/AllowLists/SimpleDenyList.cjs +1 -1
  21. package/dist/AllowLists/SimpleDenyList.js +3 -3
  22. package/dist/Auth/PassthroughAuth.cjs +1 -1
  23. package/dist/Auth/PassthroughAuth.js +1 -1
  24. package/dist/BoostCore.cjs +2 -2
  25. package/dist/BoostCore.cjs.map +1 -1
  26. package/dist/BoostCore.d.ts +13 -4
  27. package/dist/BoostCore.d.ts.map +1 -1
  28. package/dist/BoostCore.js +58 -57
  29. package/dist/BoostCore.js.map +1 -1
  30. package/dist/BoostRegistry.cjs +1 -1
  31. package/dist/BoostRegistry.js +11 -11
  32. package/dist/{Budget-DpQgIZEx.js → Budget-B0q1S08L.js} +33 -32
  33. package/dist/{Budget-DpQgIZEx.js.map → Budget-B0q1S08L.js.map} +1 -1
  34. package/dist/{Budget-BxQMnsdx.cjs → Budget-BA_1sa1e.cjs} +2 -2
  35. package/dist/{Budget-BxQMnsdx.cjs.map → Budget-BA_1sa1e.cjs.map} +1 -1
  36. package/dist/Budgets/Budget.cjs +1 -1
  37. package/dist/Budgets/Budget.d.ts +2 -1
  38. package/dist/Budgets/Budget.d.ts.map +1 -1
  39. package/dist/Budgets/Budget.js +2 -2
  40. package/dist/Budgets/ManagedBudget.cjs +1 -1
  41. package/dist/Budgets/ManagedBudget.js +11 -11
  42. package/dist/Deployable/DeployableTarget.cjs +1 -1
  43. package/dist/Deployable/DeployableTarget.js +1 -1
  44. package/dist/Deployable/DeployableTargetWithRBAC.cjs +1 -1
  45. package/dist/Deployable/DeployableTargetWithRBAC.cjs.map +1 -1
  46. package/dist/Deployable/DeployableTargetWithRBAC.d.ts +158 -0
  47. package/dist/Deployable/DeployableTargetWithRBAC.d.ts.map +1 -1
  48. package/dist/Deployable/DeployableTargetWithRBAC.js +268 -31
  49. package/dist/Deployable/DeployableTargetWithRBAC.js.map +1 -1
  50. package/dist/Incentives/AllowListIncentive.cjs +1 -1
  51. package/dist/Incentives/AllowListIncentive.cjs.map +1 -1
  52. package/dist/Incentives/AllowListIncentive.js +27 -27
  53. package/dist/Incentives/AllowListIncentive.js.map +1 -1
  54. package/dist/Incentives/CGDAIncentive.cjs +1 -1
  55. package/dist/Incentives/CGDAIncentive.cjs.map +1 -1
  56. package/dist/Incentives/CGDAIncentive.js +9 -9
  57. package/dist/Incentives/CGDAIncentive.js.map +1 -1
  58. package/dist/Incentives/ERC20Incentive.cjs +1 -1
  59. package/dist/Incentives/ERC20Incentive.cjs.map +1 -1
  60. package/dist/Incentives/ERC20Incentive.js +30 -30
  61. package/dist/Incentives/ERC20Incentive.js.map +1 -1
  62. package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs +1 -1
  63. package/dist/Incentives/ERC20VariableCriteriaIncentive.js +11 -11
  64. package/dist/Incentives/ERC20VariableIncentive.cjs +1 -1
  65. package/dist/Incentives/ERC20VariableIncentive.cjs.map +1 -1
  66. package/dist/Incentives/ERC20VariableIncentive.js +12 -12
  67. package/dist/Incentives/ERC20VariableIncentive.js.map +1 -1
  68. package/dist/Incentives/Incentive.cjs +1 -1
  69. package/dist/Incentives/Incentive.cjs.map +1 -1
  70. package/dist/Incentives/Incentive.d.ts +2 -1
  71. package/dist/Incentives/Incentive.d.ts.map +1 -1
  72. package/dist/Incentives/Incentive.js +29 -28
  73. package/dist/Incentives/Incentive.js.map +1 -1
  74. package/dist/Incentives/PointsIncentive.cjs +1 -1
  75. package/dist/Incentives/PointsIncentive.cjs.map +1 -1
  76. package/dist/Incentives/PointsIncentive.js +25 -25
  77. package/dist/Incentives/PointsIncentive.js.map +1 -1
  78. package/dist/{SimpleDenyList-CA24drhL.cjs → SimpleDenyList-DrQrJ14i.cjs} +2 -2
  79. package/dist/{SimpleDenyList-CA24drhL.cjs.map → SimpleDenyList-DrQrJ14i.cjs.map} +1 -1
  80. package/dist/{SimpleDenyList-UHgnaOb_.js → SimpleDenyList-DuCoaOlG.js} +9 -9
  81. package/dist/{SimpleDenyList-UHgnaOb_.js.map → SimpleDenyList-DuCoaOlG.js.map} +1 -1
  82. package/dist/Validators/LimitedSignerValidator.cjs +1 -1
  83. package/dist/Validators/LimitedSignerValidator.js +7 -7
  84. package/dist/Validators/SignerValidator.cjs +1 -1
  85. package/dist/Validators/SignerValidator.js +5 -5
  86. package/dist/Validators/Validator.cjs +1 -1
  87. package/dist/Validators/Validator.cjs.map +1 -1
  88. package/dist/Validators/Validator.d.ts +2 -1
  89. package/dist/Validators/Validator.d.ts.map +1 -1
  90. package/dist/Validators/Validator.js +22 -21
  91. package/dist/Validators/Validator.js.map +1 -1
  92. package/dist/deployments-BucJ-gwk.cjs +2 -0
  93. package/dist/deployments-BucJ-gwk.cjs.map +1 -0
  94. package/dist/deployments-CQu0bLhU.js +102 -0
  95. package/dist/deployments-CQu0bLhU.js.map +1 -0
  96. package/dist/deployments.json +77 -74
  97. package/dist/{generated-B0XfMfoq.js → generated-1ZT_mHJx.js} +673 -450
  98. package/dist/generated-1ZT_mHJx.js.map +1 -0
  99. package/dist/generated-CgBgbMNe.cjs +3 -0
  100. package/dist/generated-CgBgbMNe.cjs.map +1 -0
  101. package/dist/index.cjs +1 -1
  102. package/dist/index.js +3 -3
  103. package/package.json +2 -2
  104. package/src/Actions/Action.ts +3 -0
  105. package/src/Actions/EventAction.test.ts +49 -2
  106. package/src/Actions/EventAction.ts +12 -4
  107. package/src/AllowLists/AllowList.ts +3 -0
  108. package/src/BoostCore.ts +16 -11
  109. package/src/Budgets/Budget.ts +3 -0
  110. package/src/Deployable/DeployableTargetWithRBAC.test.ts +175 -0
  111. package/src/Deployable/DeployableTargetWithRBAC.ts +281 -0
  112. package/src/Incentives/AllowListIncentive.test.ts +48 -0
  113. package/src/Incentives/AllowListIncentive.ts +1 -1
  114. package/src/Incentives/CGDAIncentive.test.ts +50 -0
  115. package/src/Incentives/CGDAIncentive.ts +1 -1
  116. package/src/Incentives/ERC1155Incentive.ts +1 -1
  117. package/src/Incentives/ERC20Incentive.test.ts +49 -0
  118. package/src/Incentives/ERC20Incentive.ts +1 -1
  119. package/src/Incentives/ERC20VariableIncentive.test.ts +48 -0
  120. package/src/Incentives/ERC20VariableIncentive.ts +1 -1
  121. package/src/Incentives/Incentive.ts +3 -0
  122. package/src/Incentives/PointsIncentive.test.ts +51 -0
  123. package/src/Incentives/PointsIncentive.ts +1 -1
  124. package/src/Validators/Validator.ts +3 -0
  125. package/dist/deployments-BDumesUK.cjs +0 -2
  126. package/dist/deployments-BDumesUK.cjs.map +0 -1
  127. package/dist/deployments-DvYsMioW.js +0 -99
  128. package/dist/deployments-DvYsMioW.js.map +0 -1
  129. package/dist/generated-B0XfMfoq.js.map +0 -1
  130. package/dist/generated-pNKCp_Ez.cjs +0 -3
  131. package/dist/generated-pNKCp_Ez.cjs.map +0 -1
@@ -1,21 +1,21 @@
1
- import { f as n, P as u, U as l, V as w, W as g, X as p, Y as A, Z as y, _ as R, $ as m, a0 as _, a1 as T, a2 as P, a3 as V, a4 as k } from "../generated-B0XfMfoq.js";
1
+ import { f as n, a4 as u, a5 as l, a6 as w, a7 as g, a8 as p, a9 as A, aa as y, ab as R, ac as m, ad as T, ae as _, af as P, ag as V, ah as k } from "../generated-1ZT_mHJx.js";
2
2
  import { getAccount as v } from "@wagmi/core";
3
3
  import { zeroAddress as t, encodeAbiParameters as B, parseAbiParameters as D } from "viem";
4
- import { M as E } from "../deployments-DvYsMioW.js";
4
+ import { M as E } from "../deployments-CQu0bLhU.js";
5
5
  import { DeployableTargetWithRBAC as M } from "../Deployable/DeployableTargetWithRBAC.js";
6
6
  import { DeployableUnknownOwnerProvidedError as q, UnknownTransferPayloadSupplied as F } from "../errors.js";
7
7
  import { prepareFungibleTransfer as N, prepareERC1155Transfer as C } from "../transfers.js";
8
8
  import { RegistryType as G } from "../utils.js";
9
- const U = "0x6080604052348015600e575f80fd5b50601b601f60201b60201c565b60b0565b5f602c608760201b60201c565b90508054600181161560455763f92ee8a95f526004601cfd5b8160c01c808260011c146082578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b613931806100bd5f395ff3fe608060405260043610610212575f3560e01c8063715018a611610117578063ec87621c1161009f578063f8724aba1161006e578063f8724aba146107b6578063f9a802c3146107f2578063fa4ca9b11461082e578063fe9fbb801461086a578063fee81cf4146108a657610219565b8063ec87621c14610718578063f04e283e14610742578063f23a6e611461075e578063f2fde38b1461079a57610219565b8063b3005793116100e6578063b300579314610613578063bc197c8114610650578063be4994f81461068c578063d2514e84146106b4578063dcc21361146106f057610219565b8063715018a61461057957806375b238fc14610583578063774c33ab146105ad5780638da5cb5b146105e957610219565b8063439fab911161019a578063514e62fc11610169578063514e62fc1461048b57806354d1f13d146104c7578063578bcf35146104d15780635aef467a1461050d57806361400c991461053d57610219565b8063439fab91146103cf578063451cc191146103f7578063474f5a44146104335780634a4ee7b11461046f57610219565b80631cd64df4116101e15780631cd64df4146102fb578063256929621461033757806328d6183b146103415780632de948071461036b5780634359d28a146103a757610219565b806301ffc9a71461024b57806310098ad514610287578063183a4f6e146102c35780631c10893f146102df57610219565b3661021957005b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b348015610256575f80fd5b50610271600480360381019061026c91906126fd565b6108e2565b60405161027e9190612742565b60405180910390f35b348015610292575f80fd5b506102ad60048036038101906102a891906127b5565b610a2b565b6040516102ba91906127f8565b60405180910390f35b6102dd60048036038101906102d8919061283b565b610a96565b005b6102f960048036038101906102f49190612866565b610aa3565b005b348015610306575f80fd5b50610321600480360381019061031c9190612866565b610ab9565b60405161032e9190612742565b60405180910390f35b61033f610acf565b005b34801561034c575f80fd5b50610355610b20565b60405161036291906128b3565b60405180910390f35b348015610376575f80fd5b50610391600480360381019061038c91906127b5565b610b47565b60405161039e91906127f8565b60405180910390f35b3480156103b2575f80fd5b506103cd60048036038101906103c89190612982565b610b60565b005b3480156103da575f80fd5b506103f560048036038101906103f09190612a55565b610c6e565b005b348015610402575f80fd5b5061041d60048036038101906104189190612a55565b610d66565b60405161042a91906127f8565b60405180910390f35b34801561043e575f80fd5b5061045960048036038101906104549190612a55565b610d6d565b60405161046691906127f8565b60405180910390f35b61048960048036038101906104849190612866565b610f66565b005b348015610496575f80fd5b506104b160048036038101906104ac9190612866565b610f7c565b6040516104be9190612742565b60405180910390f35b6104cf610f93565b005b3480156104dc575f80fd5b506104f760048036038101906104f291906127b5565b610fcc565b60405161050491906127f8565b60405180910390f35b61052760048036038101906105229190612a55565b611011565b6040516105349190612742565b60405180910390f35b348015610548575f80fd5b50610563600480360381019061055e9190612af5565b611381565b6040516105709190612742565b60405180910390f35b6105816113e5565b005b34801561058e575f80fd5b506105976113f8565b6040516105a491906127f8565b60405180910390f35b3480156105b8575f80fd5b506105d360048036038101906105ce9190612866565b6113fd565b6040516105e091906127f8565b60405180910390f35b3480156105f4575f80fd5b506105fd611453565b60405161060a9190612b4f565b60405180910390f35b34801561061e575f80fd5b5061063960048036038101906106349190612b68565b61147b565b604051610647929190612bec565b60405180910390f35b34801561065b575f80fd5b5061067660048036038101906106719190612c68565b611638565b60405161068391906128b3565b60405180910390f35b348015610697575f80fd5b506106b260048036038101906106ad9190612d3f565b61164f565b005b3480156106bf575f80fd5b506106da60048036038101906106d591906127b5565b611705565b6040516106e791906127f8565b60405180910390f35b3480156106fb575f80fd5b5061071660048036038101906107119190612d3f565b61175d565b005b348015610723575f80fd5b5061072c611813565b60405161073991906127f8565b60405180910390f35b61075c600480360381019061075791906127b5565b611818565b005b348015610769575f80fd5b50610784600480360381019061077f9190612dbd565b611856565b60405161079191906128b3565b60405180910390f35b6107b460048036038101906107af91906127b5565b61186b565b005b3480156107c1575f80fd5b506107dc60048036038101906107d79190612866565b611894565b6040516107e991906127f8565b60405180910390f35b3480156107fd575f80fd5b5061081860048036038101906108139190612866565b611916565b60405161082591906127f8565b60405180910390f35b348015610839575f80fd5b50610854600480360381019061084f9190612a55565b6119ef565b6040516108619190612742565b60405180910390f35b348015610875575f80fd5b50610890600480360381019061088b91906127b5565b611cf4565b60405161089d9190612742565b60405180910390f35b3480156108b1575f80fd5b506108cc60048036038101906108c791906127b5565b611d47565b6040516108d991906127f8565b60405180910390f35b5f7f5fbfaa4e000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109ac57507f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a1457507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a245750610a2382611d60565b5b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610a8d57610a88308373ffffffffffffffffffffffffffffffffffffffff16611dd990919063ffffffff16565b610a8f565b475b9050919050565b610aa03382611e0c565b50565b610aab611e1b565b610ab58282611e52565b5050565b5f8182610ac585610b47565b1614905092915050565b5f610ad8611e62565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f5fbfaa4e00000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b6002610b6b81611e6c565b828290508585905014610baa576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015610c66575f848483818110610bcb57610bca612e53565b5b9050602002016020810190610be09190612eaa565b90506001151581151503610c2557610c20878784818110610c0457610c03612e53565b5b9050602002016020810190610c1991906127b5565b6001611e52565b610c58565b610c57878784818110610c3b57610c3a612e53565b5b9050602002016020810190610c5091906127b5565b6001611e0c565b5b508080600101915050610bac565b505050505050565b5f610c77611ea1565b90508054600382558015610ca95760018160011c14303b10610ca05763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8383810190610cba919061317e565b9050610cc8815f0151611eca565b5f5b816020015151811015610d2a57610d1d82602001518281518110610cf157610cf0612e53565b5b602002602001015183604001518381518110610d1057610d0f612e53565b5b6020026020010151611fa0565b8080600101915050610cca565b50508015610d61576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f92915050565b5f6002610d7981611e6c565b5f8484810190610d899190613329565b90505f806002811115610d9f57610d9e613370565b5b825f01516002811115610db557610db4613370565b5b1480610de8575060016002811115610dd057610dcf613370565b5b825f01516002811115610de657610de5613370565b5b145b15610e47575f8260600151806020019051810190610e0691906133ea565b9050610e3b836020015184604001515f845f015114610e2857835f0151610e36565b610e358660200151610a2b565b5b611fe1565b805f0151915050610f59565b600280811115610e5a57610e59613370565b5b825f01516002811115610e7057610e6f613370565b5b03610f4e575f8260600151806020019051810190610e8e919061350e565b9050610f4183602001518460400151835f01515f856020015114610eb6578460200151610f37565b866020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30875f01516040518363ffffffff1660e01b8152600401610ef7929190613555565b602060405180830381865afa158015610f12573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f36919061357c565b5b85604001516121a7565b8060200151915050610f58565b8093505050610f5f565b5b80935050505b5092915050565b610f6e611e1b565b610f788282611e0c565b5050565b5f8082610f8885610b47565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8083838101906110229190613329565b90505f600281111561103757611036613370565b5b815f0151600281111561104d5761104c613370565b5b036110c3575f816060015180602001905181019061106b91906133ea565b9050805f015134146110bd578160200151815f01516040517fcece04c50000000000000000000000000000000000000000000000000000000081526004016110b4929190613555565b60405180910390fd5b50611375565b600160028111156110d7576110d6613370565b5b815f015160028111156110ed576110ec613370565b5b036111c8575f816060015180602001905181019061110b91906133ea565b9050611145826040015130835f0151856020015173ffffffffffffffffffffffffffffffffffffffff166123d3909392919063ffffffff16565b805f015161117630846020015173ffffffffffffffffffffffffffffffffffffffff16611dd990919063ffffffff16565b10156111c2578160200151815f01516040517fcece04c50000000000000000000000000000000000000000000000000000000081526004016111b9929190613555565b60405180910390fd5b50611374565b6002808111156111db576111da613370565b5b815f015160028111156111f1576111f0613370565b5b0361136a575f816060015180602001905181019061120f919061350e565b9050816020015173ffffffffffffffffffffffffffffffffffffffff1663f242432a836040015130845f0151856020015186604001516040518663ffffffff1660e01b81526004016112659594939291906135f9565b5f604051808303815f87803b15801561127c575f80fd5b505af115801561128e573d5f803e3d5ffd5b505050508060200151826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b81526004016112d8929190613555565b602060405180830381865afa1580156112f3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611317919061357c565b101561136457816020015181602001516040517fcece04c500000000000000000000000000000000000000000000000000000000815260040161135b929190613555565b60405180910390fd5b50611373565b5f91505061137b565b5b5b60019150505b92915050565b5f805f90505b838390508110156113d9576113bf8484838181106113a8576113a7612e53565b5b90506020028101906113ba919061365d565b6119ef565b6113cc575f9150506113df565b8080600101915050611387565b50600190505b92915050565b6113ed611e1b565b6113f65f61242d565b565b600281565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f8061148633611cf4565b6114bc576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60405180604001604052803073ffffffffffffffffffffffffffffffffffffffff16815260200188888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081525090505f8890505f808273ffffffffffffffffffffffffffffffffffffffff1663dd98558c856040516020016115609190613750565b6040516020818303038152906040528a8a6040518463ffffffff1660e01b815260040161158f93929190613770565b60408051808303815f875af11580156115aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ce91906137c0565b91509150815f808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461161d919061382b565b92505081905550818195509550505050509550959350505050565b5f63bc197c8160e01b905098975050505050505050565b600261165a81611e6c565b828290508585905014611699576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b858590508110156116fd576116f08686838181106116bc576116bb612e53565b5b90506020020160208101906116d191906127b5565b8585848181106116e4576116e3612e53565b5b90506020020135611e52565b808060010191505061169b565b505050505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461174c83610a2b565b611756919061385e565b9050919050565b600261176881611e6c565b8282905085859050146117a7576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8585905081101561180b576117fe8686838181106117ca576117c9612e53565b5b90506020020160208101906117df91906127b5565b8585848181106117f2576117f1612e53565b5b90506020020135611e0c565b80806001019150506117a9565b505050505050565b600181565b611820611e1b565b63389a75e1600c52805f526020600c20805442111561184657636f5e88185f526004601cfd5b5f8155506118538161242d565b50565b5f63f23a6e6160e01b90509695505050505050565b611873611e1b565b8060601b61188857637448fbae5f526004601cfd5b6118918161242d565b50565b5f8273ffffffffffffffffffffffffffffffffffffffff1662fdd58e30846040518363ffffffff1660e01b81526004016118cf929190613555565b602060405180830381865afa1580156118ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061190e919061357c565b905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20548373ffffffffffffffffffffffffffffffffffffffff1662fdd58e30856040518363ffffffff1660e01b815260040161199e929190613555565b602060405180830381865afa1580156119b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119dd919061357c565b6119e7919061385e565b905092915050565b5f6119f933611cf4565b611a2f576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8383810190611a3f9190613329565b905060016002811115611a5557611a54613370565b5b815f01516002811115611a6b57611a6a613370565b5b1480611a9d57505f6002811115611a8557611a84613370565b5b815f01516002811115611a9b57611a9a613370565b5b145b15611b96575f8160600151806020019051810190611abb91906133ea565b90505f611acb8360200151610a2b565b905080825f01511115611b2057826020015181835f01516040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401611b1793929190613891565b60405180910390fd5b815f01515f80856020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611b72919061385e565b92505081905550611b8f83602001518460400151845f0151611fe1565b5050611ce8565b600280811115611ba957611ba8613370565b5b815f01516002811115611bbf57611bbe613370565b5b03611cde575f8160600151806020019051810190611bdd919061350e565b90505f826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b8152600401611c21929190613555565b602060405180830381865afa158015611c3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c60919061357c565b90508082602001511115611cb75782602001518183602001516040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401611cae93929190613891565b60405180910390fd5b611cd783602001518460400151845f0151856020015186604001516121a7565b5050611ce7565b5f915050611cee565b5b60019150505b92915050565b5f8173ffffffffffffffffffffffffffffffffffffffff16611d14611453565b73ffffffffffffffffffffffffffffffffffffffff161480611d405750611d3f826002600117610f7c565b5b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fe49cedd7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611dd25750611dd1826124f3565b5b9050919050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b611e1782825f61256c565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611e50576382b429005f526004601cfd5b565b611e5e8282600161256c565b5050565b5f6202a300905090565b638b78c6d819543314611e9e57638b78c6d8600c52335f52806020600c205416611e9d576382b429005f526004601cfd5b5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b611ed26125c4565b15611f4a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415611f0c57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611f9d565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b3068929eee149b4bd212685403611fff5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361207f578282826040517fbf182be8000000000000000000000000000000000000000000000000000000008152600401612076939291906138c6565b60405180910390fd5b61208883610a2b565b8111156120d8578261209984610a2b565b826040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016120cf93929190613891565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361211a5761211582826125c8565b612146565b61214582828573ffffffffffffffffffffffffffffffffffffffff166125e59092919063ffffffff16565b5b8273ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542838360405161218e929190613555565b60405180910390a23868929eee149b4bd2126855505050565b3068929eee149b4bd2126854036121c55763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612245578484836040517fbf182be800000000000000000000000000000000000000000000000000000000815260040161223c939291906138c6565b60405180910390fd5b61224f8584611894565b8211156122a057846122618685611894565b836040517f5c54305e00000000000000000000000000000000000000000000000000000000815260040161229793929190613891565b60405180910390fd5b8160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f205f8282546122fb919061385e565b925050819055508473ffffffffffffffffffffffffffffffffffffffff1663f242432a30868686866040518663ffffffff1660e01b81526004016123439594939291906135f9565b5f604051808303815f87803b15801561235a575f80fd5b505af115801561236c573d5f803e3d5ffd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd4354285846040516123b8929190613555565b60405180910390a23868929eee149b4bd21268555050505050565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f5114171661241e57637939f4245f526004601cfd5b5f606052806040525050505050565b6124356125c4565b1561249a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506124f0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061256557506125648261262e565b5b9050919050565b638b78c6d8600c52825f526020600c2080548381178361258e57848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f385f3884865af16125e15763b12d13eb5f526004601cfd5b5050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716612625576390b8ec185f526004601cfd5b5f603452505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6126dc816126a8565b81146126e6575f80fd5b50565b5f813590506126f7816126d3565b92915050565b5f60208284031215612712576127116126a0565b5b5f61271f848285016126e9565b91505092915050565b5f8115159050919050565b61273c81612728565b82525050565b5f6020820190506127555f830184612733565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6127848261275b565b9050919050565b6127948161277a565b811461279e575f80fd5b50565b5f813590506127af8161278b565b92915050565b5f602082840312156127ca576127c96126a0565b5b5f6127d7848285016127a1565b91505092915050565b5f819050919050565b6127f2816127e0565b82525050565b5f60208201905061280b5f8301846127e9565b92915050565b61281a816127e0565b8114612824575f80fd5b50565b5f8135905061283581612811565b92915050565b5f602082840312156128505761284f6126a0565b5b5f61285d84828501612827565b91505092915050565b5f806040838503121561287c5761287b6126a0565b5b5f612889858286016127a1565b925050602061289a85828601612827565b9150509250929050565b6128ad816126a8565b82525050565b5f6020820190506128c65f8301846128a4565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126128ed576128ec6128cc565b5b8235905067ffffffffffffffff81111561290a576129096128d0565b5b602083019150836020820283011115612926576129256128d4565b5b9250929050565b5f8083601f840112612942576129416128cc565b5b8235905067ffffffffffffffff81111561295f5761295e6128d0565b5b60208301915083602082028301111561297b5761297a6128d4565b5b9250929050565b5f805f806040858703121561299a576129996126a0565b5b5f85013567ffffffffffffffff8111156129b7576129b66126a4565b5b6129c3878288016128d8565b9450945050602085013567ffffffffffffffff8111156129e6576129e56126a4565b5b6129f28782880161292d565b925092505092959194509250565b5f8083601f840112612a1557612a146128cc565b5b8235905067ffffffffffffffff811115612a3257612a316128d0565b5b602083019150836001820283011115612a4e57612a4d6128d4565b5b9250929050565b5f8060208385031215612a6b57612a6a6126a0565b5b5f83013567ffffffffffffffff811115612a8857612a876126a4565b5b612a9485828601612a00565b92509250509250929050565b5f8083601f840112612ab557612ab46128cc565b5b8235905067ffffffffffffffff811115612ad257612ad16128d0565b5b602083019150836020820283011115612aee57612aed6128d4565b5b9250929050565b5f8060208385031215612b0b57612b0a6126a0565b5b5f83013567ffffffffffffffff811115612b2857612b276126a4565b5b612b3485828601612aa0565b92509250509250929050565b612b498161277a565b82525050565b5f602082019050612b625f830184612b40565b92915050565b5f805f805f60808688031215612b8157612b806126a0565b5b5f612b8e888289016127a1565b955050602086013567ffffffffffffffff811115612baf57612bae6126a4565b5b612bbb88828901612a00565b94509450506040612bce88828901612827565b9250506060612bdf88828901612827565b9150509295509295909350565b5f604082019050612bff5f8301856127e9565b612c0c6020830184612b40565b9392505050565b5f8083601f840112612c2857612c276128cc565b5b8235905067ffffffffffffffff811115612c4557612c446128d0565b5b602083019150836020820283011115612c6157612c606128d4565b5b9250929050565b5f805f805f805f8060a0898b031215612c8457612c836126a0565b5b5f612c918b828c016127a1565b9850506020612ca28b828c016127a1565b975050604089013567ffffffffffffffff811115612cc357612cc26126a4565b5b612ccf8b828c01612c13565b9650965050606089013567ffffffffffffffff811115612cf257612cf16126a4565b5b612cfe8b828c01612c13565b9450945050608089013567ffffffffffffffff811115612d2157612d206126a4565b5b612d2d8b828c01612a00565b92509250509295985092959890939650565b5f805f8060408587031215612d5757612d566126a0565b5b5f85013567ffffffffffffffff811115612d7457612d736126a4565b5b612d80878288016128d8565b9450945050602085013567ffffffffffffffff811115612da357612da26126a4565b5b612daf87828801612c13565b925092505092959194509250565b5f805f805f8060a08789031215612dd757612dd66126a0565b5b5f612de489828a016127a1565b9650506020612df589828a016127a1565b9550506040612e0689828a01612827565b9450506060612e1789828a01612827565b935050608087013567ffffffffffffffff811115612e3857612e376126a4565b5b612e4489828a01612a00565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b612e8981612728565b8114612e93575f80fd5b50565b5f81359050612ea481612e80565b92915050565b5f60208284031215612ebf57612ebe6126a0565b5b5f612ecc84828501612e96565b91505092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612f1f82612ed9565b810181811067ffffffffffffffff82111715612f3e57612f3d612ee9565b5b80604052505050565b5f612f50612697565b9050612f5c8282612f16565b919050565b5f80fd5b5f67ffffffffffffffff821115612f7f57612f7e612ee9565b5b602082029050602081019050919050565b5f612fa2612f9d84612f65565b612f47565b90508083825260208201905060208402830185811115612fc557612fc46128d4565b5b835b81811015612fee5780612fda88826127a1565b845260208401935050602081019050612fc7565b5050509392505050565b5f82601f83011261300c5761300b6128cc565b5b813561301c848260208601612f90565b91505092915050565b5f67ffffffffffffffff82111561303f5761303e612ee9565b5b602082029050602081019050919050565b5f61306261305d84613025565b612f47565b90508083825260208201905060208402830185811115613085576130846128d4565b5b835b818110156130ae578061309a8882612827565b845260208401935050602081019050613087565b5050509392505050565b5f82601f8301126130cc576130cb6128cc565b5b81356130dc848260208601613050565b91505092915050565b5f606082840312156130fa576130f9612ed5565b5b6131046060612f47565b90505f613113848285016127a1565b5f83015250602082013567ffffffffffffffff81111561313657613135612f61565b5b61314284828501612ff8565b602083015250604082013567ffffffffffffffff81111561316657613165612f61565b5b613172848285016130b8565b60408301525092915050565b5f60208284031215613193576131926126a0565b5b5f82013567ffffffffffffffff8111156131b0576131af6126a4565b5b6131bc848285016130e5565b91505092915050565b600381106131d1575f80fd5b50565b5f813590506131e2816131c5565b92915050565b5f80fd5b5f67ffffffffffffffff82111561320657613205612ee9565b5b61320f82612ed9565b9050602081019050919050565b828183375f83830152505050565b5f61323c613237846131ec565b612f47565b905082815260208101848484011115613258576132576131e8565b5b61326384828561321c565b509392505050565b5f82601f83011261327f5761327e6128cc565b5b813561328f84826020860161322a565b91505092915050565b5f608082840312156132ad576132ac612ed5565b5b6132b76080612f47565b90505f6132c6848285016131d4565b5f8301525060206132d9848285016127a1565b60208301525060406132ed848285016127a1565b604083015250606082013567ffffffffffffffff81111561331157613310612f61565b5b61331d8482850161326b565b60608301525092915050565b5f6020828403121561333e5761333d6126a0565b5b5f82013567ffffffffffffffff81111561335b5761335a6126a4565b5b61336784828501613298565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f815190506133ab81612811565b92915050565b5f602082840312156133c6576133c5612ed5565b5b6133d06020612f47565b90505f6133df8482850161339d565b5f8301525092915050565b5f602082840312156133ff576133fe6126a0565b5b5f61340c848285016133b1565b91505092915050565b8281835e5f83830152505050565b5f613435613430846131ec565b612f47565b905082815260208101848484011115613451576134506131e8565b5b61345c848285613415565b509392505050565b5f82601f830112613478576134776128cc565b5b8151613488848260208601613423565b91505092915050565b5f606082840312156134a6576134a5612ed5565b5b6134b06060612f47565b90505f6134bf8482850161339d565b5f8301525060206134d28482850161339d565b602083015250604082015167ffffffffffffffff8111156134f6576134f5612f61565b5b61350284828501613464565b60408301525092915050565b5f60208284031215613523576135226126a0565b5b5f82015167ffffffffffffffff8111156135405761353f6126a4565b5b61354c84828501613491565b91505092915050565b5f6040820190506135685f830185612b40565b61357560208301846127e9565b9392505050565b5f60208284031215613591576135906126a0565b5b5f61359e8482850161339d565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6135cb826135a7565b6135d581856135b1565b93506135e5818560208601613415565b6135ee81612ed9565b840191505092915050565b5f60a08201905061360c5f830188612b40565b6136196020830187612b40565b61362660408301866127e9565b61363360608301856127e9565b818103608083015261364581846135c1565b90509695505050505050565b5f80fd5b5f80fd5b5f80fd5b5f808335600160200384360303811261367957613678613651565b5b80840192508235915067ffffffffffffffff82111561369b5761369a613655565b5b6020830192506001820236038313156136b7576136b6613659565b5b509250929050565b6136c88161277a565b82525050565b5f82825260208201905092915050565b5f6136e8826135a7565b6136f281856136ce565b9350613702818560208601613415565b61370b81612ed9565b840191505092915050565b5f604083015f83015161372b5f8601826136bf565b506020830151848203602086015261374382826136de565b9150508091505092915050565b5f6020820190508181035f8301526137688184613716565b905092915050565b5f6060820190508181035f83015261378881866135c1565b905061379760208301856127e9565b6137a460408301846127e9565b949350505050565b5f815190506137ba8161278b565b92915050565b5f80604083850312156137d6576137d56126a0565b5b5f6137e38582860161339d565b92505060206137f4858286016137ac565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613835826127e0565b9150613840836127e0565b9250828203905081811115613858576138576137fe565b5b92915050565b5f613868826127e0565b9150613873836127e0565b925082820190508082111561388b5761388a6137fe565b5b92915050565b5f6060820190506138a45f830186612b40565b6138b160208301856127e9565b6138be60408301846127e9565b949350505050565b5f6060820190506138d95f830186612b40565b6138e66020830185612b40565b6138f360408301846127e9565b94935050505056fea264697066735822122043386a0ed4af64176291e3c82bd6ee953f22a90e82505ad77b38b8fa2956d75864736f6c634300081a0033";
10
- var x = /* @__PURE__ */ ((e) => (e[e.MANAGER = 1n] = "MANAGER", e[e.ADMIN = 2n] = "ADMIN", e))(x || {});
11
- function I(e) {
9
+ const x = "0x6080604052348015600e575f80fd5b50601b601f60201b60201c565b60b0565b5f602c608760201b60201c565b90508054600181161560455763f92ee8a95f526004601cfd5b8160c01c808260011c146082578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b613931806100bd5f395ff3fe608060405260043610610212575f3560e01c8063715018a611610117578063ec87621c1161009f578063f8724aba1161006e578063f8724aba146107b6578063f9a802c3146107f2578063fa4ca9b11461082e578063fe9fbb801461086a578063fee81cf4146108a657610219565b8063ec87621c14610718578063f04e283e14610742578063f23a6e611461075e578063f2fde38b1461079a57610219565b8063b3005793116100e6578063b300579314610613578063bc197c8114610650578063be4994f81461068c578063d2514e84146106b4578063dcc21361146106f057610219565b8063715018a61461057957806375b238fc14610583578063774c33ab146105ad5780638da5cb5b146105e957610219565b8063439fab911161019a578063514e62fc11610169578063514e62fc1461048b57806354d1f13d146104c7578063578bcf35146104d15780635aef467a1461050d57806361400c991461053d57610219565b8063439fab91146103cf578063451cc191146103f7578063474f5a44146104335780634a4ee7b11461046f57610219565b80631cd64df4116101e15780631cd64df4146102fb578063256929621461033757806328d6183b146103415780632de948071461036b5780634359d28a146103a757610219565b806301ffc9a71461024b57806310098ad514610287578063183a4f6e146102c35780631c10893f146102df57610219565b3661021957005b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b348015610256575f80fd5b50610271600480360381019061026c91906126fd565b6108e2565b60405161027e9190612742565b60405180910390f35b348015610292575f80fd5b506102ad60048036038101906102a891906127b5565b610a2b565b6040516102ba91906127f8565b60405180910390f35b6102dd60048036038101906102d8919061283b565b610a96565b005b6102f960048036038101906102f49190612866565b610aa3565b005b348015610306575f80fd5b50610321600480360381019061031c9190612866565b610ab9565b60405161032e9190612742565b60405180910390f35b61033f610acf565b005b34801561034c575f80fd5b50610355610b20565b60405161036291906128b3565b60405180910390f35b348015610376575f80fd5b50610391600480360381019061038c91906127b5565b610b47565b60405161039e91906127f8565b60405180910390f35b3480156103b2575f80fd5b506103cd60048036038101906103c89190612982565b610b60565b005b3480156103da575f80fd5b506103f560048036038101906103f09190612a55565b610c6e565b005b348015610402575f80fd5b5061041d60048036038101906104189190612a55565b610d66565b60405161042a91906127f8565b60405180910390f35b34801561043e575f80fd5b5061045960048036038101906104549190612a55565b610d6d565b60405161046691906127f8565b60405180910390f35b61048960048036038101906104849190612866565b610f66565b005b348015610496575f80fd5b506104b160048036038101906104ac9190612866565b610f7c565b6040516104be9190612742565b60405180910390f35b6104cf610f93565b005b3480156104dc575f80fd5b506104f760048036038101906104f291906127b5565b610fcc565b60405161050491906127f8565b60405180910390f35b61052760048036038101906105229190612a55565b611011565b6040516105349190612742565b60405180910390f35b348015610548575f80fd5b50610563600480360381019061055e9190612af5565b611381565b6040516105709190612742565b60405180910390f35b6105816113e5565b005b34801561058e575f80fd5b506105976113f8565b6040516105a491906127f8565b60405180910390f35b3480156105b8575f80fd5b506105d360048036038101906105ce9190612866565b6113fd565b6040516105e091906127f8565b60405180910390f35b3480156105f4575f80fd5b506105fd611453565b60405161060a9190612b4f565b60405180910390f35b34801561061e575f80fd5b5061063960048036038101906106349190612b68565b61147b565b604051610647929190612bec565b60405180910390f35b34801561065b575f80fd5b5061067660048036038101906106719190612c68565b611638565b60405161068391906128b3565b60405180910390f35b348015610697575f80fd5b506106b260048036038101906106ad9190612d3f565b61164f565b005b3480156106bf575f80fd5b506106da60048036038101906106d591906127b5565b611705565b6040516106e791906127f8565b60405180910390f35b3480156106fb575f80fd5b5061071660048036038101906107119190612d3f565b61175d565b005b348015610723575f80fd5b5061072c611813565b60405161073991906127f8565b60405180910390f35b61075c600480360381019061075791906127b5565b611818565b005b348015610769575f80fd5b50610784600480360381019061077f9190612dbd565b611856565b60405161079191906128b3565b60405180910390f35b6107b460048036038101906107af91906127b5565b61186b565b005b3480156107c1575f80fd5b506107dc60048036038101906107d79190612866565b611894565b6040516107e991906127f8565b60405180910390f35b3480156107fd575f80fd5b5061081860048036038101906108139190612866565b611916565b60405161082591906127f8565b60405180910390f35b348015610839575f80fd5b50610854600480360381019061084f9190612a55565b6119ef565b6040516108619190612742565b60405180910390f35b348015610875575f80fd5b50610890600480360381019061088b91906127b5565b611cf4565b60405161089d9190612742565b60405180910390f35b3480156108b1575f80fd5b506108cc60048036038101906108c791906127b5565b611d47565b6040516108d991906127f8565b60405180910390f35b5f7f5fbfaa4e000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109ac57507f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a1457507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a245750610a2382611d60565b5b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610a8d57610a88308373ffffffffffffffffffffffffffffffffffffffff16611dd990919063ffffffff16565b610a8f565b475b9050919050565b610aa03382611e0c565b50565b610aab611e1b565b610ab58282611e52565b5050565b5f8182610ac585610b47565b1614905092915050565b5f610ad8611e62565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f5fbfaa4e00000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b6002610b6b81611e6c565b828290508585905014610baa576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015610c66575f848483818110610bcb57610bca612e53565b5b9050602002016020810190610be09190612eaa565b90506001151581151503610c2557610c20878784818110610c0457610c03612e53565b5b9050602002016020810190610c1991906127b5565b6001611e52565b610c58565b610c57878784818110610c3b57610c3a612e53565b5b9050602002016020810190610c5091906127b5565b6001611e0c565b5b508080600101915050610bac565b505050505050565b5f610c77611ea1565b90508054600382558015610ca95760018160011c14303b10610ca05763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8383810190610cba919061317e565b9050610cc8815f0151611eca565b5f5b816020015151811015610d2a57610d1d82602001518281518110610cf157610cf0612e53565b5b602002602001015183604001518381518110610d1057610d0f612e53565b5b6020026020010151611fa0565b8080600101915050610cca565b50508015610d61576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f92915050565b5f6002610d7981611e6c565b5f8484810190610d899190613329565b90505f806002811115610d9f57610d9e613370565b5b825f01516002811115610db557610db4613370565b5b1480610de8575060016002811115610dd057610dcf613370565b5b825f01516002811115610de657610de5613370565b5b145b15610e47575f8260600151806020019051810190610e0691906133ea565b9050610e3b836020015184604001515f845f015114610e2857835f0151610e36565b610e358660200151610a2b565b5b611fe1565b805f0151915050610f59565b600280811115610e5a57610e59613370565b5b825f01516002811115610e7057610e6f613370565b5b03610f4e575f8260600151806020019051810190610e8e919061350e565b9050610f4183602001518460400151835f01515f856020015114610eb6578460200151610f37565b866020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30875f01516040518363ffffffff1660e01b8152600401610ef7929190613555565b602060405180830381865afa158015610f12573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f36919061357c565b5b85604001516121a7565b8060200151915050610f58565b8093505050610f5f565b5b80935050505b5092915050565b610f6e611e1b565b610f788282611e0c565b5050565b5f8082610f8885610b47565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8083838101906110229190613329565b90505f600281111561103757611036613370565b5b815f0151600281111561104d5761104c613370565b5b036110c3575f816060015180602001905181019061106b91906133ea565b9050805f015134146110bd578160200151815f01516040517fcece04c50000000000000000000000000000000000000000000000000000000081526004016110b4929190613555565b60405180910390fd5b50611375565b600160028111156110d7576110d6613370565b5b815f015160028111156110ed576110ec613370565b5b036111c8575f816060015180602001905181019061110b91906133ea565b9050611145826040015130835f0151856020015173ffffffffffffffffffffffffffffffffffffffff166123d3909392919063ffffffff16565b805f015161117630846020015173ffffffffffffffffffffffffffffffffffffffff16611dd990919063ffffffff16565b10156111c2578160200151815f01516040517fcece04c50000000000000000000000000000000000000000000000000000000081526004016111b9929190613555565b60405180910390fd5b50611374565b6002808111156111db576111da613370565b5b815f015160028111156111f1576111f0613370565b5b0361136a575f816060015180602001905181019061120f919061350e565b9050816020015173ffffffffffffffffffffffffffffffffffffffff1663f242432a836040015130845f0151856020015186604001516040518663ffffffff1660e01b81526004016112659594939291906135f9565b5f604051808303815f87803b15801561127c575f80fd5b505af115801561128e573d5f803e3d5ffd5b505050508060200151826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b81526004016112d8929190613555565b602060405180830381865afa1580156112f3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611317919061357c565b101561136457816020015181602001516040517fcece04c500000000000000000000000000000000000000000000000000000000815260040161135b929190613555565b60405180910390fd5b50611373565b5f91505061137b565b5b5b60019150505b92915050565b5f805f90505b838390508110156113d9576113bf8484838181106113a8576113a7612e53565b5b90506020028101906113ba919061365d565b6119ef565b6113cc575f9150506113df565b8080600101915050611387565b50600190505b92915050565b6113ed611e1b565b6113f65f61242d565b565b600281565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f8061148633611cf4565b6114bc576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60405180604001604052803073ffffffffffffffffffffffffffffffffffffffff16815260200188888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081525090505f8890505f808273ffffffffffffffffffffffffffffffffffffffff1663dd98558c856040516020016115609190613750565b6040516020818303038152906040528a8a6040518463ffffffff1660e01b815260040161158f93929190613770565b60408051808303815f875af11580156115aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ce91906137c0565b91509150815f808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461161d919061382b565b92505081905550818195509550505050509550959350505050565b5f63bc197c8160e01b905098975050505050505050565b600261165a81611e6c565b828290508585905014611699576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b858590508110156116fd576116f08686838181106116bc576116bb612e53565b5b90506020020160208101906116d191906127b5565b8585848181106116e4576116e3612e53565b5b90506020020135611e52565b808060010191505061169b565b505050505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461174c83610a2b565b611756919061385e565b9050919050565b600261176881611e6c565b8282905085859050146117a7576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8585905081101561180b576117fe8686838181106117ca576117c9612e53565b5b90506020020160208101906117df91906127b5565b8585848181106117f2576117f1612e53565b5b90506020020135611e0c565b80806001019150506117a9565b505050505050565b600181565b611820611e1b565b63389a75e1600c52805f526020600c20805442111561184657636f5e88185f526004601cfd5b5f8155506118538161242d565b50565b5f63f23a6e6160e01b90509695505050505050565b611873611e1b565b8060601b61188857637448fbae5f526004601cfd5b6118918161242d565b50565b5f8273ffffffffffffffffffffffffffffffffffffffff1662fdd58e30846040518363ffffffff1660e01b81526004016118cf929190613555565b602060405180830381865afa1580156118ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061190e919061357c565b905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20548373ffffffffffffffffffffffffffffffffffffffff1662fdd58e30856040518363ffffffff1660e01b815260040161199e929190613555565b602060405180830381865afa1580156119b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119dd919061357c565b6119e7919061385e565b905092915050565b5f6119f933611cf4565b611a2f576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8383810190611a3f9190613329565b905060016002811115611a5557611a54613370565b5b815f01516002811115611a6b57611a6a613370565b5b1480611a9d57505f6002811115611a8557611a84613370565b5b815f01516002811115611a9b57611a9a613370565b5b145b15611b96575f8160600151806020019051810190611abb91906133ea565b90505f611acb8360200151610a2b565b905080825f01511115611b2057826020015181835f01516040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401611b1793929190613891565b60405180910390fd5b815f01515f80856020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611b72919061385e565b92505081905550611b8f83602001518460400151845f0151611fe1565b5050611ce8565b600280811115611ba957611ba8613370565b5b815f01516002811115611bbf57611bbe613370565b5b03611cde575f8160600151806020019051810190611bdd919061350e565b90505f826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b8152600401611c21929190613555565b602060405180830381865afa158015611c3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c60919061357c565b90508082602001511115611cb75782602001518183602001516040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401611cae93929190613891565b60405180910390fd5b611cd783602001518460400151845f0151856020015186604001516121a7565b5050611ce7565b5f915050611cee565b5b60019150505b92915050565b5f8173ffffffffffffffffffffffffffffffffffffffff16611d14611453565b73ffffffffffffffffffffffffffffffffffffffff161480611d405750611d3f826002600117610f7c565b5b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fe49cedd7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611dd25750611dd1826124f3565b5b9050919050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b611e1782825f61256c565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611e50576382b429005f526004601cfd5b565b611e5e8282600161256c565b5050565b5f6202a300905090565b638b78c6d819543314611e9e57638b78c6d8600c52335f52806020600c205416611e9d576382b429005f526004601cfd5b5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b611ed26125c4565b15611f4a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415611f0c57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611f9d565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b3068929eee149b4bd212685403611fff5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361207f578282826040517fbf182be8000000000000000000000000000000000000000000000000000000008152600401612076939291906138c6565b60405180910390fd5b61208883610a2b565b8111156120d8578261209984610a2b565b826040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016120cf93929190613891565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361211a5761211582826125c8565b612146565b61214582828573ffffffffffffffffffffffffffffffffffffffff166125e59092919063ffffffff16565b5b8273ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542838360405161218e929190613555565b60405180910390a23868929eee149b4bd2126855505050565b3068929eee149b4bd2126854036121c55763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612245578484836040517fbf182be800000000000000000000000000000000000000000000000000000000815260040161223c939291906138c6565b60405180910390fd5b61224f8584611894565b8211156122a057846122618685611894565b836040517f5c54305e00000000000000000000000000000000000000000000000000000000815260040161229793929190613891565b60405180910390fd5b8160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f205f8282546122fb919061385e565b925050819055508473ffffffffffffffffffffffffffffffffffffffff1663f242432a30868686866040518663ffffffff1660e01b81526004016123439594939291906135f9565b5f604051808303815f87803b15801561235a575f80fd5b505af115801561236c573d5f803e3d5ffd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd4354285846040516123b8929190613555565b60405180910390a23868929eee149b4bd21268555050505050565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f5114171661241e57637939f4245f526004601cfd5b5f606052806040525050505050565b6124356125c4565b1561249a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506124f0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061256557506125648261262e565b5b9050919050565b638b78c6d8600c52825f526020600c2080548381178361258e57848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f385f3884865af16125e15763b12d13eb5f526004601cfd5b5050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716612625576390b8ec185f526004601cfd5b5f603452505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6126dc816126a8565b81146126e6575f80fd5b50565b5f813590506126f7816126d3565b92915050565b5f60208284031215612712576127116126a0565b5b5f61271f848285016126e9565b91505092915050565b5f8115159050919050565b61273c81612728565b82525050565b5f6020820190506127555f830184612733565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6127848261275b565b9050919050565b6127948161277a565b811461279e575f80fd5b50565b5f813590506127af8161278b565b92915050565b5f602082840312156127ca576127c96126a0565b5b5f6127d7848285016127a1565b91505092915050565b5f819050919050565b6127f2816127e0565b82525050565b5f60208201905061280b5f8301846127e9565b92915050565b61281a816127e0565b8114612824575f80fd5b50565b5f8135905061283581612811565b92915050565b5f602082840312156128505761284f6126a0565b5b5f61285d84828501612827565b91505092915050565b5f806040838503121561287c5761287b6126a0565b5b5f612889858286016127a1565b925050602061289a85828601612827565b9150509250929050565b6128ad816126a8565b82525050565b5f6020820190506128c65f8301846128a4565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126128ed576128ec6128cc565b5b8235905067ffffffffffffffff81111561290a576129096128d0565b5b602083019150836020820283011115612926576129256128d4565b5b9250929050565b5f8083601f840112612942576129416128cc565b5b8235905067ffffffffffffffff81111561295f5761295e6128d0565b5b60208301915083602082028301111561297b5761297a6128d4565b5b9250929050565b5f805f806040858703121561299a576129996126a0565b5b5f85013567ffffffffffffffff8111156129b7576129b66126a4565b5b6129c3878288016128d8565b9450945050602085013567ffffffffffffffff8111156129e6576129e56126a4565b5b6129f28782880161292d565b925092505092959194509250565b5f8083601f840112612a1557612a146128cc565b5b8235905067ffffffffffffffff811115612a3257612a316128d0565b5b602083019150836001820283011115612a4e57612a4d6128d4565b5b9250929050565b5f8060208385031215612a6b57612a6a6126a0565b5b5f83013567ffffffffffffffff811115612a8857612a876126a4565b5b612a9485828601612a00565b92509250509250929050565b5f8083601f840112612ab557612ab46128cc565b5b8235905067ffffffffffffffff811115612ad257612ad16128d0565b5b602083019150836020820283011115612aee57612aed6128d4565b5b9250929050565b5f8060208385031215612b0b57612b0a6126a0565b5b5f83013567ffffffffffffffff811115612b2857612b276126a4565b5b612b3485828601612aa0565b92509250509250929050565b612b498161277a565b82525050565b5f602082019050612b625f830184612b40565b92915050565b5f805f805f60808688031215612b8157612b806126a0565b5b5f612b8e888289016127a1565b955050602086013567ffffffffffffffff811115612baf57612bae6126a4565b5b612bbb88828901612a00565b94509450506040612bce88828901612827565b9250506060612bdf88828901612827565b9150509295509295909350565b5f604082019050612bff5f8301856127e9565b612c0c6020830184612b40565b9392505050565b5f8083601f840112612c2857612c276128cc565b5b8235905067ffffffffffffffff811115612c4557612c446128d0565b5b602083019150836020820283011115612c6157612c606128d4565b5b9250929050565b5f805f805f805f8060a0898b031215612c8457612c836126a0565b5b5f612c918b828c016127a1565b9850506020612ca28b828c016127a1565b975050604089013567ffffffffffffffff811115612cc357612cc26126a4565b5b612ccf8b828c01612c13565b9650965050606089013567ffffffffffffffff811115612cf257612cf16126a4565b5b612cfe8b828c01612c13565b9450945050608089013567ffffffffffffffff811115612d2157612d206126a4565b5b612d2d8b828c01612a00565b92509250509295985092959890939650565b5f805f8060408587031215612d5757612d566126a0565b5b5f85013567ffffffffffffffff811115612d7457612d736126a4565b5b612d80878288016128d8565b9450945050602085013567ffffffffffffffff811115612da357612da26126a4565b5b612daf87828801612c13565b925092505092959194509250565b5f805f805f8060a08789031215612dd757612dd66126a0565b5b5f612de489828a016127a1565b9650506020612df589828a016127a1565b9550506040612e0689828a01612827565b9450506060612e1789828a01612827565b935050608087013567ffffffffffffffff811115612e3857612e376126a4565b5b612e4489828a01612a00565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b612e8981612728565b8114612e93575f80fd5b50565b5f81359050612ea481612e80565b92915050565b5f60208284031215612ebf57612ebe6126a0565b5b5f612ecc84828501612e96565b91505092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612f1f82612ed9565b810181811067ffffffffffffffff82111715612f3e57612f3d612ee9565b5b80604052505050565b5f612f50612697565b9050612f5c8282612f16565b919050565b5f80fd5b5f67ffffffffffffffff821115612f7f57612f7e612ee9565b5b602082029050602081019050919050565b5f612fa2612f9d84612f65565b612f47565b90508083825260208201905060208402830185811115612fc557612fc46128d4565b5b835b81811015612fee5780612fda88826127a1565b845260208401935050602081019050612fc7565b5050509392505050565b5f82601f83011261300c5761300b6128cc565b5b813561301c848260208601612f90565b91505092915050565b5f67ffffffffffffffff82111561303f5761303e612ee9565b5b602082029050602081019050919050565b5f61306261305d84613025565b612f47565b90508083825260208201905060208402830185811115613085576130846128d4565b5b835b818110156130ae578061309a8882612827565b845260208401935050602081019050613087565b5050509392505050565b5f82601f8301126130cc576130cb6128cc565b5b81356130dc848260208601613050565b91505092915050565b5f606082840312156130fa576130f9612ed5565b5b6131046060612f47565b90505f613113848285016127a1565b5f83015250602082013567ffffffffffffffff81111561313657613135612f61565b5b61314284828501612ff8565b602083015250604082013567ffffffffffffffff81111561316657613165612f61565b5b613172848285016130b8565b60408301525092915050565b5f60208284031215613193576131926126a0565b5b5f82013567ffffffffffffffff8111156131b0576131af6126a4565b5b6131bc848285016130e5565b91505092915050565b600381106131d1575f80fd5b50565b5f813590506131e2816131c5565b92915050565b5f80fd5b5f67ffffffffffffffff82111561320657613205612ee9565b5b61320f82612ed9565b9050602081019050919050565b828183375f83830152505050565b5f61323c613237846131ec565b612f47565b905082815260208101848484011115613258576132576131e8565b5b61326384828561321c565b509392505050565b5f82601f83011261327f5761327e6128cc565b5b813561328f84826020860161322a565b91505092915050565b5f608082840312156132ad576132ac612ed5565b5b6132b76080612f47565b90505f6132c6848285016131d4565b5f8301525060206132d9848285016127a1565b60208301525060406132ed848285016127a1565b604083015250606082013567ffffffffffffffff81111561331157613310612f61565b5b61331d8482850161326b565b60608301525092915050565b5f6020828403121561333e5761333d6126a0565b5b5f82013567ffffffffffffffff81111561335b5761335a6126a4565b5b61336784828501613298565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f815190506133ab81612811565b92915050565b5f602082840312156133c6576133c5612ed5565b5b6133d06020612f47565b90505f6133df8482850161339d565b5f8301525092915050565b5f602082840312156133ff576133fe6126a0565b5b5f61340c848285016133b1565b91505092915050565b8281835e5f83830152505050565b5f613435613430846131ec565b612f47565b905082815260208101848484011115613451576134506131e8565b5b61345c848285613415565b509392505050565b5f82601f830112613478576134776128cc565b5b8151613488848260208601613423565b91505092915050565b5f606082840312156134a6576134a5612ed5565b5b6134b06060612f47565b90505f6134bf8482850161339d565b5f8301525060206134d28482850161339d565b602083015250604082015167ffffffffffffffff8111156134f6576134f5612f61565b5b61350284828501613464565b60408301525092915050565b5f60208284031215613523576135226126a0565b5b5f82015167ffffffffffffffff8111156135405761353f6126a4565b5b61354c84828501613491565b91505092915050565b5f6040820190506135685f830185612b40565b61357560208301846127e9565b9392505050565b5f60208284031215613591576135906126a0565b5b5f61359e8482850161339d565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6135cb826135a7565b6135d581856135b1565b93506135e5818560208601613415565b6135ee81612ed9565b840191505092915050565b5f60a08201905061360c5f830188612b40565b6136196020830187612b40565b61362660408301866127e9565b61363360608301856127e9565b818103608083015261364581846135c1565b90509695505050505050565b5f80fd5b5f80fd5b5f80fd5b5f808335600160200384360303811261367957613678613651565b5b80840192508235915067ffffffffffffffff82111561369b5761369a613655565b5b6020830192506001820236038313156136b7576136b6613659565b5b509250929050565b6136c88161277a565b82525050565b5f82825260208201905092915050565b5f6136e8826135a7565b6136f281856136ce565b9350613702818560208601613415565b61370b81612ed9565b840191505092915050565b5f604083015f83015161372b5f8601826136bf565b506020830151848203602086015261374382826136de565b9150508091505092915050565b5f6020820190508181035f8301526137688184613716565b905092915050565b5f6060820190508181035f83015261378881866135c1565b905061379760208301856127e9565b6137a460408301846127e9565b949350505050565b5f815190506137ba8161278b565b92915050565b5f80604083850312156137d6576137d56126a0565b5b5f6137e38582860161339d565b92505060206137f4858286016137ac565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613835826127e0565b9150613840836127e0565b9250828203905081811115613858576138576137fe565b5b92915050565b5f613868826127e0565b9150613873836127e0565b925082820190508082111561388b5761388a6137fe565b5b92915050565b5f6060820190506138a45f830186612b40565b6138b160208301856127e9565b6138be60408301846127e9565b949350505050565b5f6060820190506138d95f830186612b40565b6138e66020830185612b40565b6138f360408301846127e9565b94935050505056fea264697066735822122043386a0ed4af64176291e3c82bd6ee953f22a90e82505ad77b38b8fa2956d75864736f6c634300081a0033";
10
+ var I = /* @__PURE__ */ ((e) => (e[e.MANAGER = 1n] = "MANAGER", e[e.ADMIN = 2n] = "ADMIN", e))(I || {});
11
+ function U(e) {
12
12
  return e.tokenId === void 0;
13
13
  }
14
14
  function z(e) {
15
15
  return e.tokenId !== void 0;
16
16
  }
17
17
  function r(e) {
18
- if (I(e))
18
+ if (U(e))
19
19
  return N(e);
20
20
  if (z(e))
21
21
  return C(e);
@@ -238,7 +238,7 @@ const i = class i extends M {
238
238
  ...b
239
239
  }
240
240
  );
241
- return { hash: await _(this._config, a), result: d };
241
+ return { hash: await T(this._config, a), result: d };
242
242
  }
243
243
  /**
244
244
  * Get the owner of the budget
@@ -248,7 +248,7 @@ const i = class i extends M {
248
248
  * @returns {Promise<Address>}
249
249
  */
250
250
  owner(f) {
251
- return T(this._config, {
251
+ return _(this._config, {
252
252
  address: this.assertValidAddress(),
253
253
  args: [],
254
254
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
@@ -332,7 +332,7 @@ const i = class i extends M {
332
332
  }
333
333
  return {
334
334
  abi: n,
335
- bytecode: U,
335
+ bytecode: x,
336
336
  args: [O(a)],
337
337
  ...this.optionallyAttachAccount(d.account)
338
338
  };
@@ -356,9 +356,9 @@ const O = ({
356
356
  );
357
357
  export {
358
358
  o as ManagedBudget,
359
- x as ManagedBudgetRoles,
359
+ I as ManagedBudgetRoles,
360
360
  z as isERC1155TransferPayload,
361
- I as isFungibleTransfer,
361
+ U as isFungibleTransfer,
362
362
  n as managedBudgetAbi,
363
363
  O as prepareManagedBudgetPayload,
364
364
  r as prepareTransfer
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../generated-pNKCp_Ez.cjs"),u=require("@wagmi/core"),i=require("viem"),d=require("../errors.cjs"),l=require("../utils.cjs"),h=require("./Deployable.cjs"),a=class a extends h.Deployable{constructor(e,s,t){super(e,s),this._isBase=!0,typeof s=="string"&&i.isAddress(s)&&s!==i.zeroAddress&&!Object.values(this.bases).some(r=>!s||!r?!1:i.isAddressEqual(s,r))&&(t=!1),t!==void 0&&(this._isBase=t)}get isBase(){return this.address&&Object.values(this.bases).some(e=>i.isAddressEqual(this.address,e))?!0:this._isBase}get bases(){return this.constructor.bases}get registryType(){return this.constructor.registryType}async deploy(e,s,t){return await super.deploy(e,s,t),this.assertValidAddress(),this}async deployRaw(e,s){if(this.address)throw new d.DeployableAlreadyDeployedError(this.address);const t=e||this._payload,r=(s==null?void 0:s.config)||this._config,{args:y,...o}=this.buildParameters(t);return await u.deployContract(r,{...o,...this.optionallyAttachAccount(s==null?void 0:s.account),args:[]})}async supportsInterface(e,s){return await c.Li(this._config,{address:this.assertValidAddress(),...this.optionallyAttachAccount(),...s,args:[e]})}async getComponentInterface(e){return await c.Fi(this._config,{address:this.assertValidAddress(),...this.optionallyAttachAccount(),...e,args:[]})}validateDeploymentConfig(e,s){const t=e||this._payload;if(!t)throw new d.DeployableMissingPayloadError;return super.validateDeploymentConfig(t,s)}};a.bases={},a.registryType=l.RegistryType.ACTION;let n=a;exports.DeployableTarget=n;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../generated-CgBgbMNe.cjs"),u=require("@wagmi/core"),i=require("viem"),d=require("../errors.cjs"),l=require("../utils.cjs"),h=require("./Deployable.cjs"),a=class a extends h.Deployable{constructor(e,s,t){super(e,s),this._isBase=!0,typeof s=="string"&&i.isAddress(s)&&s!==i.zeroAddress&&!Object.values(this.bases).some(r=>!s||!r?!1:i.isAddressEqual(s,r))&&(t=!1),t!==void 0&&(this._isBase=t)}get isBase(){return this.address&&Object.values(this.bases).some(e=>i.isAddressEqual(this.address,e))?!0:this._isBase}get bases(){return this.constructor.bases}get registryType(){return this.constructor.registryType}async deploy(e,s,t){return await super.deploy(e,s,t),this.assertValidAddress(),this}async deployRaw(e,s){if(this.address)throw new d.DeployableAlreadyDeployedError(this.address);const t=e||this._payload,r=(s==null?void 0:s.config)||this._config,{args:y,...o}=this.buildParameters(t);return await u.deployContract(r,{...o,...this.optionallyAttachAccount(s==null?void 0:s.account),args:[]})}async supportsInterface(e,s){return await c.Li(this._config,{address:this.assertValidAddress(),...this.optionallyAttachAccount(),...s,args:[e]})}async getComponentInterface(e){return await c.Fi(this._config,{address:this.assertValidAddress(),...this.optionallyAttachAccount(),...e,args:[]})}validateDeploymentConfig(e,s){const t=e||this._payload;if(!t)throw new d.DeployableMissingPayloadError;return super.validateDeploymentConfig(t,s)}};a.bases={},a.registryType=l.RegistryType.ACTION;let n=a;exports.DeployableTarget=n;
2
2
  //# sourceMappingURL=DeployableTarget.cjs.map
@@ -1,4 +1,4 @@
1
- import { n as d, q as c } from "../generated-B0XfMfoq.js";
1
+ import { K as d, M as c } from "../generated-1ZT_mHJx.js";
2
2
  import { deployContract as h } from "@wagmi/core";
3
3
  import { isAddress as u, zeroAddress as l, isAddressEqual as a } from "viem";
4
4
  import { DeployableAlreadyDeployedError as y, DeployableMissingPayloadError as f } from "../errors.js";
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../generated-pNKCp_Ez.cjs"),c=require("./DeployableTarget.cjs");var h=(n=>(n[n.MANAGER=1n]="MANAGER",n[n.ADMIN=2n]="ADMIN",n))(h||{});class l extends c.DeployableTarget{async setAuthorized(t,s,a){return await this.awaitResult(this.setAuthorizedRaw(t,s,a))}async setAuthorizedRaw(t,s,a){const{request:r,result:i}=await e.SB(this._config,{address:this.assertValidAddress(),args:[t,s],...this.optionallyAttachAccount(),...a});return{hash:await e.IB(this._config,r),result:i}}async grantRoles(t,s,a){return await this.awaitResult(this.grantRolesRaw(t,s,a))}async grantRolesRaw(t,s,a){const{request:r,result:i}=await e.CB(this._config,{address:this.assertValidAddress(),args:[t,s],...this.optionallyAttachAccount(),...a});return{hash:await e.fB(this._config,r),result:i}}async revokeRoles(t,s,a){return await this.awaitResult(this.revokeRolesRaw(t,s,a))}async revokeRolesRaw(t,s,a){const{request:r,result:i}=await e.xB(this._config,{address:this.assertValidAddress(),args:[t,s],...this.optionallyAttachAccount(),...a});return{hash:await e.hB(this._config,r),result:i}}async grantManyRoles(t,s,a){return await this.awaitResult(this.grantManyRolesRaw(t,s,a))}async grantManyRolesRaw(t,s,a){const{request:r,result:i}=await e.OB(this._config,{address:this.assertValidAddress(),args:[t,s],...this.optionallyAttachAccount(),...a});return{hash:await e.bB(this._config,r),result:i}}async revokeManyRoles(t,s,a){return await this.awaitResult(this.revokeManyRolesRaw(t,s,a))}async revokeManyRolesRaw(t,s,a){const{request:r,result:i}=await e.HB(this._config,{address:this.assertValidAddress(),args:[t,s],...this.optionallyAttachAccount(),...a});return{hash:await e.AB(this._config,r),result:i}}async rolesOf(t,s){const a=await e.yB(this._config,{address:this.assertValidAddress(),args:[t],...this.optionallyAttachAccount(),...s});return[h.MANAGER,h.ADMIN].filter(r=>(a&r)===r)}hasAnyRole(t,s,a){return e.oB(this._config,{address:this.assertValidAddress(),args:[t,s],...this.optionallyAttachAccount(),...a})}hasAllRoles(t,s,a){return e.rB(this._config,{address:this.assertValidAddress(),args:[t,s],...this.optionallyAttachAccount(),...a})}isAuthorized(t,s){return e.pB(this._config,{address:this.assertValidAddress(),args:[t],...this.optionallyAttachAccount(),...s})}}exports.rbacAbi=e.E;exports.DeployableTargetWithRBAC=l;exports.Roles=h;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../generated-CgBgbMNe.cjs"),c=require("./DeployableTarget.cjs");var o=(n=>(n[n.MANAGER=1n]="MANAGER",n[n.ADMIN=2n]="ADMIN",n))(o||{});class l extends c.DeployableTarget{async setAuthorized(s,t,a){return await this.awaitResult(this.setAuthorizedRaw(s,t,a))}async setAuthorizedRaw(s,t,a){const{request:i,result:r}=await e.SB(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a});return{hash:await e.IB(this._config,i),result:r}}async grantRoles(s,t,a){return await this.awaitResult(this.grantRolesRaw(s,t,a))}async grantRolesRaw(s,t,a){const{request:i,result:r}=await e.CB(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a});return{hash:await e.fB(this._config,i),result:r}}async revokeRoles(s,t,a){return await this.awaitResult(this.revokeRolesRaw(s,t,a))}async revokeRolesRaw(s,t,a){const{request:i,result:r}=await e.xB(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a});return{hash:await e.hB(this._config,i),result:r}}async grantManyRoles(s,t,a){return await this.awaitResult(this.grantManyRolesRaw(s,t,a))}async grantManyRolesRaw(s,t,a){const{request:i,result:r}=await e.OB(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a});return{hash:await e.bB(this._config,i),result:r}}async revokeManyRoles(s,t,a){return await this.awaitResult(this.revokeManyRolesRaw(s,t,a))}async revokeManyRolesRaw(s,t,a){const{request:i,result:r}=await e.HB(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a});return{hash:await e.AB(this._config,i),result:r}}async rolesOf(s,t){const a=await e.yB(this._config,{address:this.assertValidAddress(),args:[s],...this.optionallyAttachAccount(),...t});return[o.MANAGER,o.ADMIN].filter(i=>(a&i)===i)}hasAnyRole(s,t,a){return e.oB(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a})}hasAllRoles(s,t,a){return e.rB(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a})}isAuthorized(s,t){return e.pB(this._config,{address:this.assertValidAddress(),args:[s],...this.optionallyAttachAccount(),...t})}async transferOwnership(s,t){return await this.awaitResult(this.transferOwnershipRaw(s,t))}async transferOwnershipRaw(s,t){const{request:a,result:i}=await e.nE(this._config,{address:this.assertValidAddress(),args:[s],...this.optionallyAttachAccount(),...t});return{hash:await e.jC(this._config,a),result:i}}async renounceOwnership(s){return await this.awaitResult(this.renounceOwnershipRaw(s))}async renounceOwnershipRaw(s){const{request:t,result:a}=await e.XC(this._config,{address:this.assertValidAddress(),...this.optionallyAttachAccount(),...s});return{hash:await e.GC(this._config,t),result:a}}async requestOwnershipHandover(s){return await this.awaitResult(this.requestOwnershipHandoverRaw(s))}async requestOwnershipHandoverRaw(s){const{request:t,result:a}=await e.eE(this._config,{address:this.assertValidAddress(),...this.optionallyAttachAccount(),...s});return{hash:await e.WC(this._config,t),result:a}}async completeOwnershipHandover(s,t){return await this.awaitResult(this.completeOwnershipHandoverRaw(s,t))}async completeOwnershipHandoverRaw(s,t){const{request:a,result:i}=await e.JC(this._config,{address:this.assertValidAddress(),args:[s],...this.optionallyAttachAccount(),...t});return{hash:await e.qC(this._config,a),result:i}}async cancelOwnershipHandover(s){return await this.awaitResult(this.cancelOwnershipHandoverRaw(s))}async cancelOwnershipHandoverRaw(s){const{request:t,result:a}=await e.QC(this._config,{address:this.assertValidAddress(),...this.optionallyAttachAccount(),...s});return{hash:await e.DC(this._config,t),result:a}}ownershipHandoverExpiresAt(s,t){return e.LC(this._config,{address:this.assertValidAddress(),args:[s],...this.optionallyAttachAccount(),...t})}async renounceRoles(s,t){return await this.awaitResult(this.renounceRolesRaw(s,t))}async renounceRolesRaw(s,t){const{request:a,result:i}=await e.YC(this._config,{address:this.assertValidAddress(),args:[s],...this.optionallyAttachAccount(),...t});return{hash:await e.UC(this._config,a),result:i}}}exports.rbacAbi=e.E;exports.DeployableTargetWithRBAC=l;exports.Roles=o;
2
2
  //# sourceMappingURL=DeployableTargetWithRBAC.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeployableTargetWithRBAC.cjs","sources":["../../src/Deployable/DeployableTargetWithRBAC.ts"],"sourcesContent":["import {\n rbacAbi,\n readRbacHasAllRoles,\n readRbacHasAnyRole,\n readRbacIsAuthorized,\n readRbacRolesOf,\n simulateRbacGrantManyRoles,\n simulateRbacGrantRoles,\n simulateRbacRevokeManyRoles,\n simulateRbacRevokeRoles,\n simulateRbacSetAuthorized,\n writeRbacGrantManyRoles,\n writeRbacGrantRoles,\n writeRbacRevokeManyRoles,\n writeRbacRevokeRoles,\n writeRbacSetAuthorized,\n} from '@boostxyz/evm';\nimport type { Abi, Address, ContractEventName } from 'viem';\nimport { DeployableTarget } from '../Deployable/DeployableTarget';\nimport type { GenericLog, ReadParams, WriteParams } from '../utils';\nexport { rbacAbi };\n\n/**\n * Enum representing available roles for use with the `RBAC` authorization scheme.\n * `MANAGER` has lowest level of write permissions, for specific implementations, see Budgets and ALlowLists\n * `ADMIN` can additionally manage authorized users on the contract.\n *\n * @export\n * @type {{ readonly MANAGER: 1n; readonly ADMIN_ROLE: 2n; }}\n * @enum {bigint}\n */\nexport enum Roles {\n //@ts-expect-error ts doesn't like bigint enum values\n MANAGER = 1n,\n //@ts-expect-error ts doesn't like bigint enum values\n ADMIN = 2n,\n}\n\n/**\n * A generic `viem.Log` event with support for `Rbac` event types.\n *\n * @export\n * @typedef {RBACLog}\n * @template {ContractEventName<typeof rbacAbi>} [event=ContractEventName<\n * typeof rbacAbi\n * >]\n */\nexport type RBACLog<\n event extends ContractEventName<typeof rbacAbi> = ContractEventName<\n typeof rbacAbi\n >,\n> = GenericLog<typeof rbacAbi, event>;\n\n/**\n * A minimal RBAC implementation that offers MANAGER and ADMIN roles, and\n * Budgets and allowlists support this auth scheme\n *\n * @export\n * @class DeployableTargetWithRBAC\n * @typedef {DeployableTargetWithRBAC}\n * @extends {DeployableTarget<RbacPayload>}\n */\nexport class DeployableTargetWithRBAC<\n Payload,\n ABI extends Abi,\n> extends DeployableTarget<Payload, ABI> {\n /**\n * Set the authorized status of the given accounts\n * The mechanism for managing authorization is left to the implementing contract\n *\n * @public\n * @async\n * @param {Address[]} addresses - The accounts to authorize or deauthorize\n * @param {boolean[]} allowed - The authorization status for the given accounts\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setAuthorized(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.setAuthorizedRaw(addresses, allowed, params),\n );\n }\n\n /**\n * Set the authorized status of the given accounts\n * The mechanism for managing authorization is left to the implementing contract\n *\n * @public\n * @async\n * @param {Address[]} addresses - The accounts to authorize or deauthorize\n * @param {boolean[]} allowed - The authorization status for the given accounts\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setAuthorizedRaw(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacSetAuthorized(this._config, {\n address: this.assertValidAddress(),\n args: [addresses, allowed],\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 writeRbacSetAuthorized(this._config, request);\n return { hash, result };\n }\n\n /**\n * Grant permissions for a user on the rbac.\n *\n * @example\n * ```ts\n * await rbac.grantRoles('0xfoo', Roles.MANAGER)\n * ```\n * @public\n * @async\n * @param {Address} address\n * @param {Roles} role\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async grantRoles(address: Address, role: Roles, params?: WriteParams) {\n return await this.awaitResult(this.grantRolesRaw(address, role, params));\n }\n\n /**\n * Grant permissions for a user on the rbac.\n *\n * @example\n * ```ts\n * await rbac.grantRoles('0xfoo', Roles.MANAGER)\n * ```\n * @public\n * @async\n * @param {Address} address\n * @param {Roles} role\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async grantRolesRaw(\n address: Address,\n role: Roles,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacGrantRoles(this._config, {\n address: this.assertValidAddress(),\n args: [address, role],\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 writeRbacGrantRoles(\n this._config,\n // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection\n request as any,\n );\n return { hash, result };\n }\n\n /**\n * Revoke permissions for a user on the rbac.\n *\n * @example\n * ```ts\n * await rbac.revokeRoles('0xfoo', Roles.MANAGER)\n * ```\n * @public\n * @async\n * @param {Address} address\n * @param {Roles} role\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async revokeRoles(\n address: Address,\n role: Roles,\n params?: WriteParams,\n ) {\n return await this.awaitResult(this.revokeRolesRaw(address, role, params));\n }\n\n /**\n * Revoke permissions for a user on the rbac.\n *\n * @example\n * ```ts\n * await rbac.revokeRoles('0xfoo', Roles.MANAGER)\n * ```\n * @public\n * @async\n * @param {Address} address\n * @param {Roles} role\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async revokeRolesRaw(\n address: Address,\n role: Roles,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacRevokeRoles(this._config, {\n address: this.assertValidAddress(),\n args: [address, role],\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 writeRbacRevokeRoles(\n this._config,\n // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection\n request as any,\n );\n return { hash, result };\n }\n\n /**\n * Grant many accounts permissions on the rbac.\n *\n * @example\n * ```ts\n * await rbac.grantManyRoles(['0xfoo', '0xbar], [Roles.MANAGER, Roles.ADMIN])\n * ```\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {Roles[]} roles\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async grantManyRoles(\n addresses: Address[],\n roles: Roles[],\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.grantManyRolesRaw(addresses, roles, params),\n );\n }\n\n /**\n * Grant many accounts permissions on the rbac.\n *\n * @example\n * ```ts\n * await rbac.grantManyRoles(['0xfoo', '0xbar], [Roles.MANAGER, Roles.ADMIN])\n * ```\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {Roles[]} roles\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async grantManyRolesRaw(\n addresses: Address[],\n roles: Roles[],\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacGrantManyRoles(this._config, {\n address: this.assertValidAddress(),\n args: [addresses, roles],\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 writeRbacGrantManyRoles(\n this._config,\n // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection\n request as any,\n );\n return { hash, result };\n }\n\n /**\n * Revoke many accounts' permissions on the rbac.\n *\n * @example\n * ```ts\n * await rbac.revokeManyRoles(['0xfoo', '0xbar], [Roles.MANAGER, Roles.ADMIN])\n * ```\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {Roles[]} roles\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async revokeManyRoles(\n addresses: Address[],\n roles: Roles[],\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.revokeManyRolesRaw(addresses, roles, params),\n );\n }\n\n /**\n * Revoke many accounts' permissions on the rbac.\n *\n * @example\n * ```ts\n * await rbac.revokeManyRoles(['0xfoo', '0xbar], [Roles.MANAGER, Roles.ADMIN])\n * ```\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {Roles[]} roles\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async revokeManyRolesRaw(\n addresses: Address[],\n roles: Roles[],\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacRevokeManyRoles(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [addresses, roles],\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 writeRbacRevokeManyRoles(\n this._config,\n // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection\n request as any,\n );\n return { hash, result };\n }\n\n /**\n * Return an array of the roles assigned to the given account.\n * @example\n * ```ts\n * (await rbac.rolesOf(0xfoo)).includes(Roles.ADMIN)\n * ```\n * @public\n * @param {Address} account\n * @param {?ReadParams} [params]\n * @returns {Promise<Array<Roles>>}\n */\n public async rolesOf(account: Address, params?: ReadParams) {\n const roles = await readRbacRolesOf(this._config, {\n address: this.assertValidAddress(),\n args: [account],\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 return ([Roles.MANAGER, Roles.ADMIN] as unknown as Array<bigint>).filter(\n (role) => (roles & role) === role,\n ) as unknown as Roles[];\n }\n\n /**\n * Returns whether given account has any of the provided roles bitmap.\n *\n * @example\n * ```ts\n * await rbac.hasAnyRole(0xfoo, Roles.ADMIN | Roles.MANAGER)\n * ```\n * @public\n * @param {Address} account\n * @param {Roles} roles\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>}\n */\n public hasAnyRole(account: Address, roles: Roles, params?: ReadParams) {\n return readRbacHasAnyRole(this._config, {\n address: this.assertValidAddress(),\n args: [account, roles],\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 * Returns whether given account has all of the provided roles bitmap.\n *\n * @example\n * ```ts\n * await rbac.hasAllRoles(0xfoo, Roles.ADMIN | Roles.MANAGER)\n * ```\n * @public\n * @param {Address} account\n * @param {Roles} roles\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>}\n */\n public hasAllRoles(account: Address, roles: Roles, params?: ReadParams) {\n return readRbacHasAllRoles(this._config, {\n address: this.assertValidAddress(),\n args: [account, roles],\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 the given account is authorized to use the rbac\n *\n * @public\n * @param {Address} account\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} - True if the account is authorized\n */\n public isAuthorized(account: Address, params?: ReadParams) {\n return readRbacIsAuthorized(this._config, {\n address: this.assertValidAddress(),\n args: [account],\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"],"names":["Roles","DeployableTargetWithRBAC","DeployableTarget","addresses","allowed","params","request","result","simulateRbacSetAuthorized","writeRbacSetAuthorized","address","role","simulateRbacGrantRoles","writeRbacGrantRoles","simulateRbacRevokeRoles","writeRbacRevokeRoles","roles","simulateRbacGrantManyRoles","writeRbacGrantManyRoles","simulateRbacRevokeManyRoles","writeRbacRevokeManyRoles","account","readRbacRolesOf","readRbacHasAnyRole","readRbacHasAllRoles","readRbacIsAuthorized"],"mappings":"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"}
1
+ {"version":3,"file":"DeployableTargetWithRBAC.cjs","sources":["../../src/Deployable/DeployableTargetWithRBAC.ts"],"sourcesContent":["import {\n rbacAbi,\n readOwnableRolesOwnershipHandoverExpiresAt,\n readRbacHasAllRoles,\n readRbacHasAnyRole,\n readRbacIsAuthorized,\n readRbacRolesOf,\n simulateOwnableRolesCancelOwnershipHandover,\n simulateOwnableRolesCompleteOwnershipHandover,\n simulateOwnableRolesRenounceOwnership,\n simulateOwnableRolesRenounceRoles,\n simulateOwnableRolesRequestOwnershipHandover,\n simulateOwnableRolesTransferOwnership,\n simulateRbacGrantManyRoles,\n simulateRbacGrantRoles,\n simulateRbacRevokeManyRoles,\n simulateRbacRevokeRoles,\n simulateRbacSetAuthorized,\n writeOwnableRolesCancelOwnershipHandover,\n writeOwnableRolesCompleteOwnershipHandover,\n writeOwnableRolesRenounceOwnership,\n writeOwnableRolesRenounceRoles,\n writeOwnableRolesRequestOwnershipHandover,\n writeOwnableRolesTransferOwnership,\n writeRbacGrantManyRoles,\n writeRbacGrantRoles,\n writeRbacRevokeManyRoles,\n writeRbacRevokeRoles,\n writeRbacSetAuthorized,\n} from '@boostxyz/evm';\nimport type { Abi, Address, ContractEventName } from 'viem';\nimport { DeployableTarget } from '../Deployable/DeployableTarget';\nimport type { GenericLog, ReadParams, WriteParams } from '../utils';\nexport { rbacAbi };\n\n/**\n * Enum representing available roles for use with the `RBAC` authorization scheme.\n * `MANAGER` has lowest level of write permissions, for specific implementations, see Budgets and ALlowLists\n * `ADMIN` can additionally manage authorized users on the contract.\n *\n * @export\n * @type {{ readonly MANAGER: 1n; readonly ADMIN_ROLE: 2n; }}\n * @enum {bigint}\n */\nexport enum Roles {\n //@ts-expect-error ts doesn't like bigint enum values\n MANAGER = 1n,\n //@ts-expect-error ts doesn't like bigint enum values\n ADMIN = 2n,\n}\n\n/**\n * A generic `viem.Log` event with support for `Rbac` event types.\n *\n * @export\n * @typedef {RBACLog}\n * @template {ContractEventName<typeof rbacAbi>} [event=ContractEventName<\n * typeof rbacAbi\n * >]\n */\nexport type RBACLog<\n event extends ContractEventName<typeof rbacAbi> = ContractEventName<\n typeof rbacAbi\n >,\n> = GenericLog<typeof rbacAbi, event>;\n\n/**\n * A minimal RBAC implementation that offers MANAGER and ADMIN roles, and\n * Budgets and allowlists support this auth scheme\n *\n * @export\n * @class DeployableTargetWithRBAC\n * @typedef {DeployableTargetWithRBAC}\n * @extends {DeployableTarget<RbacPayload>}\n */\nexport class DeployableTargetWithRBAC<\n Payload,\n ABI extends Abi,\n> extends DeployableTarget<Payload, ABI> {\n /**\n * Set the authorized status of the given accounts\n * The mechanism for managing authorization is left to the implementing contract\n *\n * @public\n * @async\n * @param {Address[]} addresses - The accounts to authorize or deauthorize\n * @param {boolean[]} allowed - The authorization status for the given accounts\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setAuthorized(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.setAuthorizedRaw(addresses, allowed, params),\n );\n }\n\n /**\n * Set the authorized status of the given accounts\n * The mechanism for managing authorization is left to the implementing contract\n *\n * @public\n * @async\n * @param {Address[]} addresses - The accounts to authorize or deauthorize\n * @param {boolean[]} allowed - The authorization status for the given accounts\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setAuthorizedRaw(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacSetAuthorized(this._config, {\n address: this.assertValidAddress(),\n args: [addresses, allowed],\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 writeRbacSetAuthorized(this._config, request);\n return { hash, result };\n }\n\n /**\n * Grant permissions for a user on the rbac.\n *\n * @example\n * ```ts\n * await rbac.grantRoles('0xfoo', Roles.MANAGER)\n * ```\n * @public\n * @async\n * @param {Address} address\n * @param {Roles} role\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async grantRoles(address: Address, role: Roles, params?: WriteParams) {\n return await this.awaitResult(this.grantRolesRaw(address, role, params));\n }\n\n /**\n * Grant permissions for a user on the rbac.\n *\n * @example\n * ```ts\n * await rbac.grantRoles('0xfoo', Roles.MANAGER)\n * ```\n * @public\n * @async\n * @param {Address} address\n * @param {Roles} role\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async grantRolesRaw(\n address: Address,\n role: Roles,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacGrantRoles(this._config, {\n address: this.assertValidAddress(),\n args: [address, role],\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 writeRbacGrantRoles(\n this._config,\n // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection\n request as any,\n );\n return { hash, result };\n }\n\n /**\n * Revoke permissions for a user on the rbac.\n *\n * @example\n * ```ts\n * await rbac.revokeRoles('0xfoo', Roles.MANAGER)\n * ```\n * @public\n * @async\n * @param {Address} address\n * @param {Roles} role\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async revokeRoles(\n address: Address,\n role: Roles,\n params?: WriteParams,\n ) {\n return await this.awaitResult(this.revokeRolesRaw(address, role, params));\n }\n\n /**\n * Revoke permissions for a user on the rbac.\n *\n * @example\n * ```ts\n * await rbac.revokeRoles('0xfoo', Roles.MANAGER)\n * ```\n * @public\n * @async\n * @param {Address} address\n * @param {Roles} role\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async revokeRolesRaw(\n address: Address,\n role: Roles,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacRevokeRoles(this._config, {\n address: this.assertValidAddress(),\n args: [address, role],\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 writeRbacRevokeRoles(\n this._config,\n // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection\n request as any,\n );\n return { hash, result };\n }\n\n /**\n * Grant many accounts permissions on the rbac.\n *\n * @example\n * ```ts\n * await rbac.grantManyRoles(['0xfoo', '0xbar], [Roles.MANAGER, Roles.ADMIN])\n * ```\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {Roles[]} roles\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async grantManyRoles(\n addresses: Address[],\n roles: Roles[],\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.grantManyRolesRaw(addresses, roles, params),\n );\n }\n\n /**\n * Grant many accounts permissions on the rbac.\n *\n * @example\n * ```ts\n * await rbac.grantManyRoles(['0xfoo', '0xbar], [Roles.MANAGER, Roles.ADMIN])\n * ```\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {Roles[]} roles\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async grantManyRolesRaw(\n addresses: Address[],\n roles: Roles[],\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacGrantManyRoles(this._config, {\n address: this.assertValidAddress(),\n args: [addresses, roles],\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 writeRbacGrantManyRoles(\n this._config,\n // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection\n request as any,\n );\n return { hash, result };\n }\n\n /**\n * Revoke many accounts' permissions on the rbac.\n *\n * @example\n * ```ts\n * await rbac.revokeManyRoles(['0xfoo', '0xbar], [Roles.MANAGER, Roles.ADMIN])\n * ```\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {Roles[]} roles\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async revokeManyRoles(\n addresses: Address[],\n roles: Roles[],\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.revokeManyRolesRaw(addresses, roles, params),\n );\n }\n\n /**\n * Revoke many accounts' permissions on the rbac.\n *\n * @example\n * ```ts\n * await rbac.revokeManyRoles(['0xfoo', '0xbar], [Roles.MANAGER, Roles.ADMIN])\n * ```\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {Roles[]} roles\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async revokeManyRolesRaw(\n addresses: Address[],\n roles: Roles[],\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacRevokeManyRoles(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [addresses, roles],\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 writeRbacRevokeManyRoles(\n this._config,\n // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection\n request as any,\n );\n return { hash, result };\n }\n\n /**\n * Return an array of the roles assigned to the given account.\n * @example\n * ```ts\n * (await rbac.rolesOf(0xfoo)).includes(Roles.ADMIN)\n * ```\n * @public\n * @param {Address} account\n * @param {?ReadParams} [params]\n * @returns {Promise<Array<Roles>>}\n */\n public async rolesOf(account: Address, params?: ReadParams) {\n const roles = await readRbacRolesOf(this._config, {\n address: this.assertValidAddress(),\n args: [account],\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 return ([Roles.MANAGER, Roles.ADMIN] as unknown as Array<bigint>).filter(\n (role) => (roles & role) === role,\n ) as unknown as Roles[];\n }\n\n /**\n * Returns whether given account has any of the provided roles bitmap.\n *\n * @example\n * ```ts\n * await rbac.hasAnyRole(0xfoo, Roles.ADMIN | Roles.MANAGER)\n * ```\n * @public\n * @param {Address} account\n * @param {Roles} roles\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>}\n */\n public hasAnyRole(account: Address, roles: Roles, params?: ReadParams) {\n return readRbacHasAnyRole(this._config, {\n address: this.assertValidAddress(),\n args: [account, roles],\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 * Returns whether given account has all of the provided roles bitmap.\n *\n * @example\n * ```ts\n * await rbac.hasAllRoles(0xfoo, Roles.ADMIN | Roles.MANAGER)\n * ```\n * @public\n * @param {Address} account\n * @param {Roles} roles\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>}\n */\n public hasAllRoles(account: Address, roles: Roles, params?: ReadParams) {\n return readRbacHasAllRoles(this._config, {\n address: this.assertValidAddress(),\n args: [account, roles],\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 the given account is authorized to use the rbac\n *\n * @public\n * @param {Address} account\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} - True if the account is authorized\n */\n public isAuthorized(account: Address, params?: ReadParams) {\n return readRbacIsAuthorized(this._config, {\n address: this.assertValidAddress(),\n args: [account],\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 * Transfer ownership of the contract to a new address\n *\n * @public\n * @async\n * @param {Address} newOwner - The address to transfer ownership to\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async transferOwnership(newOwner: Address, params?: WriteParams) {\n return await this.awaitResult(this.transferOwnershipRaw(newOwner, params));\n }\n\n /**\n * Transfer ownership of the contract to a new address\n *\n * @public\n * @async\n * @param {Address} newOwner - The address to transfer ownership to\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async transferOwnershipRaw(newOwner: Address, params?: WriteParams) {\n const { request, result } = await simulateOwnableRolesTransferOwnership(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [newOwner],\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 writeOwnableRolesTransferOwnership(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Renounce ownership of the contract\n *\n * @public\n * @async\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async renounceOwnership(params?: WriteParams) {\n return await this.awaitResult(this.renounceOwnershipRaw(params));\n }\n\n /**\n * Renounce ownership of the contract\n *\n * @public\n * @async\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async renounceOwnershipRaw(params?: WriteParams) {\n const { request, result } = await simulateOwnableRolesRenounceOwnership(\n this._config,\n {\n address: this.assertValidAddress(),\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 writeOwnableRolesRenounceOwnership(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Request a two-step ownership handover to the caller\n * The request will automatically expire in 48 hours\n *\n * Note: This is part of a two-step ownership transfer process:\n * 1. New owner calls requestOwnershipHandover()\n * 2. Current owner calls completeOwnershipHandover(newOwner)\n *\n * @public\n * @async\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async requestOwnershipHandover(params?: WriteParams) {\n return await this.awaitResult(this.requestOwnershipHandoverRaw(params));\n }\n\n /**\n * Request a two-step ownership handover to the caller\n * The request will automatically expire in 48 hours\n *\n * @public\n * @async\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async requestOwnershipHandoverRaw(params?: WriteParams) {\n const { request, result } =\n await simulateOwnableRolesRequestOwnershipHandover(this._config, {\n address: this.assertValidAddress(),\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 writeOwnableRolesRequestOwnershipHandover(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Complete a pending ownership handover to a new owner\n * Must be called by the current owner after the new owner has requested the handover\n *\n * Note: This is part of a two-step ownership transfer process:\n * 1. New owner calls requestOwnershipHandover()\n * 2. Current owner calls completeOwnershipHandover(newOwner)\n *\n * @public\n * @async\n * @param {Address} pendingOwner - The address that requested the ownership handover\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async completeOwnershipHandover(\n pendingOwner: Address,\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.completeOwnershipHandoverRaw(pendingOwner, params),\n );\n }\n\n /**\n * Complete a pending ownership handover to a new owner\n * Must be called by the current owner after the new owner has requested the handover\n *\n * @public\n * @async\n * @param {Address} pendingOwner - The address that requested the ownership handover\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async completeOwnershipHandoverRaw(\n pendingOwner: Address,\n params?: WriteParams,\n ) {\n const { request, result } =\n await simulateOwnableRolesCompleteOwnershipHandover(this._config, {\n address: this.assertValidAddress(),\n args: [pendingOwner],\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 writeOwnableRolesCompleteOwnershipHandover(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Cancel a pending ownership handover request\n * Must be called by the account that originally requested the handover\n *\n * @public\n * @async\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async cancelOwnershipHandover(params?: WriteParams) {\n return await this.awaitResult(this.cancelOwnershipHandoverRaw(params));\n }\n\n /**\n * Cancel a pending ownership handover request\n * Must be called by the account that originally requested the handover\n *\n * @public\n * @async\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async cancelOwnershipHandoverRaw(params?: WriteParams) {\n const { request, result } =\n await simulateOwnableRolesCancelOwnershipHandover(this._config, {\n address: this.assertValidAddress(),\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 writeOwnableRolesCancelOwnershipHandover(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Get the expiry timestamp for a pending ownership handover\n * Returns 0 if there is no pending handover request for the given address\n *\n * @public\n * @param {Address} pendingOwner - The address to check for pending handover requests\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - The timestamp when the handover request expires, or 0 if no request exists\n */\n public ownershipHandoverExpiresAt(\n pendingOwner: Address,\n params?: ReadParams,\n ): Promise<bigint> {\n return readOwnableRolesOwnershipHandoverExpiresAt(this._config, {\n address: this.assertValidAddress(),\n args: [pendingOwner],\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 * Allow the caller to remove their own roles\n * If the caller does not have a role, then it will be a no-op for that role\n *\n * @public\n * @async\n * @param {Roles} roles - Bitmap of roles to renounce\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async renounceRoles(roles: Roles, params?: WriteParams) {\n return await this.awaitResult(this.renounceRolesRaw(roles, params));\n }\n\n /**\n * Allow the caller to remove their own roles\n * If the caller does not have a role, then it will be a no-op for that role\n *\n * @public\n * @async\n * @param {Roles} roles - Bitmap of roles to renounce\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async renounceRolesRaw(roles: Roles, params?: WriteParams) {\n const { request, result } = await simulateOwnableRolesRenounceRoles(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [roles],\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 writeOwnableRolesRenounceRoles(this._config, request);\n return { hash, result };\n }\n}\n"],"names":["Roles","DeployableTargetWithRBAC","DeployableTarget","addresses","allowed","params","request","result","simulateRbacSetAuthorized","writeRbacSetAuthorized","address","role","simulateRbacGrantRoles","writeRbacGrantRoles","simulateRbacRevokeRoles","writeRbacRevokeRoles","roles","simulateRbacGrantManyRoles","writeRbacGrantManyRoles","simulateRbacRevokeManyRoles","writeRbacRevokeManyRoles","account","readRbacRolesOf","readRbacHasAnyRole","readRbacHasAllRoles","readRbacIsAuthorized","newOwner","simulateOwnableRolesTransferOwnership","writeOwnableRolesTransferOwnership","simulateOwnableRolesRenounceOwnership","writeOwnableRolesRenounceOwnership","simulateOwnableRolesRequestOwnershipHandover","writeOwnableRolesRequestOwnershipHandover","pendingOwner","simulateOwnableRolesCompleteOwnershipHandover","writeOwnableRolesCompleteOwnershipHandover","simulateOwnableRolesCancelOwnershipHandover","writeOwnableRolesCancelOwnershipHandover","readOwnableRolesOwnershipHandoverExpiresAt","simulateOwnableRolesRenounceRoles","writeOwnableRolesRenounceRoles"],"mappings":"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"}
@@ -244,5 +244,163 @@ export declare class DeployableTargetWithRBAC<Payload, ABI extends Abi> extends
244
244
  * @returns {Promise<boolean>} - True if the account is authorized
245
245
  */
246
246
  isAuthorized(account: Address, params?: ReadParams): Promise<boolean>;
247
+ /**
248
+ * Transfer ownership of the contract to a new address
249
+ *
250
+ * @public
251
+ * @async
252
+ * @param {Address} newOwner - The address to transfer ownership to
253
+ * @param {?WriteParams} [params]
254
+ * @returns {Promise<void>}
255
+ */
256
+ transferOwnership(newOwner: Address, params?: WriteParams): Promise<void>;
257
+ /**
258
+ * Transfer ownership of the contract to a new address
259
+ *
260
+ * @public
261
+ * @async
262
+ * @param {Address} newOwner - The address to transfer ownership to
263
+ * @param {?WriteParams} [params]
264
+ * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
265
+ */
266
+ transferOwnershipRaw(newOwner: Address, params?: WriteParams): Promise<{
267
+ hash: `0x${string}`;
268
+ result: void;
269
+ }>;
270
+ /**
271
+ * Renounce ownership of the contract
272
+ *
273
+ * @public
274
+ * @async
275
+ * @param {?WriteParams} [params]
276
+ * @returns {Promise<void>}
277
+ */
278
+ renounceOwnership(params?: WriteParams): Promise<void>;
279
+ /**
280
+ * Renounce ownership of the contract
281
+ *
282
+ * @public
283
+ * @async
284
+ * @param {?WriteParams} [params]
285
+ * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
286
+ */
287
+ renounceOwnershipRaw(params?: WriteParams): Promise<{
288
+ hash: `0x${string}`;
289
+ result: void;
290
+ }>;
291
+ /**
292
+ * Request a two-step ownership handover to the caller
293
+ * The request will automatically expire in 48 hours
294
+ *
295
+ * Note: This is part of a two-step ownership transfer process:
296
+ * 1. New owner calls requestOwnershipHandover()
297
+ * 2. Current owner calls completeOwnershipHandover(newOwner)
298
+ *
299
+ * @public
300
+ * @async
301
+ * @param {?WriteParams} [params]
302
+ * @returns {Promise<void>}
303
+ */
304
+ requestOwnershipHandover(params?: WriteParams): Promise<void>;
305
+ /**
306
+ * Request a two-step ownership handover to the caller
307
+ * The request will automatically expire in 48 hours
308
+ *
309
+ * @public
310
+ * @async
311
+ * @param {?WriteParams} [params]
312
+ * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
313
+ */
314
+ requestOwnershipHandoverRaw(params?: WriteParams): Promise<{
315
+ hash: `0x${string}`;
316
+ result: void;
317
+ }>;
318
+ /**
319
+ * Complete a pending ownership handover to a new owner
320
+ * Must be called by the current owner after the new owner has requested the handover
321
+ *
322
+ * Note: This is part of a two-step ownership transfer process:
323
+ * 1. New owner calls requestOwnershipHandover()
324
+ * 2. Current owner calls completeOwnershipHandover(newOwner)
325
+ *
326
+ * @public
327
+ * @async
328
+ * @param {Address} pendingOwner - The address that requested the ownership handover
329
+ * @param {?WriteParams} [params]
330
+ * @returns {Promise<void>}
331
+ */
332
+ completeOwnershipHandover(pendingOwner: Address, params?: WriteParams): Promise<void>;
333
+ /**
334
+ * Complete a pending ownership handover to a new owner
335
+ * Must be called by the current owner after the new owner has requested the handover
336
+ *
337
+ * @public
338
+ * @async
339
+ * @param {Address} pendingOwner - The address that requested the ownership handover
340
+ * @param {?WriteParams} [params]
341
+ * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
342
+ */
343
+ completeOwnershipHandoverRaw(pendingOwner: Address, params?: WriteParams): Promise<{
344
+ hash: `0x${string}`;
345
+ result: void;
346
+ }>;
347
+ /**
348
+ * Cancel a pending ownership handover request
349
+ * Must be called by the account that originally requested the handover
350
+ *
351
+ * @public
352
+ * @async
353
+ * @param {?WriteParams} [params]
354
+ * @returns {Promise<void>}
355
+ */
356
+ cancelOwnershipHandover(params?: WriteParams): Promise<void>;
357
+ /**
358
+ * Cancel a pending ownership handover request
359
+ * Must be called by the account that originally requested the handover
360
+ *
361
+ * @public
362
+ * @async
363
+ * @param {?WriteParams} [params]
364
+ * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
365
+ */
366
+ cancelOwnershipHandoverRaw(params?: WriteParams): Promise<{
367
+ hash: `0x${string}`;
368
+ result: void;
369
+ }>;
370
+ /**
371
+ * Get the expiry timestamp for a pending ownership handover
372
+ * Returns 0 if there is no pending handover request for the given address
373
+ *
374
+ * @public
375
+ * @param {Address} pendingOwner - The address to check for pending handover requests
376
+ * @param {?ReadParams} [params]
377
+ * @returns {Promise<bigint>} - The timestamp when the handover request expires, or 0 if no request exists
378
+ */
379
+ ownershipHandoverExpiresAt(pendingOwner: Address, params?: ReadParams): Promise<bigint>;
380
+ /**
381
+ * Allow the caller to remove their own roles
382
+ * If the caller does not have a role, then it will be a no-op for that role
383
+ *
384
+ * @public
385
+ * @async
386
+ * @param {Roles} roles - Bitmap of roles to renounce
387
+ * @param {?WriteParams} [params]
388
+ * @returns {Promise<void>}
389
+ */
390
+ renounceRoles(roles: Roles, params?: WriteParams): Promise<void>;
391
+ /**
392
+ * Allow the caller to remove their own roles
393
+ * If the caller does not have a role, then it will be a no-op for that role
394
+ *
395
+ * @public
396
+ * @async
397
+ * @param {Roles} roles - Bitmap of roles to renounce
398
+ * @param {?WriteParams} [params]
399
+ * @returns {Promise<{ hash: `0x${string}`; result: void; }>}
400
+ */
401
+ renounceRolesRaw(roles: Roles, params?: WriteParams): Promise<{
402
+ hash: `0x${string}`;
403
+ result: void;
404
+ }>;
247
405
  }
248
406
  //# sourceMappingURL=DeployableTargetWithRBAC.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeployableTargetWithRBAC.d.ts","sourceRoot":"","sources":["../../src/Deployable/DeployableTargetWithRBAC.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DeployableTargetWithRBAC.d.ts","sourceRoot":"","sources":["../../src/Deployable/DeployableTargetWithRBAC.ts"],"names":[],"mappings":"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"}