@boostxyz/sdk 2.2.2 → 3.0.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 (57) hide show
  1. package/dist/Actions/EventAction.cjs +1 -1
  2. package/dist/Actions/EventAction.js +1 -1
  3. package/dist/AllowLists/AllowList.cjs +1 -1
  4. package/dist/AllowLists/AllowList.js +1 -1
  5. package/dist/AllowLists/SimpleAllowList.cjs +1 -1
  6. package/dist/AllowLists/SimpleAllowList.js +1 -1
  7. package/dist/AllowLists/SimpleDenyList.cjs +1 -1
  8. package/dist/AllowLists/SimpleDenyList.js +2 -2
  9. package/dist/BoostCore.cjs +1 -1
  10. package/dist/BoostCore.js +4 -4
  11. package/dist/BoostRegistry.cjs +1 -1
  12. package/dist/BoostRegistry.js +1 -1
  13. package/dist/{Budget-C3eMp8lh.js → Budget-DGPItPqt.js} +2 -2
  14. package/dist/{Budget-C3eMp8lh.js.map → Budget-DGPItPqt.js.map} +1 -1
  15. package/dist/{Budget-BSqx3xcT.cjs → Budget-Dw3jHqDC.cjs} +2 -2
  16. package/dist/{Budget-BSqx3xcT.cjs.map → Budget-Dw3jHqDC.cjs.map} +1 -1
  17. package/dist/Budgets/Budget.cjs +1 -1
  18. package/dist/Budgets/Budget.js +1 -1
  19. package/dist/Budgets/ManagedBudget.cjs +1 -1
  20. package/dist/Budgets/ManagedBudget.js +1 -1
  21. package/dist/{Incentive-BWC9nRgY.cjs → Incentive-BNm7fgJh.cjs} +2 -2
  22. package/dist/{Incentive-BWC9nRgY.cjs.map → Incentive-BNm7fgJh.cjs.map} +1 -1
  23. package/dist/{Incentive-o0qXIACU.js → Incentive-Dxw1wwbl.js} +2 -2
  24. package/dist/{Incentive-o0qXIACU.js.map → Incentive-Dxw1wwbl.js.map} +1 -1
  25. package/dist/Incentives/AllowListIncentive.cjs +1 -1
  26. package/dist/Incentives/AllowListIncentive.js +2 -2
  27. package/dist/Incentives/CGDAIncentive.cjs +1 -1
  28. package/dist/Incentives/CGDAIncentive.js +1 -1
  29. package/dist/Incentives/ERC20Incentive.cjs +1 -1
  30. package/dist/Incentives/ERC20Incentive.js +1 -1
  31. package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs +1 -1
  32. package/dist/Incentives/ERC20VariableCriteriaIncentive.js +1 -1
  33. package/dist/Incentives/ERC20VariableIncentive.cjs +1 -1
  34. package/dist/Incentives/ERC20VariableIncentive.js +1 -1
  35. package/dist/Incentives/Incentive.cjs +1 -1
  36. package/dist/Incentives/Incentive.js +1 -1
  37. package/dist/Incentives/PointsIncentive.cjs +1 -1
  38. package/dist/Incentives/PointsIncentive.js +1 -1
  39. package/dist/{SimpleDenyList-bCzbBEvY.js → SimpleDenyList-CUvdsCvZ.js} +2 -2
  40. package/dist/{SimpleDenyList-bCzbBEvY.js.map → SimpleDenyList-CUvdsCvZ.js.map} +1 -1
  41. package/dist/{SimpleDenyList-Dzs_F7dt.cjs → SimpleDenyList-S6braCCk.cjs} +2 -2
  42. package/dist/{SimpleDenyList-Dzs_F7dt.cjs.map → SimpleDenyList-S6braCCk.cjs.map} +1 -1
  43. package/dist/Validators/LimitedSignerValidator.cjs +1 -1
  44. package/dist/Validators/LimitedSignerValidator.js +1 -1
  45. package/dist/Validators/SignerValidator.cjs +1 -1
  46. package/dist/Validators/SignerValidator.js +1 -1
  47. package/dist/deployments-C7-jUofW.cjs +2 -0
  48. package/dist/deployments-C7-jUofW.cjs.map +1 -0
  49. package/dist/{deployments-DNjIZXvl.js → deployments-Dcywzp8T.js} +47 -35
  50. package/dist/deployments-Dcywzp8T.js.map +1 -0
  51. package/dist/deployments.json +31 -16
  52. package/dist/index.cjs +1 -1
  53. package/dist/index.js +3 -3
  54. package/package.json +1 -1
  55. package/dist/deployments-B1Mh8zRA.cjs +0 -2
  56. package/dist/deployments-B1Mh8zRA.cjs.map +0 -1
  57. package/dist/deployments-DNjIZXvl.js.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";const d=require("./generated-DAZo6jo9.cjs"),u=require("./componentInterfaces-Bt-4sNB5.cjs"),l=require("@wagmi/core"),g=require("./errors.cjs"),r=require("./Budgets/ManagedBudget.cjs"),t=require("viem"),p=require("./deployments-B1Mh8zRA.cjs"),A=require("./Deployable/DeployableTargetWithRBAC.cjs"),m=require("./utils.cjs"),R="0x6080604052348015600e575f80fd5b50601b602b60201b60201c565b6027602b60201b60201c565b60bc565b5f6038609360201b60201c565b90508054600181161560515763f92ee8a95f526004601cfd5b8160c01c808260011c14608e578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b614ba6806100c95f395ff3fe60806040526004361061025f575f3560e01c8063715018a611610143578063dcc21361116100b5578063f8724aba11610079578063f8724aba14610946578063f9a802c314610982578063fa4ca9b1146109be578063fe56e232146109fa578063fe9fbb8014610a22578063fee81cf414610a5e57610266565b8063dcc2136114610880578063ec87621c146108a8578063f04e283e146108d2578063f23a6e61146108ee578063f2fde38b1461092a57610266565b8063b300579311610107578063b30057931461072b578063bc197c8114610768578063be4994f8146107a4578063c6004a3a146107cc578063d2514e8414610808578063d8c12d221461084457610266565b8063715018a61461066757806375b238fc14610671578063774c33ab1461069b5780638da5cb5b146106d7578063a6f7f5d61461070157610266565b80634359d28a116101dc5780634a4ee7b1116101a05780634a4ee7b11461055d578063514e62fc1461057957806354d1f13d146105b5578063578bcf35146105bf5780635aef467a146105fb57806361400c991461062b57610266565b80634359d28a1461046d578063439fab911461049557806343cc96e1146104bd578063451cc191146104e5578063474f5a441461052157610266565b80631c10893f116102235780631c10893f146103a55780631cd64df4146103c157806325692962146103fd57806328d6183b146104075780632de948071461043157610266565b806301ffc9a71461029857806310098ad5146102d457806314135ce014610310578063183a4f6e1461034c578063185832a31461036857610266565b3661026657005b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3480156102a3575f80fd5b506102be60048036038101906102b991906133d9565b610a9a565b6040516102cb919061341e565b60405180910390f35b3480156102df575f80fd5b506102fa60048036038101906102f59190613491565b610aab565b60405161030791906134d4565b60405180910390f35b34801561031b575f80fd5b5061033660048036038101906103319190613491565b610b04565b60405161034391906134d4565b60405180910390f35b61036660048036038101906103619190613517565b610b19565b005b348015610373575f80fd5b5061038e600480360381019061038991906135a3565b610b26565b60405161039c929190613636565b60405180910390f35b6103bf60048036038101906103ba919061365d565b610b51565b005b3480156103cc575f80fd5b506103e760048036038101906103e2919061365d565b610b67565b6040516103f4919061341e565b60405180910390f35b610405610b7d565b005b348015610412575f80fd5b5061041b610bce565b60405161042891906136aa565b60405180910390f35b34801561043c575f80fd5b5061045760048036038101906104529190613491565b610bf5565b60405161046491906134d4565b60405180910390f35b348015610478575f80fd5b50610493600480360381019061048e919061376d565b610c0e565b005b3480156104a0575f80fd5b506104bb60048036038101906104b691906137eb565b610d1c565b005b3480156104c8575f80fd5b506104e360048036038101906104de9190613836565b610efe565b005b3480156104f0575f80fd5b5061050b600480360381019061050691906137eb565b61131d565b60405161051891906134d4565b60405180910390f35b34801561052c575f80fd5b50610547600480360381019061054291906137eb565b611324565b60405161055491906134d4565b60405180910390f35b6105776004803603810190610572919061365d565b61151d565b005b348015610584575f80fd5b5061059f600480360381019061059a919061365d565b611533565b6040516105ac919061341e565b60405180910390f35b6105bd61154a565b005b3480156105ca575f80fd5b506105e560048036038101906105e09190613491565b611583565b6040516105f291906134d4565b60405180910390f35b610615600480360381019061061091906137eb565b6115c9565b604051610622919061341e565b60405180910390f35b348015610636575f80fd5b50610651600480360381019061064c91906138c9565b611939565b60405161065e919061341e565b60405180910390f35b61066f61199d565b005b34801561067c575f80fd5b506106856119b0565b60405161069291906134d4565b60405180910390f35b3480156106a6575f80fd5b506106c160048036038101906106bc919061365d565b6119b5565b6040516106ce91906134d4565b60405180910390f35b3480156106e2575f80fd5b506106eb611a0b565b6040516106f89190613914565b60405180910390f35b34801561070c575f80fd5b50610715611a33565b60405161072291906134d4565b60405180910390f35b348015610736575f80fd5b50610751600480360381019061074c91906135a3565b611a39565b60405161075f929190613636565b60405180910390f35b348015610773575f80fd5b5061078e60048036038101906107899190613982565b611bf7565b60405161079b91906136aa565b60405180910390f35b3480156107af575f80fd5b506107ca60048036038101906107c59190613a59565b611c0e565b005b3480156107d7575f80fd5b506107f260048036038101906107ed9190613491565b611cc4565b6040516107ff91906134d4565b60405180910390f35b348015610813575f80fd5b5061082e60048036038101906108299190613491565b611cd9565b60405161083b91906134d4565b60405180910390f35b34801561084f575f80fd5b5061086a60048036038101906108659190613491565b611d7a565b60405161087791906134d4565b60405180910390f35b34801561088b575f80fd5b506108a660048036038101906108a19190613a59565b611d8f565b005b3480156108b3575f80fd5b506108bc611e45565b6040516108c991906134d4565b60405180910390f35b6108ec60048036038101906108e79190613491565b611e4a565b005b3480156108f9575f80fd5b50610914600480360381019061090f9190613ad7565b611e88565b60405161092191906136aa565b60405180910390f35b610944600480360381019061093f9190613491565b611e9d565b005b348015610951575f80fd5b5061096c6004803603810190610967919061365d565b611ec6565b60405161097991906134d4565b60405180910390f35b34801561098d575f80fd5b506109a860048036038101906109a3919061365d565b611f48565b6040516109b591906134d4565b60405180910390f35b3480156109c9575f80fd5b506109e460048036038101906109df91906137eb565b612021565b6040516109f1919061341e565b60405180910390f35b348015610a05575f80fd5b50610a206004803603810190610a1b9190613517565b6123fc565b005b348015610a2d575f80fd5b50610a486004803603810190610a439190613491565b61248e565b604051610a55919061341e565b60405180910390f35b348015610a69575f80fd5b50610a846004803603810190610a7f9190613491565b6124e1565b604051610a9191906134d4565b60405180910390f35b5f610aa4826124fa565b9050919050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610af383612573565b610afd9190613b9a565b9050919050565b6004602052805f5260405f205f915090505481565b610b2333826125de565b50565b5f80610b358787878787611a39565b8092508193505050610b478484610efe565b9550959350505050565b610b596125ed565b610b638282612624565b5050565b5f8182610b7385610bf5565b1614905092915050565b5f610b86612634565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7fde98bbf000000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b6002610c198161263e565b828290508585905014610c58576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015610d14575f848483818110610c7957610c78613bcd565b5b9050602002016020810190610c8e9190613c24565b90506001151581151503610cd357610cce878784818110610cb257610cb1613bcd565b5b9050602002016020810190610cc79190613491565b6001612624565b610d06565b610d05878784818110610ce957610ce8613bcd565b5b9050602002016020810190610cfe9190613491565b60016125de565b5b508080600101915050610c5a565b505050505050565b5f610d25612673565b90508054600382558015610d575760018160011c14303b10610d4e5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8383810190610d689190613f0c565b9050610d76815f015161269c565b5f5b816020015151811015610dd857610dcb82602001518281518110610d9f57610d9e613bcd565b5b602002602001015183604001518381518110610dbe57610dbd613bcd565b5b6020026020010151612772565b8080600101915050610d78565b505f81602001515103610e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1790613fad565b60405180910390fd5b80602001515f81518110610e3757610e36613bcd565b5b60200260200101515f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080606001516001819055507f74f254e69f1d1aa50fbf15b184112c15530415ac9f4b4bf2b75778c6befd09788160600151604051610ebb91906134d4565b60405180910390a1508015610ef9576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166313c8e2de846040518263ffffffff1660e01b8152600401610f5891906134d4565b5f60405180830381865afa158015610f72573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610f9a919061430b565b90505f81608001518381518110610fb457610fb3613bcd565b5b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f7cc1d5bb000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161101791906136aa565b602060405180830381865afa158015611032573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110569190614366565b15611153575f8173ffffffffffffffffffffffffffffffffffffffff1663dcc59b6f6040518163ffffffff1660e01b81526004016020604051808303815f875af11580156110a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ca9190614391565b90505f8273ffffffffffffffffffffffffffffffffffffffff1663a4d66daf6040518163ffffffff1660e01b81526004016020604051808303815f875af1158015611117573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061113b9190614391565b905061114a86868685856127b3565b50505050611319565b8073ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f90318111000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016111ac91906136aa565b602060405180830381865afa1580156111c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111eb9190614366565b156112e7575f8173ffffffffffffffffffffffffffffffffffffffff1663d54ad2a16040518163ffffffff1660e01b81526004016020604051808303815f875af115801561123b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061125f9190614391565b90505f8273ffffffffffffffffffffffffffffffffffffffff1663a4d66daf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112cf9190614391565b90506112de86868685856127b3565b50505050611319565b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b5f92915050565b5f60026113308161263e565b5f84848101906113409190614520565b90505f80600281111561135657611355614567565b5b825f0151600281111561136c5761136b614567565b5b148061139f57506001600281111561138757611386614567565b5b825f0151600281111561139d5761139c614567565b5b145b156113fe575f82606001518060200190518101906113bd91906145cd565b90506113f2836020015184604001515f845f0151146113df57835f01516113ed565b6113ec8660200151610aab565b5b612ac8565b805f0151915050611510565b60028081111561141157611410614567565b5b825f0151600281111561142757611426614567565b5b03611505575f826060015180602001905181019061144591906146f1565b90506114f883602001518460400151835f01515f85602001511461146d5784602001516114ee565b866020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30875f01516040518363ffffffff1660e01b81526004016114ae929190614738565b602060405180830381865afa1580156114c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114ed9190614391565b5b8560400151612c8e565b806020015191505061150f565b8093505050611516565b5b80935050505b5092915050565b6115256125ed565b61152f82826125de565b5050565b5f808261153f85610bf5565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8083838101906115da9190614520565b90505f60028111156115ef576115ee614567565b5b815f0151600281111561160557611604614567565b5b0361167b575f816060015180602001905181019061162391906145cd565b9050805f01513414611675578160200151815f01516040517fcece04c500000000000000000000000000000000000000000000000000000000815260040161166c929190614738565b60405180910390fd5b5061192d565b6001600281111561168f5761168e614567565b5b815f015160028111156116a5576116a4614567565b5b03611780575f81606001518060200190518101906116c391906145cd565b90506116fd826040015130835f0151856020015173ffffffffffffffffffffffffffffffffffffffff16612eba909392919063ffffffff16565b805f015161172e30846020015173ffffffffffffffffffffffffffffffffffffffff16612f1490919063ffffffff16565b101561177a578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401611771929190614738565b60405180910390fd5b5061192c565b60028081111561179357611792614567565b5b815f015160028111156117a9576117a8614567565b5b03611922575f81606001518060200190518101906117c791906146f1565b9050816020015173ffffffffffffffffffffffffffffffffffffffff1663f242432a836040015130845f0151856020015186604001516040518663ffffffff1660e01b815260040161181d9594939291906147b1565b5f604051808303815f87803b158015611834575f80fd5b505af1158015611846573d5f803e3d5ffd5b505050508060200151826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b8152600401611890929190614738565b602060405180830381865afa1580156118ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118cf9190614391565b101561191c57816020015181602001516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401611913929190614738565b60405180910390fd5b5061192b565b5f915050611933565b5b5b60019150505b92915050565b5f805f90505b83839050811015611991576119778484838181106119605761195f613bcd565b5b90506020028101906119729190614815565b612021565b611984575f915050611997565b808060010191505061193f565b50600190505b92915050565b6119a56125ed565b6119ae5f612f47565b565b600281565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60015481565b5f80611a443361248e565b611a7a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60405180604001604052803073ffffffffffffffffffffffffffffffffffffffff16815260200188888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081525090505f8890505f808273ffffffffffffffffffffffffffffffffffffffff1663dd98558c85604051602001611b1e9190614908565b6040516020818303038152906040528a8a6040518463ffffffff1660e01b8152600401611b4d93929190614928565b60408051808303815f875af1158015611b68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b8c9190614964565b915091508160055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611bdc9190613b9a565b92505081905550818195509550505050509550959350505050565b5f63bc197c8160e01b905098975050505050505050565b6002611c198161263e565b828290508585905014611c58576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015611cbc57611caf868683818110611c7b57611c7a613bcd565b5b9050602002016020810190611c909190613491565b858584818110611ca357611ca2613bcd565b5b90506020020135612624565b8080600101915050611c5a565b505050505050565b6003602052805f5260405f205f915090505481565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d5f84610aab565b611d6991906149a2565b611d7391906149a2565b9050919050565b6002602052805f5260405f205f915090505481565b6002611d9a8161263e565b828290508585905014611dd9576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015611e3d57611e30868683818110611dfc57611dfb613bcd565b5b9050602002016020810190611e119190613491565b858584818110611e2457611e23613bcd565b5b905060200201356125de565b8080600101915050611ddb565b505050505050565b600181565b611e526125ed565b63389a75e1600c52805f526020600c208054421115611e7857636f5e88185f526004601cfd5b5f815550611e8581612f47565b50565b5f63f23a6e6160e01b90509695505050505050565b611ea56125ed565b8060601b611eba57637448fbae5f526004601cfd5b611ec381612f47565b50565b5f8273ffffffffffffffffffffffffffffffffffffffff1662fdd58e30846040518363ffffffff1660e01b8152600401611f01929190614738565b602060405180830381865afa158015611f1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f409190614391565b905092915050565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20548373ffffffffffffffffffffffffffffffffffffffff1662fdd58e30856040518363ffffffff1660e01b8152600401611fd0929190614738565b602060405180830381865afa158015611feb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061200f9190614391565b61201991906149a2565b905092915050565b5f61202b3361248e565b612061576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f83838101906120719190614520565b90506001600281111561208757612086614567565b5b815f0151600281111561209d5761209c614567565b5b14806120cf57505f60028111156120b7576120b6614567565b5b815f015160028111156120cd576120cc614567565b5b145b1561229e575f81606001518060200190518101906120ed91906145cd565b90505f612710600154835f015161210491906149d5565b61210e9190614a43565b90505f61211e8460200151610aab565b90508082845f015161213091906149a2565b11156121895783602001518183855f015161214b91906149a2565b6040517f5c54305e00000000000000000000000000000000000000000000000000000000815260040161218093929190614a73565b60405180910390fd5b8160025f866040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160045f866020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461221f91906149a2565b92505081905550825f015160055f866020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461227991906149a2565b9250508190555061229684602001518560400151855f0151612ac8565b5050506123f0565b6002808111156122b1576122b0614567565b5b815f015160028111156122c7576122c6614567565b5b036123e6575f81606001518060200190518101906122e591906146f1565b90505f826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b8152600401612329929190614738565b602060405180830381865afa158015612344573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123689190614391565b905080826020015111156123bf5782602001518183602001516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016123b693929190614a73565b60405180910390fd5b6123df83602001518460400151845f015185602001518660400151612c8e565b50506123ef565b5f9150506123f6565b5b60019150505b92915050565b60026124078161263e565b61271082111561244c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244390614af2565b60405180910390fd5b816001819055507f74f254e69f1d1aa50fbf15b184112c15530415ac9f4b4bf2b75778c6befd09788260405161248291906134d4565b60405180910390a15050565b5f8173ffffffffffffffffffffffffffffffffffffffff166124ae611a0b565b73ffffffffffffffffffffffffffffffffffffffff1614806124da57506124d9826002600117611533565b5b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fde98bbf0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061256c575061256b8261300d565b5b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146125d5576125d0308373ffffffffffffffffffffffffffffffffffffffff16612f1490919063ffffffff16565b6125d7565b475b9050919050565b6125e982825f613156565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314612622576382b429005f526004601cfd5b565b61263082826001613156565b5050565b5f6202a300905090565b638b78c6d81954331461267057638b78c6d8600c52335f52806020600c20541661266f576382b429005f526004601cfd5b5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6126a46131ae565b1561271c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156126de57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061276f565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b5f836080015185815181106127cb576127ca613bcd565b5b602002602001015190505f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8185878561286691906149d5565b6128709190614a43565b61287a9190613b9a565b9050808261288891906149a2565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f8473ffffffffffffffffffffffffffffffffffffffff166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612913573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129379190614b10565b90505f8860e0015190508260045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461298d9190613b9a565b925050819055505f83036129cd576040517fb2e783cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8483856129da91906149a2565b03612a605760025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f905560035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f90555b8073ffffffffffffffffffffffffffffffffffffffff168a8c7ff44ff640e648077f3acc130c6ce75240070e8c40adc85b0feeeec28d9dd921b486604051612aa891906134d4565b60405180910390a4612abb828285612ac8565b5050505050505050505050565b3068929eee149b4bd212685403612ae65763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612b66578282826040517fbf182be8000000000000000000000000000000000000000000000000000000008152600401612b5d93929190614b3b565b60405180910390fd5b612b6f83610aab565b811115612bbf5782612b8084610aab565b826040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401612bb693929190614a73565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612c0157612bfc82826131b2565b612c2d565b612c2c82828573ffffffffffffffffffffffffffffffffffffffff166131cf9092919063ffffffff16565b5b8273ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd435428383604051612c75929190614738565b60405180910390a23868929eee149b4bd2126855505050565b3068929eee149b4bd212685403612cac5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612d2c578484836040517fbf182be8000000000000000000000000000000000000000000000000000000008152600401612d2393929190614b3b565b60405180910390fd5b612d368584611ec6565b821115612d875784612d488685611ec6565b836040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401612d7e93929190614a73565b60405180910390fd5b8160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f205f828254612de291906149a2565b925050819055508473ffffffffffffffffffffffffffffffffffffffff1663f242432a30868686866040518663ffffffff1660e01b8152600401612e2a9594939291906147b1565b5f604051808303815f87803b158015612e41575f80fd5b505af1158015612e53573d5f803e3d5ffd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd435428584604051612e9f929190614738565b60405180910390a23868929eee149b4bd21268555050505050565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f51141716612f0557637939f4245f526004601cfd5b5f606052806040525050505050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b612f4f6131ae565b15612fb4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061300a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f7f5fbfaa4e000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806130d757507f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061313f57507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061314f575061314e82613218565b5b9050919050565b638b78c6d8600c52825f526020600c2080548381178361317857848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f385f3884865af16131cb5763b12d13eb5f526004601cfd5b5050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f5114171661320f576390b8ec185f526004601cfd5b5f603452505050565b5f7fe49cedd7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061328a575061328982613291565b5b9050919050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061330357506133028261330a565b5b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6133b881613384565b81146133c2575f80fd5b50565b5f813590506133d3816133af565b92915050565b5f602082840312156133ee576133ed61337c565b5b5f6133fb848285016133c5565b91505092915050565b5f8115159050919050565b61341881613404565b82525050565b5f6020820190506134315f83018461340f565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61346082613437565b9050919050565b61347081613456565b811461347a575f80fd5b50565b5f8135905061348b81613467565b92915050565b5f602082840312156134a6576134a561337c565b5b5f6134b38482850161347d565b91505092915050565b5f819050919050565b6134ce816134bc565b82525050565b5f6020820190506134e75f8301846134c5565b92915050565b6134f6816134bc565b8114613500575f80fd5b50565b5f81359050613511816134ed565b92915050565b5f6020828403121561352c5761352b61337c565b5b5f61353984828501613503565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261356357613562613542565b5b8235905067ffffffffffffffff8111156135805761357f613546565b5b60208301915083600182028301111561359c5761359b61354a565b5b9250929050565b5f805f805f608086880312156135bc576135bb61337c565b5b5f6135c98882890161347d565b955050602086013567ffffffffffffffff8111156135ea576135e9613380565b5b6135f68882890161354e565b9450945050604061360988828901613503565b925050606061361a88828901613503565b9150509295509295909350565b61363081613456565b82525050565b5f6040820190506136495f8301856134c5565b6136566020830184613627565b9392505050565b5f80604083850312156136735761367261337c565b5b5f6136808582860161347d565b925050602061369185828601613503565b9150509250929050565b6136a481613384565b82525050565b5f6020820190506136bd5f83018461369b565b92915050565b5f8083601f8401126136d8576136d7613542565b5b8235905067ffffffffffffffff8111156136f5576136f4613546565b5b6020830191508360208202830111156137115761371061354a565b5b9250929050565b5f8083601f84011261372d5761372c613542565b5b8235905067ffffffffffffffff81111561374a57613749613546565b5b6020830191508360208202830111156137665761376561354a565b5b9250929050565b5f805f80604085870312156137855761378461337c565b5b5f85013567ffffffffffffffff8111156137a2576137a1613380565b5b6137ae878288016136c3565b9450945050602085013567ffffffffffffffff8111156137d1576137d0613380565b5b6137dd87828801613718565b925092505092959194509250565b5f80602083850312156138015761380061337c565b5b5f83013567ffffffffffffffff81111561381e5761381d613380565b5b61382a8582860161354e565b92509250509250929050565b5f806040838503121561384c5761384b61337c565b5b5f61385985828601613503565b925050602061386a85828601613503565b9150509250929050565b5f8083601f84011261388957613888613542565b5b8235905067ffffffffffffffff8111156138a6576138a5613546565b5b6020830191508360208202830111156138c2576138c161354a565b5b9250929050565b5f80602083850312156138df576138de61337c565b5b5f83013567ffffffffffffffff8111156138fc576138fb613380565b5b61390885828601613874565b92509250509250929050565b5f6020820190506139275f830184613627565b92915050565b5f8083601f84011261394257613941613542565b5b8235905067ffffffffffffffff81111561395f5761395e613546565b5b60208301915083602082028301111561397b5761397a61354a565b5b9250929050565b5f805f805f805f8060a0898b03121561399e5761399d61337c565b5b5f6139ab8b828c0161347d565b98505060206139bc8b828c0161347d565b975050604089013567ffffffffffffffff8111156139dd576139dc613380565b5b6139e98b828c0161392d565b9650965050606089013567ffffffffffffffff811115613a0c57613a0b613380565b5b613a188b828c0161392d565b9450945050608089013567ffffffffffffffff811115613a3b57613a3a613380565b5b613a478b828c0161354e565b92509250509295985092959890939650565b5f805f8060408587031215613a7157613a7061337c565b5b5f85013567ffffffffffffffff811115613a8e57613a8d613380565b5b613a9a878288016136c3565b9450945050602085013567ffffffffffffffff811115613abd57613abc613380565b5b613ac98782880161392d565b925092505092959194509250565b5f805f805f8060a08789031215613af157613af061337c565b5b5f613afe89828a0161347d565b9650506020613b0f89828a0161347d565b9550506040613b2089828a01613503565b9450506060613b3189828a01613503565b935050608087013567ffffffffffffffff811115613b5257613b51613380565b5b613b5e89828a0161354e565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613ba4826134bc565b9150613baf836134bc565b9250828203905081811115613bc757613bc6613b6d565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b613c0381613404565b8114613c0d575f80fd5b50565b5f81359050613c1e81613bfa565b92915050565b5f60208284031215613c3957613c3861337c565b5b5f613c4684828501613c10565b91505092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613c9982613c53565b810181811067ffffffffffffffff82111715613cb857613cb7613c63565b5b80604052505050565b5f613cca613373565b9050613cd68282613c90565b919050565b5f80fd5b5f67ffffffffffffffff821115613cf957613cf8613c63565b5b602082029050602081019050919050565b5f613d1c613d1784613cdf565b613cc1565b90508083825260208201905060208402830185811115613d3f57613d3e61354a565b5b835b81811015613d685780613d54888261347d565b845260208401935050602081019050613d41565b5050509392505050565b5f82601f830112613d8657613d85613542565b5b8135613d96848260208601613d0a565b91505092915050565b5f67ffffffffffffffff821115613db957613db8613c63565b5b602082029050602081019050919050565b5f613ddc613dd784613d9f565b613cc1565b90508083825260208201905060208402830185811115613dff57613dfe61354a565b5b835b81811015613e285780613e148882613503565b845260208401935050602081019050613e01565b5050509392505050565b5f82601f830112613e4657613e45613542565b5b8135613e56848260208601613dca565b91505092915050565b5f60808284031215613e7457613e73613c4f565b5b613e7e6080613cc1565b90505f613e8d8482850161347d565b5f83015250602082013567ffffffffffffffff811115613eb057613eaf613cdb565b5b613ebc84828501613d72565b602083015250604082013567ffffffffffffffff811115613ee057613edf613cdb565b5b613eec84828501613e32565b6040830152506060613f0084828501613503565b60608301525092915050565b5f60208284031215613f2157613f2061337c565b5b5f82013567ffffffffffffffff811115613f3e57613f3d613380565b5b613f4a84828501613e5f565b91505092915050565b5f82825260208201905092915050565b7f6e6f20636f726520636f6e7472616374207365740000000000000000000000005f82015250565b5f613f97601483613f53565b9150613fa282613f63565b602082019050919050565b5f6020820190508181035f830152613fc481613f8b565b9050919050565b5f613fd582613456565b9050919050565b613fe581613fcb565b8114613fef575f80fd5b50565b5f8151905061400081613fdc565b92915050565b5f61401082613456565b9050919050565b61402081614006565b811461402a575f80fd5b50565b5f8151905061403b81614017565b92915050565b5f61404b82613456565b9050919050565b61405b81614041565b8114614065575f80fd5b50565b5f8151905061407681614052565b92915050565b5f61408682613437565b9050919050565b5f6140978261407c565b9050919050565b6140a78161408d565b81146140b1575f80fd5b50565b5f815190506140c28161409e565b92915050565b5f67ffffffffffffffff8211156140e2576140e1613c63565b5b602082029050602081019050919050565b5f6140fd82613456565b9050919050565b61410d816140f3565b8114614117575f80fd5b50565b5f8151905061412881614104565b92915050565b5f61414061413b846140c8565b613cc1565b905080838252602082019050602084028301858111156141635761416261354a565b5b835b8181101561418c5780614178888261411a565b845260208401935050602081019050614165565b5050509392505050565b5f82601f8301126141aa576141a9613542565b5b81516141ba84826020860161412e565b91505092915050565b5f67ffffffffffffffff82169050919050565b6141df816141c3565b81146141e9575f80fd5b50565b5f815190506141fa816141d6565b92915050565b5f8151905061420e816134ed565b92915050565b5f8151905061422281613467565b92915050565b5f610100828403121561423e5761423d613c4f565b5b614249610100613cc1565b90505f61425884828501613ff2565b5f83015250602061426b8482850161402d565b602083015250604061427f84828501614068565b6040830152506060614293848285016140b4565b606083015250608082015167ffffffffffffffff8111156142b7576142b6613cdb565b5b6142c384828501614196565b60808301525060a06142d7848285016141ec565b60a08301525060c06142eb84828501614200565b60c08301525060e06142ff84828501614214565b60e08301525092915050565b5f602082840312156143205761431f61337c565b5b5f82015167ffffffffffffffff81111561433d5761433c613380565b5b61434984828501614228565b91505092915050565b5f8151905061436081613bfa565b92915050565b5f6020828403121561437b5761437a61337c565b5b5f61438884828501614352565b91505092915050565b5f602082840312156143a6576143a561337c565b5b5f6143b384828501614200565b91505092915050565b600381106143c8575f80fd5b50565b5f813590506143d9816143bc565b92915050565b5f80fd5b5f67ffffffffffffffff8211156143fd576143fc613c63565b5b61440682613c53565b9050602081019050919050565b828183375f83830152505050565b5f61443361442e846143e3565b613cc1565b90508281526020810184848401111561444f5761444e6143df565b5b61445a848285614413565b509392505050565b5f82601f83011261447657614475613542565b5b8135614486848260208601614421565b91505092915050565b5f608082840312156144a4576144a3613c4f565b5b6144ae6080613cc1565b90505f6144bd848285016143cb565b5f8301525060206144d08482850161347d565b60208301525060406144e48482850161347d565b604083015250606082013567ffffffffffffffff81111561450857614507613cdb565b5b61451484828501614462565b60608301525092915050565b5f602082840312156145355761453461337c565b5b5f82013567ffffffffffffffff81111561455257614551613380565b5b61455e8482850161448f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f602082840312156145a9576145a8613c4f565b5b6145b36020613cc1565b90505f6145c284828501614200565b5f8301525092915050565b5f602082840312156145e2576145e161337c565b5b5f6145ef84828501614594565b91505092915050565b8281835e5f83830152505050565b5f614618614613846143e3565b613cc1565b905082815260208101848484011115614634576146336143df565b5b61463f8482856145f8565b509392505050565b5f82601f83011261465b5761465a613542565b5b815161466b848260208601614606565b91505092915050565b5f6060828403121561468957614688613c4f565b5b6146936060613cc1565b90505f6146a284828501614200565b5f8301525060206146b584828501614200565b602083015250604082015167ffffffffffffffff8111156146d9576146d8613cdb565b5b6146e584828501614647565b60408301525092915050565b5f602082840312156147065761470561337c565b5b5f82015167ffffffffffffffff81111561472357614722613380565b5b61472f84828501614674565b91505092915050565b5f60408201905061474b5f830185613627565b61475860208301846134c5565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b5f6147838261475f565b61478d8185614769565b935061479d8185602086016145f8565b6147a681613c53565b840191505092915050565b5f60a0820190506147c45f830188613627565b6147d16020830187613627565b6147de60408301866134c5565b6147eb60608301856134c5565b81810360808301526147fd8184614779565b90509695505050505050565b5f80fd5b5f80fd5b5f80fd5b5f808335600160200384360303811261483157614830614809565b5b80840192508235915067ffffffffffffffff8211156148535761485261480d565b5b60208301925060018202360383131561486f5761486e614811565b5b509250929050565b61488081613456565b82525050565b5f82825260208201905092915050565b5f6148a08261475f565b6148aa8185614886565b93506148ba8185602086016145f8565b6148c381613c53565b840191505092915050565b5f604083015f8301516148e35f860182614877565b50602083015184820360208601526148fb8282614896565b9150508091505092915050565b5f6020820190508181035f83015261492081846148ce565b905092915050565b5f6060820190508181035f8301526149408186614779565b905061494f60208301856134c5565b61495c60408301846134c5565b949350505050565b5f806040838503121561497a5761497961337c565b5b5f61498785828601614200565b925050602061499885828601614214565b9150509250929050565b5f6149ac826134bc565b91506149b7836134bc565b92508282019050808211156149cf576149ce613b6d565b5b92915050565b5f6149df826134bc565b91506149ea836134bc565b92508282026149f8816134bc565b91508282048414831517614a0f57614a0e613b6d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614a4d826134bc565b9150614a58836134bc565b925082614a6857614a67614a16565b5b828204905092915050565b5f606082019050614a865f830186613627565b614a9360208301856134c5565b614aa060408301846134c5565b949350505050565b7f4665652063616e6e6f74206578636565642031303025000000000000000000005f82015250565b5f614adc601683613f53565b9150614ae782614aa8565b602082019050919050565b5f6020820190508181035f830152614b0981614ad0565b9050919050565b5f60208284031215614b2557614b2461337c565b5b5f614b3284828501614214565b91505092915050565b5f606082019050614b4e5f830186613627565b614b5b6020830185613627565b614b6860408301846134c5565b94935050505056fea2646970667358221220534f1d7ff748f85a2c6e450291819d88bad09ea01cc040a573543ce8f29ad27e64736f6c634300081a0033",o=class o extends A.DeployableTargetWithRBAC{constructor(){super(...arguments),this.abi=d.o}async allocate(f,b){return await this.awaitResult(this.allocateRaw(f,b))}async allocateRaw(f,b){const{request:a,result:e}=await d.IO(this._config,{address:this.assertValidAddress(),args:[r.prepareTransfer(f)],...this.optionallyAttachAccount(),...b});return{hash:await d.aO(this._config,a),result:e}}async clawback(f,b){return await this.awaitResult(this.clawbackRaw(f,b))}async clawbackRaw(f,b){const{request:a,result:e}=await d.NO(this._config,{address:this.assertValidAddress(),args:[r.prepareTransfer(f)],...this.optionallyAttachAccount(),...b});return{hash:await d.sO(this._config,a),result:e}}async clawbackFromTarget(f,b,a,e,c){return await this.awaitResult(this.clawbackFromTargetRaw(f,b,a,e,c))}async clawbackFromTargetRaw(f,b,a,e,c){const{request:s,result:y}=await d.MO(this._config,{address:this.assertValidAddress(),args:[f,b,BigInt(a),BigInt(e)],...this.optionallyAttachAccount(),...c});return{hash:await d.rO(this._config,s),result:y}}async disburse(f,b){return await this.awaitResult(this.disburseRaw(f,b))}async disburseRaw(f,b){const{request:a,result:e}=await d.OO(this._config,{address:this.assertValidAddress(),args:[r.prepareTransfer(f)],...this.optionallyAttachAccount(),...b});return{hash:await d.pO(this._config,a),result:e}}async disburseBatch(f,b){return await this.awaitResult(this.disburseBatchRaw(f,b))}async disburseBatchRaw(f,b){const{request:a,result:e}=await d.CO(this._config,{address:this.assertValidAddress(),args:[f.map(r.prepareTransfer)],...this.optionallyAttachAccount(),...b});return{hash:await d.uO(this._config,a),result:e}}async payManagementFee(f,b,a){return await this.awaitResult(this.payManagementFeeRaw(f,b,a))}async payManagementFeeRaw(f,b,a){const{request:e,result:c}=await d.jC(this._config,{address:this.assertValidAddress(),args:[f,b],...this.optionallyAttachAccount(),...a});return{hash:await d.MC(this._config,e),result:c}}async setManagementFee(f,b){return await this.awaitResult(this.setManagementFeeRaw(f,b))}async setManagementFeeRaw(f,b){const{request:a,result:e}=await d.tE(this._config,{address:this.assertValidAddress(),args:[f],...this.optionallyAttachAccount(),...b});return{hash:await d.xC(this._config,a),result:e}}async managementFee(f){return await d.iC(this._config,{address:this.assertValidAddress(),args:[],...f})}owner(f){return d.K6(this._config,{address:this.assertValidAddress(),args:[],...f})}total(f=t.zeroAddress,b,a){return d.tO(this._config,{address:this.assertValidAddress(),args:b?[f,b]:[f],...a})}available(f=t.zeroAddress,b,a){return d.G6(this._config,{address:this.assertValidAddress(),args:b?[f,b]:[f],...a})}distributed(f=t.zeroAddress,b,a){return d.U6(this._config,{address:this.assertValidAddress(),args:b?[f,b]:[f],...a})}buildParameters(f,b){var c;const[a,e]=this.validateDeploymentConfig(f,b);if(!a.owner||a.owner===t.zeroAddress){const s=e.account?e.account.address:e.config?l.getAccount(e.config).address:(c=this._account)==null?void 0:c.address;if(s)a.owner=s;else throw new g.DeployableUnknownOwnerProvidedError}return{abi:d.o,bytecode:R,args:[w(a)],...this.optionallyAttachAccount(e.account)}}};o.bases={31337:void 0,...p.ManagedBudgetWithFees},o.registryType=m.RegistryType.BUDGET;let n=o;const w=({owner:i,authorized:f,roles:b,managementFee:a})=>t.encodeAbiParameters(t.parseAbiParameters(["ManagedBudgetWithFeesPayload payload","struct ManagedBudgetWithFeesPayload { address owner; address[] authorized; uint256[] roles; uint256 managementFee; }"]),[{owner:i,authorized:f,roles:b,managementFee:a}]),h={[u.AManagedBudget]:r.ManagedBudget,[u.AManagedBudgetWithFees]:n};async function B(i,f,b){const a=await l.readContract(i.config,{abi:d.w,functionName:"getComponentInterface",address:f,...b}),e=h[a];if(!e)throw new g.InvalidComponentInterfaceError(Object.keys(h),a);return new e(i,f)}exports.BudgetByComponentInterface=h;exports.ManagedBudgetWithFees=n;exports.budgetFromAddress=B;exports.prepareManagedBudgetWithFeesPayload=w;
2
- //# sourceMappingURL=Budget-BSqx3xcT.cjs.map
1
+ "use strict";const d=require("./generated-DAZo6jo9.cjs"),u=require("./componentInterfaces-Bt-4sNB5.cjs"),l=require("@wagmi/core"),g=require("./errors.cjs"),r=require("./Budgets/ManagedBudget.cjs"),t=require("viem"),p=require("./deployments-C7-jUofW.cjs"),A=require("./Deployable/DeployableTargetWithRBAC.cjs"),m=require("./utils.cjs"),R="0x6080604052348015600e575f80fd5b50601b602b60201b60201c565b6027602b60201b60201c565b60bc565b5f6038609360201b60201c565b90508054600181161560515763f92ee8a95f526004601cfd5b8160c01c808260011c14608e578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b614ba6806100c95f395ff3fe60806040526004361061025f575f3560e01c8063715018a611610143578063dcc21361116100b5578063f8724aba11610079578063f8724aba14610946578063f9a802c314610982578063fa4ca9b1146109be578063fe56e232146109fa578063fe9fbb8014610a22578063fee81cf414610a5e57610266565b8063dcc2136114610880578063ec87621c146108a8578063f04e283e146108d2578063f23a6e61146108ee578063f2fde38b1461092a57610266565b8063b300579311610107578063b30057931461072b578063bc197c8114610768578063be4994f8146107a4578063c6004a3a146107cc578063d2514e8414610808578063d8c12d221461084457610266565b8063715018a61461066757806375b238fc14610671578063774c33ab1461069b5780638da5cb5b146106d7578063a6f7f5d61461070157610266565b80634359d28a116101dc5780634a4ee7b1116101a05780634a4ee7b11461055d578063514e62fc1461057957806354d1f13d146105b5578063578bcf35146105bf5780635aef467a146105fb57806361400c991461062b57610266565b80634359d28a1461046d578063439fab911461049557806343cc96e1146104bd578063451cc191146104e5578063474f5a441461052157610266565b80631c10893f116102235780631c10893f146103a55780631cd64df4146103c157806325692962146103fd57806328d6183b146104075780632de948071461043157610266565b806301ffc9a71461029857806310098ad5146102d457806314135ce014610310578063183a4f6e1461034c578063185832a31461036857610266565b3661026657005b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3480156102a3575f80fd5b506102be60048036038101906102b991906133d9565b610a9a565b6040516102cb919061341e565b60405180910390f35b3480156102df575f80fd5b506102fa60048036038101906102f59190613491565b610aab565b60405161030791906134d4565b60405180910390f35b34801561031b575f80fd5b5061033660048036038101906103319190613491565b610b04565b60405161034391906134d4565b60405180910390f35b61036660048036038101906103619190613517565b610b19565b005b348015610373575f80fd5b5061038e600480360381019061038991906135a3565b610b26565b60405161039c929190613636565b60405180910390f35b6103bf60048036038101906103ba919061365d565b610b51565b005b3480156103cc575f80fd5b506103e760048036038101906103e2919061365d565b610b67565b6040516103f4919061341e565b60405180910390f35b610405610b7d565b005b348015610412575f80fd5b5061041b610bce565b60405161042891906136aa565b60405180910390f35b34801561043c575f80fd5b5061045760048036038101906104529190613491565b610bf5565b60405161046491906134d4565b60405180910390f35b348015610478575f80fd5b50610493600480360381019061048e919061376d565b610c0e565b005b3480156104a0575f80fd5b506104bb60048036038101906104b691906137eb565b610d1c565b005b3480156104c8575f80fd5b506104e360048036038101906104de9190613836565b610efe565b005b3480156104f0575f80fd5b5061050b600480360381019061050691906137eb565b61131d565b60405161051891906134d4565b60405180910390f35b34801561052c575f80fd5b50610547600480360381019061054291906137eb565b611324565b60405161055491906134d4565b60405180910390f35b6105776004803603810190610572919061365d565b61151d565b005b348015610584575f80fd5b5061059f600480360381019061059a919061365d565b611533565b6040516105ac919061341e565b60405180910390f35b6105bd61154a565b005b3480156105ca575f80fd5b506105e560048036038101906105e09190613491565b611583565b6040516105f291906134d4565b60405180910390f35b610615600480360381019061061091906137eb565b6115c9565b604051610622919061341e565b60405180910390f35b348015610636575f80fd5b50610651600480360381019061064c91906138c9565b611939565b60405161065e919061341e565b60405180910390f35b61066f61199d565b005b34801561067c575f80fd5b506106856119b0565b60405161069291906134d4565b60405180910390f35b3480156106a6575f80fd5b506106c160048036038101906106bc919061365d565b6119b5565b6040516106ce91906134d4565b60405180910390f35b3480156106e2575f80fd5b506106eb611a0b565b6040516106f89190613914565b60405180910390f35b34801561070c575f80fd5b50610715611a33565b60405161072291906134d4565b60405180910390f35b348015610736575f80fd5b50610751600480360381019061074c91906135a3565b611a39565b60405161075f929190613636565b60405180910390f35b348015610773575f80fd5b5061078e60048036038101906107899190613982565b611bf7565b60405161079b91906136aa565b60405180910390f35b3480156107af575f80fd5b506107ca60048036038101906107c59190613a59565b611c0e565b005b3480156107d7575f80fd5b506107f260048036038101906107ed9190613491565b611cc4565b6040516107ff91906134d4565b60405180910390f35b348015610813575f80fd5b5061082e60048036038101906108299190613491565b611cd9565b60405161083b91906134d4565b60405180910390f35b34801561084f575f80fd5b5061086a60048036038101906108659190613491565b611d7a565b60405161087791906134d4565b60405180910390f35b34801561088b575f80fd5b506108a660048036038101906108a19190613a59565b611d8f565b005b3480156108b3575f80fd5b506108bc611e45565b6040516108c991906134d4565b60405180910390f35b6108ec60048036038101906108e79190613491565b611e4a565b005b3480156108f9575f80fd5b50610914600480360381019061090f9190613ad7565b611e88565b60405161092191906136aa565b60405180910390f35b610944600480360381019061093f9190613491565b611e9d565b005b348015610951575f80fd5b5061096c6004803603810190610967919061365d565b611ec6565b60405161097991906134d4565b60405180910390f35b34801561098d575f80fd5b506109a860048036038101906109a3919061365d565b611f48565b6040516109b591906134d4565b60405180910390f35b3480156109c9575f80fd5b506109e460048036038101906109df91906137eb565b612021565b6040516109f1919061341e565b60405180910390f35b348015610a05575f80fd5b50610a206004803603810190610a1b9190613517565b6123fc565b005b348015610a2d575f80fd5b50610a486004803603810190610a439190613491565b61248e565b604051610a55919061341e565b60405180910390f35b348015610a69575f80fd5b50610a846004803603810190610a7f9190613491565b6124e1565b604051610a9191906134d4565b60405180910390f35b5f610aa4826124fa565b9050919050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610af383612573565b610afd9190613b9a565b9050919050565b6004602052805f5260405f205f915090505481565b610b2333826125de565b50565b5f80610b358787878787611a39565b8092508193505050610b478484610efe565b9550959350505050565b610b596125ed565b610b638282612624565b5050565b5f8182610b7385610bf5565b1614905092915050565b5f610b86612634565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7fde98bbf000000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b6002610c198161263e565b828290508585905014610c58576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015610d14575f848483818110610c7957610c78613bcd565b5b9050602002016020810190610c8e9190613c24565b90506001151581151503610cd357610cce878784818110610cb257610cb1613bcd565b5b9050602002016020810190610cc79190613491565b6001612624565b610d06565b610d05878784818110610ce957610ce8613bcd565b5b9050602002016020810190610cfe9190613491565b60016125de565b5b508080600101915050610c5a565b505050505050565b5f610d25612673565b90508054600382558015610d575760018160011c14303b10610d4e5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8383810190610d689190613f0c565b9050610d76815f015161269c565b5f5b816020015151811015610dd857610dcb82602001518281518110610d9f57610d9e613bcd565b5b602002602001015183604001518381518110610dbe57610dbd613bcd565b5b6020026020010151612772565b8080600101915050610d78565b505f81602001515103610e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1790613fad565b60405180910390fd5b80602001515f81518110610e3757610e36613bcd565b5b60200260200101515f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080606001516001819055507f74f254e69f1d1aa50fbf15b184112c15530415ac9f4b4bf2b75778c6befd09788160600151604051610ebb91906134d4565b60405180910390a1508015610ef9576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166313c8e2de846040518263ffffffff1660e01b8152600401610f5891906134d4565b5f60405180830381865afa158015610f72573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610f9a919061430b565b90505f81608001518381518110610fb457610fb3613bcd565b5b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f7cc1d5bb000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161101791906136aa565b602060405180830381865afa158015611032573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110569190614366565b15611153575f8173ffffffffffffffffffffffffffffffffffffffff1663dcc59b6f6040518163ffffffff1660e01b81526004016020604051808303815f875af11580156110a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ca9190614391565b90505f8273ffffffffffffffffffffffffffffffffffffffff1663a4d66daf6040518163ffffffff1660e01b81526004016020604051808303815f875af1158015611117573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061113b9190614391565b905061114a86868685856127b3565b50505050611319565b8073ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f90318111000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016111ac91906136aa565b602060405180830381865afa1580156111c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111eb9190614366565b156112e7575f8173ffffffffffffffffffffffffffffffffffffffff1663d54ad2a16040518163ffffffff1660e01b81526004016020604051808303815f875af115801561123b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061125f9190614391565b90505f8273ffffffffffffffffffffffffffffffffffffffff1663a4d66daf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112cf9190614391565b90506112de86868685856127b3565b50505050611319565b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b5f92915050565b5f60026113308161263e565b5f84848101906113409190614520565b90505f80600281111561135657611355614567565b5b825f0151600281111561136c5761136b614567565b5b148061139f57506001600281111561138757611386614567565b5b825f0151600281111561139d5761139c614567565b5b145b156113fe575f82606001518060200190518101906113bd91906145cd565b90506113f2836020015184604001515f845f0151146113df57835f01516113ed565b6113ec8660200151610aab565b5b612ac8565b805f0151915050611510565b60028081111561141157611410614567565b5b825f0151600281111561142757611426614567565b5b03611505575f826060015180602001905181019061144591906146f1565b90506114f883602001518460400151835f01515f85602001511461146d5784602001516114ee565b866020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30875f01516040518363ffffffff1660e01b81526004016114ae929190614738565b602060405180830381865afa1580156114c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114ed9190614391565b5b8560400151612c8e565b806020015191505061150f565b8093505050611516565b5b80935050505b5092915050565b6115256125ed565b61152f82826125de565b5050565b5f808261153f85610bf5565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8083838101906115da9190614520565b90505f60028111156115ef576115ee614567565b5b815f0151600281111561160557611604614567565b5b0361167b575f816060015180602001905181019061162391906145cd565b9050805f01513414611675578160200151815f01516040517fcece04c500000000000000000000000000000000000000000000000000000000815260040161166c929190614738565b60405180910390fd5b5061192d565b6001600281111561168f5761168e614567565b5b815f015160028111156116a5576116a4614567565b5b03611780575f81606001518060200190518101906116c391906145cd565b90506116fd826040015130835f0151856020015173ffffffffffffffffffffffffffffffffffffffff16612eba909392919063ffffffff16565b805f015161172e30846020015173ffffffffffffffffffffffffffffffffffffffff16612f1490919063ffffffff16565b101561177a578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401611771929190614738565b60405180910390fd5b5061192c565b60028081111561179357611792614567565b5b815f015160028111156117a9576117a8614567565b5b03611922575f81606001518060200190518101906117c791906146f1565b9050816020015173ffffffffffffffffffffffffffffffffffffffff1663f242432a836040015130845f0151856020015186604001516040518663ffffffff1660e01b815260040161181d9594939291906147b1565b5f604051808303815f87803b158015611834575f80fd5b505af1158015611846573d5f803e3d5ffd5b505050508060200151826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b8152600401611890929190614738565b602060405180830381865afa1580156118ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118cf9190614391565b101561191c57816020015181602001516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401611913929190614738565b60405180910390fd5b5061192b565b5f915050611933565b5b5b60019150505b92915050565b5f805f90505b83839050811015611991576119778484838181106119605761195f613bcd565b5b90506020028101906119729190614815565b612021565b611984575f915050611997565b808060010191505061193f565b50600190505b92915050565b6119a56125ed565b6119ae5f612f47565b565b600281565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60015481565b5f80611a443361248e565b611a7a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60405180604001604052803073ffffffffffffffffffffffffffffffffffffffff16815260200188888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081525090505f8890505f808273ffffffffffffffffffffffffffffffffffffffff1663dd98558c85604051602001611b1e9190614908565b6040516020818303038152906040528a8a6040518463ffffffff1660e01b8152600401611b4d93929190614928565b60408051808303815f875af1158015611b68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b8c9190614964565b915091508160055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611bdc9190613b9a565b92505081905550818195509550505050509550959350505050565b5f63bc197c8160e01b905098975050505050505050565b6002611c198161263e565b828290508585905014611c58576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015611cbc57611caf868683818110611c7b57611c7a613bcd565b5b9050602002016020810190611c909190613491565b858584818110611ca357611ca2613bcd565b5b90506020020135612624565b8080600101915050611c5a565b505050505050565b6003602052805f5260405f205f915090505481565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d5f84610aab565b611d6991906149a2565b611d7391906149a2565b9050919050565b6002602052805f5260405f205f915090505481565b6002611d9a8161263e565b828290508585905014611dd9576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015611e3d57611e30868683818110611dfc57611dfb613bcd565b5b9050602002016020810190611e119190613491565b858584818110611e2457611e23613bcd565b5b905060200201356125de565b8080600101915050611ddb565b505050505050565b600181565b611e526125ed565b63389a75e1600c52805f526020600c208054421115611e7857636f5e88185f526004601cfd5b5f815550611e8581612f47565b50565b5f63f23a6e6160e01b90509695505050505050565b611ea56125ed565b8060601b611eba57637448fbae5f526004601cfd5b611ec381612f47565b50565b5f8273ffffffffffffffffffffffffffffffffffffffff1662fdd58e30846040518363ffffffff1660e01b8152600401611f01929190614738565b602060405180830381865afa158015611f1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f409190614391565b905092915050565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20548373ffffffffffffffffffffffffffffffffffffffff1662fdd58e30856040518363ffffffff1660e01b8152600401611fd0929190614738565b602060405180830381865afa158015611feb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061200f9190614391565b61201991906149a2565b905092915050565b5f61202b3361248e565b612061576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f83838101906120719190614520565b90506001600281111561208757612086614567565b5b815f0151600281111561209d5761209c614567565b5b14806120cf57505f60028111156120b7576120b6614567565b5b815f015160028111156120cd576120cc614567565b5b145b1561229e575f81606001518060200190518101906120ed91906145cd565b90505f612710600154835f015161210491906149d5565b61210e9190614a43565b90505f61211e8460200151610aab565b90508082845f015161213091906149a2565b11156121895783602001518183855f015161214b91906149a2565b6040517f5c54305e00000000000000000000000000000000000000000000000000000000815260040161218093929190614a73565b60405180910390fd5b8160025f866040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160045f866020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461221f91906149a2565b92505081905550825f015160055f866020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461227991906149a2565b9250508190555061229684602001518560400151855f0151612ac8565b5050506123f0565b6002808111156122b1576122b0614567565b5b815f015160028111156122c7576122c6614567565b5b036123e6575f81606001518060200190518101906122e591906146f1565b90505f826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b8152600401612329929190614738565b602060405180830381865afa158015612344573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123689190614391565b905080826020015111156123bf5782602001518183602001516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016123b693929190614a73565b60405180910390fd5b6123df83602001518460400151845f015185602001518660400151612c8e565b50506123ef565b5f9150506123f6565b5b60019150505b92915050565b60026124078161263e565b61271082111561244c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244390614af2565b60405180910390fd5b816001819055507f74f254e69f1d1aa50fbf15b184112c15530415ac9f4b4bf2b75778c6befd09788260405161248291906134d4565b60405180910390a15050565b5f8173ffffffffffffffffffffffffffffffffffffffff166124ae611a0b565b73ffffffffffffffffffffffffffffffffffffffff1614806124da57506124d9826002600117611533565b5b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fde98bbf0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061256c575061256b8261300d565b5b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146125d5576125d0308373ffffffffffffffffffffffffffffffffffffffff16612f1490919063ffffffff16565b6125d7565b475b9050919050565b6125e982825f613156565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314612622576382b429005f526004601cfd5b565b61263082826001613156565b5050565b5f6202a300905090565b638b78c6d81954331461267057638b78c6d8600c52335f52806020600c20541661266f576382b429005f526004601cfd5b5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6126a46131ae565b1561271c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156126de57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061276f565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b5f836080015185815181106127cb576127ca613bcd565b5b602002602001015190505f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8185878561286691906149d5565b6128709190614a43565b61287a9190613b9a565b9050808261288891906149a2565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f8473ffffffffffffffffffffffffffffffffffffffff166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612913573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129379190614b10565b90505f8860e0015190508260045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461298d9190613b9a565b925050819055505f83036129cd576040517fb2e783cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8483856129da91906149a2565b03612a605760025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f905560035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f90555b8073ffffffffffffffffffffffffffffffffffffffff168a8c7ff44ff640e648077f3acc130c6ce75240070e8c40adc85b0feeeec28d9dd921b486604051612aa891906134d4565b60405180910390a4612abb828285612ac8565b5050505050505050505050565b3068929eee149b4bd212685403612ae65763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612b66578282826040517fbf182be8000000000000000000000000000000000000000000000000000000008152600401612b5d93929190614b3b565b60405180910390fd5b612b6f83610aab565b811115612bbf5782612b8084610aab565b826040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401612bb693929190614a73565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612c0157612bfc82826131b2565b612c2d565b612c2c82828573ffffffffffffffffffffffffffffffffffffffff166131cf9092919063ffffffff16565b5b8273ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd435428383604051612c75929190614738565b60405180910390a23868929eee149b4bd2126855505050565b3068929eee149b4bd212685403612cac5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612d2c578484836040517fbf182be8000000000000000000000000000000000000000000000000000000008152600401612d2393929190614b3b565b60405180910390fd5b612d368584611ec6565b821115612d875784612d488685611ec6565b836040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401612d7e93929190614a73565b60405180910390fd5b8160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f205f828254612de291906149a2565b925050819055508473ffffffffffffffffffffffffffffffffffffffff1663f242432a30868686866040518663ffffffff1660e01b8152600401612e2a9594939291906147b1565b5f604051808303815f87803b158015612e41575f80fd5b505af1158015612e53573d5f803e3d5ffd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd435428584604051612e9f929190614738565b60405180910390a23868929eee149b4bd21268555050505050565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f51141716612f0557637939f4245f526004601cfd5b5f606052806040525050505050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b612f4f6131ae565b15612fb4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061300a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f7f5fbfaa4e000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806130d757507f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061313f57507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061314f575061314e82613218565b5b9050919050565b638b78c6d8600c52825f526020600c2080548381178361317857848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f385f3884865af16131cb5763b12d13eb5f526004601cfd5b5050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f5114171661320f576390b8ec185f526004601cfd5b5f603452505050565b5f7fe49cedd7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061328a575061328982613291565b5b9050919050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061330357506133028261330a565b5b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6133b881613384565b81146133c2575f80fd5b50565b5f813590506133d3816133af565b92915050565b5f602082840312156133ee576133ed61337c565b5b5f6133fb848285016133c5565b91505092915050565b5f8115159050919050565b61341881613404565b82525050565b5f6020820190506134315f83018461340f565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61346082613437565b9050919050565b61347081613456565b811461347a575f80fd5b50565b5f8135905061348b81613467565b92915050565b5f602082840312156134a6576134a561337c565b5b5f6134b38482850161347d565b91505092915050565b5f819050919050565b6134ce816134bc565b82525050565b5f6020820190506134e75f8301846134c5565b92915050565b6134f6816134bc565b8114613500575f80fd5b50565b5f81359050613511816134ed565b92915050565b5f6020828403121561352c5761352b61337c565b5b5f61353984828501613503565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261356357613562613542565b5b8235905067ffffffffffffffff8111156135805761357f613546565b5b60208301915083600182028301111561359c5761359b61354a565b5b9250929050565b5f805f805f608086880312156135bc576135bb61337c565b5b5f6135c98882890161347d565b955050602086013567ffffffffffffffff8111156135ea576135e9613380565b5b6135f68882890161354e565b9450945050604061360988828901613503565b925050606061361a88828901613503565b9150509295509295909350565b61363081613456565b82525050565b5f6040820190506136495f8301856134c5565b6136566020830184613627565b9392505050565b5f80604083850312156136735761367261337c565b5b5f6136808582860161347d565b925050602061369185828601613503565b9150509250929050565b6136a481613384565b82525050565b5f6020820190506136bd5f83018461369b565b92915050565b5f8083601f8401126136d8576136d7613542565b5b8235905067ffffffffffffffff8111156136f5576136f4613546565b5b6020830191508360208202830111156137115761371061354a565b5b9250929050565b5f8083601f84011261372d5761372c613542565b5b8235905067ffffffffffffffff81111561374a57613749613546565b5b6020830191508360208202830111156137665761376561354a565b5b9250929050565b5f805f80604085870312156137855761378461337c565b5b5f85013567ffffffffffffffff8111156137a2576137a1613380565b5b6137ae878288016136c3565b9450945050602085013567ffffffffffffffff8111156137d1576137d0613380565b5b6137dd87828801613718565b925092505092959194509250565b5f80602083850312156138015761380061337c565b5b5f83013567ffffffffffffffff81111561381e5761381d613380565b5b61382a8582860161354e565b92509250509250929050565b5f806040838503121561384c5761384b61337c565b5b5f61385985828601613503565b925050602061386a85828601613503565b9150509250929050565b5f8083601f84011261388957613888613542565b5b8235905067ffffffffffffffff8111156138a6576138a5613546565b5b6020830191508360208202830111156138c2576138c161354a565b5b9250929050565b5f80602083850312156138df576138de61337c565b5b5f83013567ffffffffffffffff8111156138fc576138fb613380565b5b61390885828601613874565b92509250509250929050565b5f6020820190506139275f830184613627565b92915050565b5f8083601f84011261394257613941613542565b5b8235905067ffffffffffffffff81111561395f5761395e613546565b5b60208301915083602082028301111561397b5761397a61354a565b5b9250929050565b5f805f805f805f8060a0898b03121561399e5761399d61337c565b5b5f6139ab8b828c0161347d565b98505060206139bc8b828c0161347d565b975050604089013567ffffffffffffffff8111156139dd576139dc613380565b5b6139e98b828c0161392d565b9650965050606089013567ffffffffffffffff811115613a0c57613a0b613380565b5b613a188b828c0161392d565b9450945050608089013567ffffffffffffffff811115613a3b57613a3a613380565b5b613a478b828c0161354e565b92509250509295985092959890939650565b5f805f8060408587031215613a7157613a7061337c565b5b5f85013567ffffffffffffffff811115613a8e57613a8d613380565b5b613a9a878288016136c3565b9450945050602085013567ffffffffffffffff811115613abd57613abc613380565b5b613ac98782880161392d565b925092505092959194509250565b5f805f805f8060a08789031215613af157613af061337c565b5b5f613afe89828a0161347d565b9650506020613b0f89828a0161347d565b9550506040613b2089828a01613503565b9450506060613b3189828a01613503565b935050608087013567ffffffffffffffff811115613b5257613b51613380565b5b613b5e89828a0161354e565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613ba4826134bc565b9150613baf836134bc565b9250828203905081811115613bc757613bc6613b6d565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b613c0381613404565b8114613c0d575f80fd5b50565b5f81359050613c1e81613bfa565b92915050565b5f60208284031215613c3957613c3861337c565b5b5f613c4684828501613c10565b91505092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613c9982613c53565b810181811067ffffffffffffffff82111715613cb857613cb7613c63565b5b80604052505050565b5f613cca613373565b9050613cd68282613c90565b919050565b5f80fd5b5f67ffffffffffffffff821115613cf957613cf8613c63565b5b602082029050602081019050919050565b5f613d1c613d1784613cdf565b613cc1565b90508083825260208201905060208402830185811115613d3f57613d3e61354a565b5b835b81811015613d685780613d54888261347d565b845260208401935050602081019050613d41565b5050509392505050565b5f82601f830112613d8657613d85613542565b5b8135613d96848260208601613d0a565b91505092915050565b5f67ffffffffffffffff821115613db957613db8613c63565b5b602082029050602081019050919050565b5f613ddc613dd784613d9f565b613cc1565b90508083825260208201905060208402830185811115613dff57613dfe61354a565b5b835b81811015613e285780613e148882613503565b845260208401935050602081019050613e01565b5050509392505050565b5f82601f830112613e4657613e45613542565b5b8135613e56848260208601613dca565b91505092915050565b5f60808284031215613e7457613e73613c4f565b5b613e7e6080613cc1565b90505f613e8d8482850161347d565b5f83015250602082013567ffffffffffffffff811115613eb057613eaf613cdb565b5b613ebc84828501613d72565b602083015250604082013567ffffffffffffffff811115613ee057613edf613cdb565b5b613eec84828501613e32565b6040830152506060613f0084828501613503565b60608301525092915050565b5f60208284031215613f2157613f2061337c565b5b5f82013567ffffffffffffffff811115613f3e57613f3d613380565b5b613f4a84828501613e5f565b91505092915050565b5f82825260208201905092915050565b7f6e6f20636f726520636f6e7472616374207365740000000000000000000000005f82015250565b5f613f97601483613f53565b9150613fa282613f63565b602082019050919050565b5f6020820190508181035f830152613fc481613f8b565b9050919050565b5f613fd582613456565b9050919050565b613fe581613fcb565b8114613fef575f80fd5b50565b5f8151905061400081613fdc565b92915050565b5f61401082613456565b9050919050565b61402081614006565b811461402a575f80fd5b50565b5f8151905061403b81614017565b92915050565b5f61404b82613456565b9050919050565b61405b81614041565b8114614065575f80fd5b50565b5f8151905061407681614052565b92915050565b5f61408682613437565b9050919050565b5f6140978261407c565b9050919050565b6140a78161408d565b81146140b1575f80fd5b50565b5f815190506140c28161409e565b92915050565b5f67ffffffffffffffff8211156140e2576140e1613c63565b5b602082029050602081019050919050565b5f6140fd82613456565b9050919050565b61410d816140f3565b8114614117575f80fd5b50565b5f8151905061412881614104565b92915050565b5f61414061413b846140c8565b613cc1565b905080838252602082019050602084028301858111156141635761416261354a565b5b835b8181101561418c5780614178888261411a565b845260208401935050602081019050614165565b5050509392505050565b5f82601f8301126141aa576141a9613542565b5b81516141ba84826020860161412e565b91505092915050565b5f67ffffffffffffffff82169050919050565b6141df816141c3565b81146141e9575f80fd5b50565b5f815190506141fa816141d6565b92915050565b5f8151905061420e816134ed565b92915050565b5f8151905061422281613467565b92915050565b5f610100828403121561423e5761423d613c4f565b5b614249610100613cc1565b90505f61425884828501613ff2565b5f83015250602061426b8482850161402d565b602083015250604061427f84828501614068565b6040830152506060614293848285016140b4565b606083015250608082015167ffffffffffffffff8111156142b7576142b6613cdb565b5b6142c384828501614196565b60808301525060a06142d7848285016141ec565b60a08301525060c06142eb84828501614200565b60c08301525060e06142ff84828501614214565b60e08301525092915050565b5f602082840312156143205761431f61337c565b5b5f82015167ffffffffffffffff81111561433d5761433c613380565b5b61434984828501614228565b91505092915050565b5f8151905061436081613bfa565b92915050565b5f6020828403121561437b5761437a61337c565b5b5f61438884828501614352565b91505092915050565b5f602082840312156143a6576143a561337c565b5b5f6143b384828501614200565b91505092915050565b600381106143c8575f80fd5b50565b5f813590506143d9816143bc565b92915050565b5f80fd5b5f67ffffffffffffffff8211156143fd576143fc613c63565b5b61440682613c53565b9050602081019050919050565b828183375f83830152505050565b5f61443361442e846143e3565b613cc1565b90508281526020810184848401111561444f5761444e6143df565b5b61445a848285614413565b509392505050565b5f82601f83011261447657614475613542565b5b8135614486848260208601614421565b91505092915050565b5f608082840312156144a4576144a3613c4f565b5b6144ae6080613cc1565b90505f6144bd848285016143cb565b5f8301525060206144d08482850161347d565b60208301525060406144e48482850161347d565b604083015250606082013567ffffffffffffffff81111561450857614507613cdb565b5b61451484828501614462565b60608301525092915050565b5f602082840312156145355761453461337c565b5b5f82013567ffffffffffffffff81111561455257614551613380565b5b61455e8482850161448f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f602082840312156145a9576145a8613c4f565b5b6145b36020613cc1565b90505f6145c284828501614200565b5f8301525092915050565b5f602082840312156145e2576145e161337c565b5b5f6145ef84828501614594565b91505092915050565b8281835e5f83830152505050565b5f614618614613846143e3565b613cc1565b905082815260208101848484011115614634576146336143df565b5b61463f8482856145f8565b509392505050565b5f82601f83011261465b5761465a613542565b5b815161466b848260208601614606565b91505092915050565b5f6060828403121561468957614688613c4f565b5b6146936060613cc1565b90505f6146a284828501614200565b5f8301525060206146b584828501614200565b602083015250604082015167ffffffffffffffff8111156146d9576146d8613cdb565b5b6146e584828501614647565b60408301525092915050565b5f602082840312156147065761470561337c565b5b5f82015167ffffffffffffffff81111561472357614722613380565b5b61472f84828501614674565b91505092915050565b5f60408201905061474b5f830185613627565b61475860208301846134c5565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b5f6147838261475f565b61478d8185614769565b935061479d8185602086016145f8565b6147a681613c53565b840191505092915050565b5f60a0820190506147c45f830188613627565b6147d16020830187613627565b6147de60408301866134c5565b6147eb60608301856134c5565b81810360808301526147fd8184614779565b90509695505050505050565b5f80fd5b5f80fd5b5f80fd5b5f808335600160200384360303811261483157614830614809565b5b80840192508235915067ffffffffffffffff8211156148535761485261480d565b5b60208301925060018202360383131561486f5761486e614811565b5b509250929050565b61488081613456565b82525050565b5f82825260208201905092915050565b5f6148a08261475f565b6148aa8185614886565b93506148ba8185602086016145f8565b6148c381613c53565b840191505092915050565b5f604083015f8301516148e35f860182614877565b50602083015184820360208601526148fb8282614896565b9150508091505092915050565b5f6020820190508181035f83015261492081846148ce565b905092915050565b5f6060820190508181035f8301526149408186614779565b905061494f60208301856134c5565b61495c60408301846134c5565b949350505050565b5f806040838503121561497a5761497961337c565b5b5f61498785828601614200565b925050602061499885828601614214565b9150509250929050565b5f6149ac826134bc565b91506149b7836134bc565b92508282019050808211156149cf576149ce613b6d565b5b92915050565b5f6149df826134bc565b91506149ea836134bc565b92508282026149f8816134bc565b91508282048414831517614a0f57614a0e613b6d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614a4d826134bc565b9150614a58836134bc565b925082614a6857614a67614a16565b5b828204905092915050565b5f606082019050614a865f830186613627565b614a9360208301856134c5565b614aa060408301846134c5565b949350505050565b7f4665652063616e6e6f74206578636565642031303025000000000000000000005f82015250565b5f614adc601683613f53565b9150614ae782614aa8565b602082019050919050565b5f6020820190508181035f830152614b0981614ad0565b9050919050565b5f60208284031215614b2557614b2461337c565b5b5f614b3284828501614214565b91505092915050565b5f606082019050614b4e5f830186613627565b614b5b6020830185613627565b614b6860408301846134c5565b94935050505056fea2646970667358221220534f1d7ff748f85a2c6e450291819d88bad09ea01cc040a573543ce8f29ad27e64736f6c634300081a0033",o=class o extends A.DeployableTargetWithRBAC{constructor(){super(...arguments),this.abi=d.o}async allocate(f,b){return await this.awaitResult(this.allocateRaw(f,b))}async allocateRaw(f,b){const{request:a,result:e}=await d.IO(this._config,{address:this.assertValidAddress(),args:[r.prepareTransfer(f)],...this.optionallyAttachAccount(),...b});return{hash:await d.aO(this._config,a),result:e}}async clawback(f,b){return await this.awaitResult(this.clawbackRaw(f,b))}async clawbackRaw(f,b){const{request:a,result:e}=await d.NO(this._config,{address:this.assertValidAddress(),args:[r.prepareTransfer(f)],...this.optionallyAttachAccount(),...b});return{hash:await d.sO(this._config,a),result:e}}async clawbackFromTarget(f,b,a,e,c){return await this.awaitResult(this.clawbackFromTargetRaw(f,b,a,e,c))}async clawbackFromTargetRaw(f,b,a,e,c){const{request:s,result:y}=await d.MO(this._config,{address:this.assertValidAddress(),args:[f,b,BigInt(a),BigInt(e)],...this.optionallyAttachAccount(),...c});return{hash:await d.rO(this._config,s),result:y}}async disburse(f,b){return await this.awaitResult(this.disburseRaw(f,b))}async disburseRaw(f,b){const{request:a,result:e}=await d.OO(this._config,{address:this.assertValidAddress(),args:[r.prepareTransfer(f)],...this.optionallyAttachAccount(),...b});return{hash:await d.pO(this._config,a),result:e}}async disburseBatch(f,b){return await this.awaitResult(this.disburseBatchRaw(f,b))}async disburseBatchRaw(f,b){const{request:a,result:e}=await d.CO(this._config,{address:this.assertValidAddress(),args:[f.map(r.prepareTransfer)],...this.optionallyAttachAccount(),...b});return{hash:await d.uO(this._config,a),result:e}}async payManagementFee(f,b,a){return await this.awaitResult(this.payManagementFeeRaw(f,b,a))}async payManagementFeeRaw(f,b,a){const{request:e,result:c}=await d.jC(this._config,{address:this.assertValidAddress(),args:[f,b],...this.optionallyAttachAccount(),...a});return{hash:await d.MC(this._config,e),result:c}}async setManagementFee(f,b){return await this.awaitResult(this.setManagementFeeRaw(f,b))}async setManagementFeeRaw(f,b){const{request:a,result:e}=await d.tE(this._config,{address:this.assertValidAddress(),args:[f],...this.optionallyAttachAccount(),...b});return{hash:await d.xC(this._config,a),result:e}}async managementFee(f){return await d.iC(this._config,{address:this.assertValidAddress(),args:[],...f})}owner(f){return d.K6(this._config,{address:this.assertValidAddress(),args:[],...f})}total(f=t.zeroAddress,b,a){return d.tO(this._config,{address:this.assertValidAddress(),args:b?[f,b]:[f],...a})}available(f=t.zeroAddress,b,a){return d.G6(this._config,{address:this.assertValidAddress(),args:b?[f,b]:[f],...a})}distributed(f=t.zeroAddress,b,a){return d.U6(this._config,{address:this.assertValidAddress(),args:b?[f,b]:[f],...a})}buildParameters(f,b){var c;const[a,e]=this.validateDeploymentConfig(f,b);if(!a.owner||a.owner===t.zeroAddress){const s=e.account?e.account.address:e.config?l.getAccount(e.config).address:(c=this._account)==null?void 0:c.address;if(s)a.owner=s;else throw new g.DeployableUnknownOwnerProvidedError}return{abi:d.o,bytecode:R,args:[w(a)],...this.optionallyAttachAccount(e.account)}}};o.bases={31337:void 0,...p.ManagedBudgetWithFees},o.registryType=m.RegistryType.BUDGET;let n=o;const w=({owner:i,authorized:f,roles:b,managementFee:a})=>t.encodeAbiParameters(t.parseAbiParameters(["ManagedBudgetWithFeesPayload payload","struct ManagedBudgetWithFeesPayload { address owner; address[] authorized; uint256[] roles; uint256 managementFee; }"]),[{owner:i,authorized:f,roles:b,managementFee:a}]),h={[u.AManagedBudget]:r.ManagedBudget,[u.AManagedBudgetWithFees]:n};async function B(i,f,b){const a=await l.readContract(i.config,{abi:d.w,functionName:"getComponentInterface",address:f,...b}),e=h[a];if(!e)throw new g.InvalidComponentInterfaceError(Object.keys(h),a);return new e(i,f)}exports.BudgetByComponentInterface=h;exports.ManagedBudgetWithFees=n;exports.budgetFromAddress=B;exports.prepareManagedBudgetWithFeesPayload=w;
2
+ //# sourceMappingURL=Budget-Dw3jHqDC.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Budget-BSqx3xcT.cjs","sources":["../src/Budgets/ManagedBudgetWithFees.ts","../src/Budgets/Budget.ts"],"sourcesContent":["import {\n managedBudgetWithFeesAbi,\n readManagedBudgetAvailable,\n readManagedBudgetDistributed,\n readManagedBudgetOwner,\n readManagedBudgetTotal,\n readManagedBudgetWithFeesManagementFee,\n simulateManagedBudgetAllocate,\n simulateManagedBudgetClawback,\n simulateManagedBudgetClawbackFromTarget,\n simulateManagedBudgetDisburse,\n simulateManagedBudgetDisburseBatch,\n simulateManagedBudgetWithFeesPayManagementFee,\n simulateManagedBudgetWithFeesSetManagementFee,\n writeManagedBudgetAllocate,\n writeManagedBudgetClawback,\n writeManagedBudgetClawbackFromTarget,\n writeManagedBudgetDisburse,\n writeManagedBudgetDisburseBatch,\n writeManagedBudgetWithFeesPayManagementFee,\n writeManagedBudgetWithFeesSetManagementFee,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/budgets/ManagedBudgetWithFees.sol/ManagedBudgetWithFees.json';\nimport { getAccount } from '@wagmi/core';\nimport {\n type Address,\n type ContractEventName,\n type Hex,\n encodeAbiParameters,\n parseAbiParameters,\n zeroAddress,\n} from 'viem';\nimport { ManagedBudgetWithFees as ManagedBudgetWithFeesBases } from '../../dist/deployments.json';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport {\n DeployableTargetWithRBAC,\n type Roles,\n} from '../Deployable/DeployableTargetWithRBAC';\nimport { DeployableUnknownOwnerProvidedError } from '../errors';\nimport type {\n ERC1155TransferPayload,\n FungibleTransferPayload,\n} from '../transfers';\nimport {\n type GenericLog,\n type ReadParams,\n RegistryType,\n type WriteParams,\n} from '../utils';\nimport { prepareTransfer } from './ManagedBudget';\nexport { managedBudgetWithFeesAbi };\nexport type { ERC1155TransferPayload, FungibleTransferPayload };\n\n/**\n * The object representation of a `ManagedBudgetWithFeesPayload.InitPayload`\n *\n * @export\n * @interface ManagedBudgetWithFeesPayload\n * @typedef {ManagedBudgetWithFeesPayload}\n */\nexport interface ManagedBudgetWithFeesPayload {\n /**\n * The budget's owner\n *\n * @type {Address}\n */\n owner: Address;\n /**\n * List of accounts authorized to use the budget. This list should include a Boost core address to interact with the protocol.\n *\n * @type {Address[]}\n */\n authorized: Address[];\n /**\n * List of roles to assign to the corresponding account by index.\n *\n * @type {Roles[]}\n */\n roles: Roles[];\n /**\n * Management Fee rate for incentive payouts\n *\n * @type {bigint}\n */\n managementFee: bigint;\n}\n\n/**\n * A generic `viem.Log` event with support for `ManagedBudgetWithFees` event types.\n *\n * @export\n * @typedef {ManagedBudgetWithFeesLog}\n * @template {ContractEventName<typeof managedBudgetWithFeesAbi>} [event=ContractEventName<\n * typeof managedBudgetWithFeesAbi\n * >]\n */\nexport type ManagedBudgetWithFeesLog<\n event extends ContractEventName<\n typeof managedBudgetWithFeesAbi\n > = ContractEventName<typeof managedBudgetWithFeesAbi>,\n> = GenericLog<typeof managedBudgetWithFeesAbi, event>;\n\n/**\n * A minimal budget implementation that simply holds and distributes tokens (ERC20-like and native)\n * This type of budget supports ETH, ERC20, and ERC1155 assets only\n *\n * @export\n * @class ManagedBudgetWithFees\n * @typedef {ManagedBudgetWithFees}\n * @extends {DeployableTargetWithRBAC<ManagedBudgetWithFeesPayload>}\n */\nexport class ManagedBudgetWithFees extends DeployableTargetWithRBAC<\n ManagedBudgetWithFeesPayload,\n typeof managedBudgetWithFeesAbi\n> {\n /**\n * @inheritdoc\n *\n * @public\n * @readonly\n * @type {*}\n */\n public override readonly abi = managedBudgetWithFeesAbi;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {Record<number, Address>}\n */\n public static override bases: Record<number, Address> = {\n 31337: import.meta.env.VITE_MANAGED_BUDGET_WITH_FEES_BASE,\n ...(ManagedBudgetWithFeesBases as Record<number, Address>),\n };\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {RegistryType}\n */\n public static override registryType: RegistryType = RegistryType.BUDGET;\n\n /**\n * Allocates assets to the budget.\n * The caller must have already approved the contract to transfer the asset\n * If the asset transfer fails, the allocation will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if the allocation was successful\n */\n public async allocate(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams,\n ) {\n return await this.awaitResult(this.allocateRaw(transfer, params));\n }\n\n /**\n * Allocates assets to the budget.\n * The caller must have already approved the contract to transfer the asset\n * If the asset transfer fails, the allocation will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the allocation was successful\n */\n public async allocateRaw(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateManagedBudgetAllocate(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [prepareTransfer(transfer)],\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 writeManagedBudgetAllocate(this._config, request);\n return { hash, result };\n }\n\n /**\n * Clawbacks assets from the budget.\n * Only the owner can directly clawback assets from the budget\n * If the amount is zero, the entire balance of the asset will be transferred to the receiver\n * If the asset transfer fails, the reclamation will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if the request was successful\n */\n public async clawback(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams,\n ) {\n return await this.awaitResult(this.clawbackRaw(transfer, params));\n }\n\n /**\n * Clawbacks assets from the budget.\n * Only the owner or admin can directly clawback assets from the budget\n * If the amount is zero, the entire balance of the asset will be transferred to the receiver\n * If the asset transfer fails, the reclamation will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the request was successful\n */\n public async clawbackRaw(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateManagedBudgetClawback(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [prepareTransfer(transfer)],\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 writeManagedBudgetClawback(this._config, request);\n return { hash, result };\n }\n\n /**\n * Clawbacks assets from an incentive associated with the budget via Boost Core.\n * Only the authorized users can clawback assets from an incentive.\n * If the asset transfer fails, the reclamation will revert.\n *\n * @example\n * ```ts\n * const [amount, address] = await budgets.budget.clawbackFromTarget(\n * core.assertValidAddress(),\n * erc20Incentive.buildClawbackData(1n),\n * boost.id,\n * incentiveId,\n * );\n * ```\n * @public\n * @async\n * @param {Address} target - The address of a contract implementing clawback, typically `BoostCore`\n * @param {Hex} data - The encoded data payload for the clawback, can be acquired with `incentive.buildClawbackData`\n * @param {bigint | number} boostId - The ID of the boost\n * @param {bigint | number} incentiveId - The ID of the incentive\n * @param {?WriteParams} [params] - Optional write parameters\n * @returns {Promise<[bigint, Address]>} - Returns a tuple of amount reclaimed and the address reclaimed from\n */\n public async clawbackFromTarget(\n target: Address,\n data: Hex,\n boostId: bigint | number,\n incentiveId: bigint | number,\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.clawbackFromTargetRaw(target, data, boostId, incentiveId, params),\n );\n }\n\n /**\n * Clawbacks assets from an incentive associated with the budget via Boost Core.\n * Only the authorized users can clawback assets from an incentive.\n * If the asset transfer fails, the reclamation will revert.\n *\n * @example\n * ```ts\n * const { hash, result: [ amount, address ] } = await budgets.budget.clawbackFromTargetRaw(\n * core.assertValidAddress(),\n * erc20Incentive.buildClawbackData(1n),\n * boost.id,\n * incentiveId,\n * );\n * ```\n * @public\n * @async\n * @param {Address} target - The address of a contract implementing clawback, typically `BoostCore`\n * @param {Hex} data - The encoded data payload for the clawback, can be acquired with `incentive.buildClawbackData`\n * @param {bigint | number} boostId - The ID of the boost\n * @param {bigint | number} incentiveId - The ID of the incentive\n * @param {?WriteParams} [params] - Optional write parameters\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - Returns transaction hash and simulated result\n */\n public async clawbackFromTargetRaw(\n target: Address,\n data: Hex,\n boostId: bigint | number,\n incentiveId: bigint | number,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateManagedBudgetClawbackFromTarget(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [target, data, BigInt(boostId), BigInt(incentiveId)],\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 writeManagedBudgetClawbackFromTarget(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Disburses assets from the budget to a single recipient\n * If the asset transfer fails, the disbursement will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if the disbursement was successful\n */\n public async disburse(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams,\n ) {\n return await this.awaitResult(this.disburseRaw(transfer, params));\n }\n\n /**\n * Disburses assets from the budget to a single recipient\n * If the asset transfer fails, the disbursement will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the disbursement was successful\n */\n public async disburseRaw(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateManagedBudgetDisburse(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [prepareTransfer(transfer)],\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 writeManagedBudgetDisburse(this._config, request);\n return { hash, result };\n }\n\n /**\n * Disburses assets from the budget to multiple recipients\n *\n * @public\n * @async\n * @param {Array<FungibleTransferPayload | ERC1155TransferPayload>} transfers\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if all disbursements were successful\n */\n public async disburseBatch(\n transfers: Array<FungibleTransferPayload | ERC1155TransferPayload>,\n params?: WriteParams,\n ) {\n return await this.awaitResult(this.disburseBatchRaw(transfers, params));\n }\n\n /**\n * Disburses assets from the budget to multiple recipients\n *\n * @public\n * @async\n * @param {Array<FungibleTransferPayload | ERC1155TransferPayload>} transfers\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if all disbursements were successful\n */\n public async disburseBatchRaw(\n transfers: Array<FungibleTransferPayload | ERC1155TransferPayload>,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateManagedBudgetDisburseBatch(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [transfers.map(prepareTransfer)],\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 writeManagedBudgetDisburseBatch(this._config, request);\n return { hash, result };\n }\n\n /**\n * Pays out reserved management fees to the boost owner\n * for a given incentive\n *\n * @public\n * @async\n * @param {bigint | string} boostId\n * @param {bigint | string} incentiveId\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if the payout was successful\n */\n public async payManagementFee(\n boostId: bigint | string,\n incentiveId: bigint | string,\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.payManagementFeeRaw(boostId, incentiveId, params),\n );\n }\n\n /**\n * Pays out reserved management fees to the boost owner\n *\n * @public\n * @async\n * @param bigint boostId\n * @param bigint incentiveId\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the payout was successful\n */\n public async payManagementFeeRaw(\n boostId: bigint | string,\n incentiveId: bigint | string,\n params?: WriteParams,\n ) {\n const { request, result } =\n await simulateManagedBudgetWithFeesPayManagementFee(this._config, {\n address: this.assertValidAddress(),\n args: [boostId, incentiveId],\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 writeManagedBudgetWithFeesPayManagementFee(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Sets the management fee for the budget\n * @public\n * @async\n * @param {bigint} managementFee\n * @param {?WriteParams} [params]\n * @returns {Promise<void>} - will throw if the transaction fails\n */\n public async setManagementFee(managementFee: bigint, params?: WriteParams) {\n return await this.awaitResult(\n this.setManagementFeeRaw(managementFee, params),\n );\n }\n\n /**\n * Sets the management fee for the budget\n * @public\n * @async\n * @param {bigint} managementFee\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async setManagementFeeRaw(\n managementFee: bigint,\n params?: WriteParams,\n ) {\n const { request, result } =\n await simulateManagedBudgetWithFeesSetManagementFee(this._config, {\n address: this.assertValidAddress(),\n args: [managementFee],\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 writeManagedBudgetWithFeesSetManagementFee(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Get the configured management fee for the budget\n * @public\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - The management fee\n */\n public async managementFee(params?: ReadParams) {\n return await readManagedBudgetWithFeesManagementFee(this._config, {\n address: this.assertValidAddress(),\n args: [],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Get the owner of the budget\n *\n * @public\n * @param {?ReadParams} [params]\n * @returns {Promise<Address>}\n */\n public owner(params?: ReadParams) {\n return readManagedBudgetOwner(this._config, {\n address: this.assertValidAddress(),\n args: [],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Get the total amount of assets allocated to the budget, including any that have been distributed\n * If a tokenId is provided, get the total amount of ERC1155 assets allocated to the budget, including any that have been distributed\n *\n * @public\n * @param {Address} [asset=\"0x0000000000000000000000000000000000000000\"] - The address of the asset\n * @param {?(bigint | undefined)} [tokenId] - The ID of the token\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - The total amount of assets\n */\n public total(\n asset: Address = zeroAddress,\n tokenId?: bigint | undefined,\n params?: ReadParams,\n ) {\n return readManagedBudgetTotal(this._config, {\n address: this.assertValidAddress(),\n args: tokenId ? [asset, tokenId] : [asset],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Get the amount of assets available for distribution from the budget.\n * If a tokenId is provided, get the amount of ERC1155 assets available for distribution from the budget\n *\n * @public\n * @param {Address} [asset=\"0x0000000000000000000000000000000000000000\"]\n * @param {?(bigint | undefined)} [tokenId]\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - The amount of assets available\n */\n public available(\n asset: Address = zeroAddress,\n tokenId?: bigint | undefined,\n params?: ReadParams,\n ) {\n return readManagedBudgetAvailable(this._config, {\n address: this.assertValidAddress(),\n args: tokenId ? [asset, tokenId] : [asset],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Get the amount of assets that have been distributed from the budget.\n * If a tokenId is provided, get the amount of ERC1155 assets that have been distributed from the budget\n *\n * @public\n * @param {Address} [asset=\"0x0000000000000000000000000000000000000000\"]\n * @param {?(bigint | undefined)} [tokenId]\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - The amount of assets distributed\n */\n public distributed(\n asset: Address = zeroAddress,\n tokenId?: bigint | undefined,\n params?: ReadParams,\n ) {\n return readManagedBudgetDistributed(this._config, {\n address: this.assertValidAddress(),\n args: tokenId ? [asset, tokenId] : [asset],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * @inheritdoc\n *\n * @public\n * @param {?ManagedBudgetWithFeesPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: ManagedBudgetWithFeesPayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [payload, options] = this.validateDeploymentConfig(\n _payload,\n _options,\n );\n if (!payload.owner || payload.owner === zeroAddress) {\n const owner = options.account\n ? options.account.address\n : options.config\n ? getAccount(options.config).address\n : this._account?.address;\n if (owner) {\n payload.owner = owner;\n } else {\n throw new DeployableUnknownOwnerProvidedError();\n }\n }\n return {\n abi: managedBudgetWithFeesAbi,\n bytecode: bytecode as Hex,\n args: [prepareManagedBudgetWithFeesPayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n\n/**\n * Given a {@link ManagedBudgetWithFeesPayload}, properly encode a `ManagedBudgetWithFees.InitPayload` for use with {@link ManagedBudgetWithFees} initialization.\n *\n * @param {ManagedBudgetWithFeesPayload} param0\n * @param {Address} param0.owner - The budget's owner\n * @param {{}} param0.authorized - List of accounts authorized to use the budget. This list should include a Boost core address to interact with the protocol.\n * @param {{}} param0.roles - List of roles to assign to the corresponding account by index.\n * @returns {Hex}\n */\nexport const prepareManagedBudgetWithFeesPayload = ({\n owner,\n authorized,\n roles,\n managementFee,\n}: ManagedBudgetWithFeesPayload) => {\n return encodeAbiParameters(\n parseAbiParameters([\n 'ManagedBudgetWithFeesPayload payload',\n 'struct ManagedBudgetWithFeesPayload { address owner; address[] authorized; uint256[] roles; uint256 managementFee; }',\n ]),\n [\n {\n owner,\n authorized,\n roles: roles as unknown as Array<bigint>,\n managementFee,\n },\n ],\n );\n};\n","import { aBudgetAbi } from '@boostxyz/evm';\nimport {\n AManagedBudget,\n AManagedBudgetWithFees,\n} from '@boostxyz/evm/deploys/componentInterfaces.json';\nimport { readContract } from '@wagmi/core';\nimport type { Address, Hex } from 'viem';\nimport type { DeployableOptions } from '../Deployable/Deployable';\nimport { InvalidComponentInterfaceError } from '../errors';\nimport type { ReadParams } from '../utils';\nimport { ManagedBudget } from './ManagedBudget';\nimport { ManagedBudgetWithFees } from './ManagedBudgetWithFees';\n\nexport {\n // VestingBudget,\n ManagedBudget,\n};\n\n/**\n * A union type representing all valid protocol Budget implementations\n *\n * @export\n * @typedef {Budget}\n */\nexport type Budget = ManagedBudget | ManagedBudgetWithFees; // | VestingBudget\n\n/**\n * A map of Budget component interfaces to their constructors.\n *\n * @type {{ \"0xa0109882\": typeof ManagedBudget; }}\n */\nexport const BudgetByComponentInterface = {\n // ['0x64683da1']: VestingBudget,\n // ['0x2929d19c']: SimpleBudget,\n [AManagedBudget as Hex]: ManagedBudget,\n [AManagedBudgetWithFees as Hex]: ManagedBudgetWithFees,\n};\n\n/**\n * A function that will read a contract's component interface using `getComponentInterface` and return the correct instantiated instance.\n *\n * @export\n * @async\n * @param {DeployableOptions} options\n * @param {Address} address\n * @returns {Promise<ManagedBudget | ManagedBudgetWithFees>}\n * @throws {@link InvalidComponentInterfaceError}\n */\nexport async function budgetFromAddress(\n options: DeployableOptions,\n address: Address,\n params?: ReadParams,\n) {\n const interfaceId = (await readContract(options.config, {\n abi: aBudgetAbi,\n functionName: 'getComponentInterface',\n address,\n ...params,\n })) as keyof typeof BudgetByComponentInterface;\n const Ctor = BudgetByComponentInterface[interfaceId];\n if (!Ctor) {\n throw new InvalidComponentInterfaceError(\n Object.keys(BudgetByComponentInterface) as Hex[],\n interfaceId as Hex,\n );\n }\n return new Ctor(options, address);\n}\n"],"names":["_ManagedBudgetWithFees","DeployableTargetWithRBAC","managedBudgetWithFeesAbi","transfer","params","request","result","simulateManagedBudgetAllocate","prepareTransfer","writeManagedBudgetAllocate","simulateManagedBudgetClawback","writeManagedBudgetClawback","target","data","boostId","incentiveId","simulateManagedBudgetClawbackFromTarget","writeManagedBudgetClawbackFromTarget","simulateManagedBudgetDisburse","writeManagedBudgetDisburse","transfers","simulateManagedBudgetDisburseBatch","writeManagedBudgetDisburseBatch","simulateManagedBudgetWithFeesPayManagementFee","writeManagedBudgetWithFeesPayManagementFee","managementFee","simulateManagedBudgetWithFeesSetManagementFee","writeManagedBudgetWithFeesSetManagementFee","readManagedBudgetWithFeesManagementFee","readManagedBudgetOwner","asset","zeroAddress","tokenId","readManagedBudgetTotal","readManagedBudgetAvailable","readManagedBudgetDistributed","_payload","_options","payload","options","owner","getAccount","_a","DeployableUnknownOwnerProvidedError","bytecode","prepareManagedBudgetWithFeesPayload","ManagedBudgetWithFeesBases","RegistryType","ManagedBudgetWithFees","authorized","roles","encodeAbiParameters","parseAbiParameters","BudgetByComponentInterface","AManagedBudget","ManagedBudget","AManagedBudgetWithFees","budgetFromAddress","address","interfaceId","readContract","aBudgetAbi","Ctor","InvalidComponentInterfaceError"],"mappings":"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"}
1
+ {"version":3,"file":"Budget-Dw3jHqDC.cjs","sources":["../src/Budgets/ManagedBudgetWithFees.ts","../src/Budgets/Budget.ts"],"sourcesContent":["import {\n managedBudgetWithFeesAbi,\n readManagedBudgetAvailable,\n readManagedBudgetDistributed,\n readManagedBudgetOwner,\n readManagedBudgetTotal,\n readManagedBudgetWithFeesManagementFee,\n simulateManagedBudgetAllocate,\n simulateManagedBudgetClawback,\n simulateManagedBudgetClawbackFromTarget,\n simulateManagedBudgetDisburse,\n simulateManagedBudgetDisburseBatch,\n simulateManagedBudgetWithFeesPayManagementFee,\n simulateManagedBudgetWithFeesSetManagementFee,\n writeManagedBudgetAllocate,\n writeManagedBudgetClawback,\n writeManagedBudgetClawbackFromTarget,\n writeManagedBudgetDisburse,\n writeManagedBudgetDisburseBatch,\n writeManagedBudgetWithFeesPayManagementFee,\n writeManagedBudgetWithFeesSetManagementFee,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/budgets/ManagedBudgetWithFees.sol/ManagedBudgetWithFees.json';\nimport { getAccount } from '@wagmi/core';\nimport {\n type Address,\n type ContractEventName,\n type Hex,\n encodeAbiParameters,\n parseAbiParameters,\n zeroAddress,\n} from 'viem';\nimport { ManagedBudgetWithFees as ManagedBudgetWithFeesBases } from '../../dist/deployments.json';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport {\n DeployableTargetWithRBAC,\n type Roles,\n} from '../Deployable/DeployableTargetWithRBAC';\nimport { DeployableUnknownOwnerProvidedError } from '../errors';\nimport type {\n ERC1155TransferPayload,\n FungibleTransferPayload,\n} from '../transfers';\nimport {\n type GenericLog,\n type ReadParams,\n RegistryType,\n type WriteParams,\n} from '../utils';\nimport { prepareTransfer } from './ManagedBudget';\nexport { managedBudgetWithFeesAbi };\nexport type { ERC1155TransferPayload, FungibleTransferPayload };\n\n/**\n * The object representation of a `ManagedBudgetWithFeesPayload.InitPayload`\n *\n * @export\n * @interface ManagedBudgetWithFeesPayload\n * @typedef {ManagedBudgetWithFeesPayload}\n */\nexport interface ManagedBudgetWithFeesPayload {\n /**\n * The budget's owner\n *\n * @type {Address}\n */\n owner: Address;\n /**\n * List of accounts authorized to use the budget. This list should include a Boost core address to interact with the protocol.\n *\n * @type {Address[]}\n */\n authorized: Address[];\n /**\n * List of roles to assign to the corresponding account by index.\n *\n * @type {Roles[]}\n */\n roles: Roles[];\n /**\n * Management Fee rate for incentive payouts\n *\n * @type {bigint}\n */\n managementFee: bigint;\n}\n\n/**\n * A generic `viem.Log` event with support for `ManagedBudgetWithFees` event types.\n *\n * @export\n * @typedef {ManagedBudgetWithFeesLog}\n * @template {ContractEventName<typeof managedBudgetWithFeesAbi>} [event=ContractEventName<\n * typeof managedBudgetWithFeesAbi\n * >]\n */\nexport type ManagedBudgetWithFeesLog<\n event extends ContractEventName<\n typeof managedBudgetWithFeesAbi\n > = ContractEventName<typeof managedBudgetWithFeesAbi>,\n> = GenericLog<typeof managedBudgetWithFeesAbi, event>;\n\n/**\n * A minimal budget implementation that simply holds and distributes tokens (ERC20-like and native)\n * This type of budget supports ETH, ERC20, and ERC1155 assets only\n *\n * @export\n * @class ManagedBudgetWithFees\n * @typedef {ManagedBudgetWithFees}\n * @extends {DeployableTargetWithRBAC<ManagedBudgetWithFeesPayload>}\n */\nexport class ManagedBudgetWithFees extends DeployableTargetWithRBAC<\n ManagedBudgetWithFeesPayload,\n typeof managedBudgetWithFeesAbi\n> {\n /**\n * @inheritdoc\n *\n * @public\n * @readonly\n * @type {*}\n */\n public override readonly abi = managedBudgetWithFeesAbi;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {Record<number, Address>}\n */\n public static override bases: Record<number, Address> = {\n 31337: import.meta.env.VITE_MANAGED_BUDGET_WITH_FEES_BASE,\n ...(ManagedBudgetWithFeesBases as Record<number, Address>),\n };\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {RegistryType}\n */\n public static override registryType: RegistryType = RegistryType.BUDGET;\n\n /**\n * Allocates assets to the budget.\n * The caller must have already approved the contract to transfer the asset\n * If the asset transfer fails, the allocation will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if the allocation was successful\n */\n public async allocate(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams,\n ) {\n return await this.awaitResult(this.allocateRaw(transfer, params));\n }\n\n /**\n * Allocates assets to the budget.\n * The caller must have already approved the contract to transfer the asset\n * If the asset transfer fails, the allocation will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the allocation was successful\n */\n public async allocateRaw(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateManagedBudgetAllocate(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [prepareTransfer(transfer)],\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 writeManagedBudgetAllocate(this._config, request);\n return { hash, result };\n }\n\n /**\n * Clawbacks assets from the budget.\n * Only the owner can directly clawback assets from the budget\n * If the amount is zero, the entire balance of the asset will be transferred to the receiver\n * If the asset transfer fails, the reclamation will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if the request was successful\n */\n public async clawback(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams,\n ) {\n return await this.awaitResult(this.clawbackRaw(transfer, params));\n }\n\n /**\n * Clawbacks assets from the budget.\n * Only the owner or admin can directly clawback assets from the budget\n * If the amount is zero, the entire balance of the asset will be transferred to the receiver\n * If the asset transfer fails, the reclamation will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the request was successful\n */\n public async clawbackRaw(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateManagedBudgetClawback(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [prepareTransfer(transfer)],\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 writeManagedBudgetClawback(this._config, request);\n return { hash, result };\n }\n\n /**\n * Clawbacks assets from an incentive associated with the budget via Boost Core.\n * Only the authorized users can clawback assets from an incentive.\n * If the asset transfer fails, the reclamation will revert.\n *\n * @example\n * ```ts\n * const [amount, address] = await budgets.budget.clawbackFromTarget(\n * core.assertValidAddress(),\n * erc20Incentive.buildClawbackData(1n),\n * boost.id,\n * incentiveId,\n * );\n * ```\n * @public\n * @async\n * @param {Address} target - The address of a contract implementing clawback, typically `BoostCore`\n * @param {Hex} data - The encoded data payload for the clawback, can be acquired with `incentive.buildClawbackData`\n * @param {bigint | number} boostId - The ID of the boost\n * @param {bigint | number} incentiveId - The ID of the incentive\n * @param {?WriteParams} [params] - Optional write parameters\n * @returns {Promise<[bigint, Address]>} - Returns a tuple of amount reclaimed and the address reclaimed from\n */\n public async clawbackFromTarget(\n target: Address,\n data: Hex,\n boostId: bigint | number,\n incentiveId: bigint | number,\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.clawbackFromTargetRaw(target, data, boostId, incentiveId, params),\n );\n }\n\n /**\n * Clawbacks assets from an incentive associated with the budget via Boost Core.\n * Only the authorized users can clawback assets from an incentive.\n * If the asset transfer fails, the reclamation will revert.\n *\n * @example\n * ```ts\n * const { hash, result: [ amount, address ] } = await budgets.budget.clawbackFromTargetRaw(\n * core.assertValidAddress(),\n * erc20Incentive.buildClawbackData(1n),\n * boost.id,\n * incentiveId,\n * );\n * ```\n * @public\n * @async\n * @param {Address} target - The address of a contract implementing clawback, typically `BoostCore`\n * @param {Hex} data - The encoded data payload for the clawback, can be acquired with `incentive.buildClawbackData`\n * @param {bigint | number} boostId - The ID of the boost\n * @param {bigint | number} incentiveId - The ID of the incentive\n * @param {?WriteParams} [params] - Optional write parameters\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - Returns transaction hash and simulated result\n */\n public async clawbackFromTargetRaw(\n target: Address,\n data: Hex,\n boostId: bigint | number,\n incentiveId: bigint | number,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateManagedBudgetClawbackFromTarget(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [target, data, BigInt(boostId), BigInt(incentiveId)],\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 writeManagedBudgetClawbackFromTarget(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Disburses assets from the budget to a single recipient\n * If the asset transfer fails, the disbursement will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if the disbursement was successful\n */\n public async disburse(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams,\n ) {\n return await this.awaitResult(this.disburseRaw(transfer, params));\n }\n\n /**\n * Disburses assets from the budget to a single recipient\n * If the asset transfer fails, the disbursement will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the disbursement was successful\n */\n public async disburseRaw(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateManagedBudgetDisburse(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [prepareTransfer(transfer)],\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 writeManagedBudgetDisburse(this._config, request);\n return { hash, result };\n }\n\n /**\n * Disburses assets from the budget to multiple recipients\n *\n * @public\n * @async\n * @param {Array<FungibleTransferPayload | ERC1155TransferPayload>} transfers\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if all disbursements were successful\n */\n public async disburseBatch(\n transfers: Array<FungibleTransferPayload | ERC1155TransferPayload>,\n params?: WriteParams,\n ) {\n return await this.awaitResult(this.disburseBatchRaw(transfers, params));\n }\n\n /**\n * Disburses assets from the budget to multiple recipients\n *\n * @public\n * @async\n * @param {Array<FungibleTransferPayload | ERC1155TransferPayload>} transfers\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if all disbursements were successful\n */\n public async disburseBatchRaw(\n transfers: Array<FungibleTransferPayload | ERC1155TransferPayload>,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateManagedBudgetDisburseBatch(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [transfers.map(prepareTransfer)],\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 writeManagedBudgetDisburseBatch(this._config, request);\n return { hash, result };\n }\n\n /**\n * Pays out reserved management fees to the boost owner\n * for a given incentive\n *\n * @public\n * @async\n * @param {bigint | string} boostId\n * @param {bigint | string} incentiveId\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if the payout was successful\n */\n public async payManagementFee(\n boostId: bigint | string,\n incentiveId: bigint | string,\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.payManagementFeeRaw(boostId, incentiveId, params),\n );\n }\n\n /**\n * Pays out reserved management fees to the boost owner\n *\n * @public\n * @async\n * @param bigint boostId\n * @param bigint incentiveId\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the payout was successful\n */\n public async payManagementFeeRaw(\n boostId: bigint | string,\n incentiveId: bigint | string,\n params?: WriteParams,\n ) {\n const { request, result } =\n await simulateManagedBudgetWithFeesPayManagementFee(this._config, {\n address: this.assertValidAddress(),\n args: [boostId, incentiveId],\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 writeManagedBudgetWithFeesPayManagementFee(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Sets the management fee for the budget\n * @public\n * @async\n * @param {bigint} managementFee\n * @param {?WriteParams} [params]\n * @returns {Promise<void>} - will throw if the transaction fails\n */\n public async setManagementFee(managementFee: bigint, params?: WriteParams) {\n return await this.awaitResult(\n this.setManagementFeeRaw(managementFee, params),\n );\n }\n\n /**\n * Sets the management fee for the budget\n * @public\n * @async\n * @param {bigint} managementFee\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async setManagementFeeRaw(\n managementFee: bigint,\n params?: WriteParams,\n ) {\n const { request, result } =\n await simulateManagedBudgetWithFeesSetManagementFee(this._config, {\n address: this.assertValidAddress(),\n args: [managementFee],\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 writeManagedBudgetWithFeesSetManagementFee(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Get the configured management fee for the budget\n * @public\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - The management fee\n */\n public async managementFee(params?: ReadParams) {\n return await readManagedBudgetWithFeesManagementFee(this._config, {\n address: this.assertValidAddress(),\n args: [],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Get the owner of the budget\n *\n * @public\n * @param {?ReadParams} [params]\n * @returns {Promise<Address>}\n */\n public owner(params?: ReadParams) {\n return readManagedBudgetOwner(this._config, {\n address: this.assertValidAddress(),\n args: [],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Get the total amount of assets allocated to the budget, including any that have been distributed\n * If a tokenId is provided, get the total amount of ERC1155 assets allocated to the budget, including any that have been distributed\n *\n * @public\n * @param {Address} [asset=\"0x0000000000000000000000000000000000000000\"] - The address of the asset\n * @param {?(bigint | undefined)} [tokenId] - The ID of the token\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - The total amount of assets\n */\n public total(\n asset: Address = zeroAddress,\n tokenId?: bigint | undefined,\n params?: ReadParams,\n ) {\n return readManagedBudgetTotal(this._config, {\n address: this.assertValidAddress(),\n args: tokenId ? [asset, tokenId] : [asset],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Get the amount of assets available for distribution from the budget.\n * If a tokenId is provided, get the amount of ERC1155 assets available for distribution from the budget\n *\n * @public\n * @param {Address} [asset=\"0x0000000000000000000000000000000000000000\"]\n * @param {?(bigint | undefined)} [tokenId]\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - The amount of assets available\n */\n public available(\n asset: Address = zeroAddress,\n tokenId?: bigint | undefined,\n params?: ReadParams,\n ) {\n return readManagedBudgetAvailable(this._config, {\n address: this.assertValidAddress(),\n args: tokenId ? [asset, tokenId] : [asset],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Get the amount of assets that have been distributed from the budget.\n * If a tokenId is provided, get the amount of ERC1155 assets that have been distributed from the budget\n *\n * @public\n * @param {Address} [asset=\"0x0000000000000000000000000000000000000000\"]\n * @param {?(bigint | undefined)} [tokenId]\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - The amount of assets distributed\n */\n public distributed(\n asset: Address = zeroAddress,\n tokenId?: bigint | undefined,\n params?: ReadParams,\n ) {\n return readManagedBudgetDistributed(this._config, {\n address: this.assertValidAddress(),\n args: tokenId ? [asset, tokenId] : [asset],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * @inheritdoc\n *\n * @public\n * @param {?ManagedBudgetWithFeesPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: ManagedBudgetWithFeesPayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [payload, options] = this.validateDeploymentConfig(\n _payload,\n _options,\n );\n if (!payload.owner || payload.owner === zeroAddress) {\n const owner = options.account\n ? options.account.address\n : options.config\n ? getAccount(options.config).address\n : this._account?.address;\n if (owner) {\n payload.owner = owner;\n } else {\n throw new DeployableUnknownOwnerProvidedError();\n }\n }\n return {\n abi: managedBudgetWithFeesAbi,\n bytecode: bytecode as Hex,\n args: [prepareManagedBudgetWithFeesPayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n\n/**\n * Given a {@link ManagedBudgetWithFeesPayload}, properly encode a `ManagedBudgetWithFees.InitPayload` for use with {@link ManagedBudgetWithFees} initialization.\n *\n * @param {ManagedBudgetWithFeesPayload} param0\n * @param {Address} param0.owner - The budget's owner\n * @param {{}} param0.authorized - List of accounts authorized to use the budget. This list should include a Boost core address to interact with the protocol.\n * @param {{}} param0.roles - List of roles to assign to the corresponding account by index.\n * @returns {Hex}\n */\nexport const prepareManagedBudgetWithFeesPayload = ({\n owner,\n authorized,\n roles,\n managementFee,\n}: ManagedBudgetWithFeesPayload) => {\n return encodeAbiParameters(\n parseAbiParameters([\n 'ManagedBudgetWithFeesPayload payload',\n 'struct ManagedBudgetWithFeesPayload { address owner; address[] authorized; uint256[] roles; uint256 managementFee; }',\n ]),\n [\n {\n owner,\n authorized,\n roles: roles as unknown as Array<bigint>,\n managementFee,\n },\n ],\n );\n};\n","import { aBudgetAbi } from '@boostxyz/evm';\nimport {\n AManagedBudget,\n AManagedBudgetWithFees,\n} from '@boostxyz/evm/deploys/componentInterfaces.json';\nimport { readContract } from '@wagmi/core';\nimport type { Address, Hex } from 'viem';\nimport type { DeployableOptions } from '../Deployable/Deployable';\nimport { InvalidComponentInterfaceError } from '../errors';\nimport type { ReadParams } from '../utils';\nimport { ManagedBudget } from './ManagedBudget';\nimport { ManagedBudgetWithFees } from './ManagedBudgetWithFees';\n\nexport {\n // VestingBudget,\n ManagedBudget,\n};\n\n/**\n * A union type representing all valid protocol Budget implementations\n *\n * @export\n * @typedef {Budget}\n */\nexport type Budget = ManagedBudget | ManagedBudgetWithFees; // | VestingBudget\n\n/**\n * A map of Budget component interfaces to their constructors.\n *\n * @type {{ \"0xa0109882\": typeof ManagedBudget; }}\n */\nexport const BudgetByComponentInterface = {\n // ['0x64683da1']: VestingBudget,\n // ['0x2929d19c']: SimpleBudget,\n [AManagedBudget as Hex]: ManagedBudget,\n [AManagedBudgetWithFees as Hex]: ManagedBudgetWithFees,\n};\n\n/**\n * A function that will read a contract's component interface using `getComponentInterface` and return the correct instantiated instance.\n *\n * @export\n * @async\n * @param {DeployableOptions} options\n * @param {Address} address\n * @returns {Promise<ManagedBudget | ManagedBudgetWithFees>}\n * @throws {@link InvalidComponentInterfaceError}\n */\nexport async function budgetFromAddress(\n options: DeployableOptions,\n address: Address,\n params?: ReadParams,\n) {\n const interfaceId = (await readContract(options.config, {\n abi: aBudgetAbi,\n functionName: 'getComponentInterface',\n address,\n ...params,\n })) as keyof typeof BudgetByComponentInterface;\n const Ctor = BudgetByComponentInterface[interfaceId];\n if (!Ctor) {\n throw new InvalidComponentInterfaceError(\n Object.keys(BudgetByComponentInterface) as Hex[],\n interfaceId as Hex,\n );\n }\n return new Ctor(options, address);\n}\n"],"names":["_ManagedBudgetWithFees","DeployableTargetWithRBAC","managedBudgetWithFeesAbi","transfer","params","request","result","simulateManagedBudgetAllocate","prepareTransfer","writeManagedBudgetAllocate","simulateManagedBudgetClawback","writeManagedBudgetClawback","target","data","boostId","incentiveId","simulateManagedBudgetClawbackFromTarget","writeManagedBudgetClawbackFromTarget","simulateManagedBudgetDisburse","writeManagedBudgetDisburse","transfers","simulateManagedBudgetDisburseBatch","writeManagedBudgetDisburseBatch","simulateManagedBudgetWithFeesPayManagementFee","writeManagedBudgetWithFeesPayManagementFee","managementFee","simulateManagedBudgetWithFeesSetManagementFee","writeManagedBudgetWithFeesSetManagementFee","readManagedBudgetWithFeesManagementFee","readManagedBudgetOwner","asset","zeroAddress","tokenId","readManagedBudgetTotal","readManagedBudgetAvailable","readManagedBudgetDistributed","_payload","_options","payload","options","owner","getAccount","_a","DeployableUnknownOwnerProvidedError","bytecode","prepareManagedBudgetWithFeesPayload","ManagedBudgetWithFeesBases","RegistryType","ManagedBudgetWithFees","authorized","roles","encodeAbiParameters","parseAbiParameters","BudgetByComponentInterface","AManagedBudget","ManagedBudget","AManagedBudgetWithFees","budgetFromAddress","address","interfaceId","readContract","aBudgetAbi","Ctor","InvalidComponentInterfaceError"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../generated-DAZo6jo9.cjs");require("../componentInterfaces-Bt-4sNB5.cjs");require("@wagmi/core");require("../errors.cjs");const r=require("./ManagedBudget.cjs"),e=require("../Budget-BSqx3xcT.cjs");exports.ManagedBudget=r.ManagedBudget;exports.BudgetByComponentInterface=e.BudgetByComponentInterface;exports.budgetFromAddress=e.budgetFromAddress;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../generated-DAZo6jo9.cjs");require("../componentInterfaces-Bt-4sNB5.cjs");require("@wagmi/core");require("../errors.cjs");const r=require("./ManagedBudget.cjs"),e=require("../Budget-Dw3jHqDC.cjs");exports.ManagedBudget=r.ManagedBudget;exports.BudgetByComponentInterface=e.BudgetByComponentInterface;exports.budgetFromAddress=e.budgetFromAddress;
2
2
  //# sourceMappingURL=Budget.cjs.map
@@ -3,7 +3,7 @@ import "../componentInterfaces-C4uAYjSo.js";
3
3
  import "@wagmi/core";
4
4
  import "../errors.js";
5
5
  import { ManagedBudget as d } from "./ManagedBudget.js";
6
- import { B as g, b as i } from "../Budget-C3eMp8lh.js";
6
+ import { B as g, b as i } from "../Budget-DGPItPqt.js";
7
7
  export {
8
8
  g as BudgetByComponentInterface,
9
9
  d as ManagedBudget,
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../generated-DAZo6jo9.cjs"),p=require("@wagmi/core"),t=require("viem"),R=require("../deployments-B1Mh8zRA.cjs"),T=require("../Deployable/DeployableTargetWithRBAC.cjs"),h=require("../errors.cjs"),u=require("../transfers.cjs"),O=require("../utils.cjs"),m="0x6080604052348015600e575f80fd5b50601b601f60201b60201c565b60b0565b5f602c608760201b60201c565b90508054600181161560455763f92ee8a95f526004601cfd5b8160c01c808260011c146082578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b613931806100bd5f395ff3fe608060405260043610610212575f3560e01c8063715018a611610117578063ec87621c1161009f578063f8724aba1161006e578063f8724aba146107b6578063f9a802c3146107f2578063fa4ca9b11461082e578063fe9fbb801461086a578063fee81cf4146108a657610219565b8063ec87621c14610718578063f04e283e14610742578063f23a6e611461075e578063f2fde38b1461079a57610219565b8063b3005793116100e6578063b300579314610613578063bc197c8114610650578063be4994f81461068c578063d2514e84146106b4578063dcc21361146106f057610219565b8063715018a61461057957806375b238fc14610583578063774c33ab146105ad5780638da5cb5b146105e957610219565b8063439fab911161019a578063514e62fc11610169578063514e62fc1461048b57806354d1f13d146104c7578063578bcf35146104d15780635aef467a1461050d57806361400c991461053d57610219565b8063439fab91146103cf578063451cc191146103f7578063474f5a44146104335780634a4ee7b11461046f57610219565b80631cd64df4116101e15780631cd64df4146102fb578063256929621461033757806328d6183b146103415780632de948071461036b5780634359d28a146103a757610219565b806301ffc9a71461024b57806310098ad514610287578063183a4f6e146102c35780631c10893f146102df57610219565b3661021957005b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b348015610256575f80fd5b50610271600480360381019061026c91906126fd565b6108e2565b60405161027e9190612742565b60405180910390f35b348015610292575f80fd5b506102ad60048036038101906102a891906127b5565b610a2b565b6040516102ba91906127f8565b60405180910390f35b6102dd60048036038101906102d8919061283b565b610a96565b005b6102f960048036038101906102f49190612866565b610aa3565b005b348015610306575f80fd5b50610321600480360381019061031c9190612866565b610ab9565b60405161032e9190612742565b60405180910390f35b61033f610acf565b005b34801561034c575f80fd5b50610355610b20565b60405161036291906128b3565b60405180910390f35b348015610376575f80fd5b50610391600480360381019061038c91906127b5565b610b47565b60405161039e91906127f8565b60405180910390f35b3480156103b2575f80fd5b506103cd60048036038101906103c89190612982565b610b60565b005b3480156103da575f80fd5b506103f560048036038101906103f09190612a55565b610c6e565b005b348015610402575f80fd5b5061041d60048036038101906104189190612a55565b610d66565b60405161042a91906127f8565b60405180910390f35b34801561043e575f80fd5b5061045960048036038101906104549190612a55565b610d6d565b60405161046691906127f8565b60405180910390f35b61048960048036038101906104849190612866565b610f66565b005b348015610496575f80fd5b506104b160048036038101906104ac9190612866565b610f7c565b6040516104be9190612742565b60405180910390f35b6104cf610f93565b005b3480156104dc575f80fd5b506104f760048036038101906104f291906127b5565b610fcc565b60405161050491906127f8565b60405180910390f35b61052760048036038101906105229190612a55565b611011565b6040516105349190612742565b60405180910390f35b348015610548575f80fd5b50610563600480360381019061055e9190612af5565b611381565b6040516105709190612742565b60405180910390f35b6105816113e5565b005b34801561058e575f80fd5b506105976113f8565b6040516105a491906127f8565b60405180910390f35b3480156105b8575f80fd5b506105d360048036038101906105ce9190612866565b6113fd565b6040516105e091906127f8565b60405180910390f35b3480156105f4575f80fd5b506105fd611453565b60405161060a9190612b4f565b60405180910390f35b34801561061e575f80fd5b5061063960048036038101906106349190612b68565b61147b565b604051610647929190612bec565b60405180910390f35b34801561065b575f80fd5b5061067660048036038101906106719190612c68565b611638565b60405161068391906128b3565b60405180910390f35b348015610697575f80fd5b506106b260048036038101906106ad9190612d3f565b61164f565b005b3480156106bf575f80fd5b506106da60048036038101906106d591906127b5565b611705565b6040516106e791906127f8565b60405180910390f35b3480156106fb575f80fd5b5061071660048036038101906107119190612d3f565b61175d565b005b348015610723575f80fd5b5061072c611813565b60405161073991906127f8565b60405180910390f35b61075c600480360381019061075791906127b5565b611818565b005b348015610769575f80fd5b50610784600480360381019061077f9190612dbd565b611856565b60405161079191906128b3565b60405180910390f35b6107b460048036038101906107af91906127b5565b61186b565b005b3480156107c1575f80fd5b506107dc60048036038101906107d79190612866565b611894565b6040516107e991906127f8565b60405180910390f35b3480156107fd575f80fd5b5061081860048036038101906108139190612866565b611916565b60405161082591906127f8565b60405180910390f35b348015610839575f80fd5b50610854600480360381019061084f9190612a55565b6119ef565b6040516108619190612742565b60405180910390f35b348015610875575f80fd5b50610890600480360381019061088b91906127b5565b611cf4565b60405161089d9190612742565b60405180910390f35b3480156108b1575f80fd5b506108cc60048036038101906108c791906127b5565b611d47565b6040516108d991906127f8565b60405180910390f35b5f7f5fbfaa4e000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109ac57507f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a1457507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a245750610a2382611d60565b5b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610a8d57610a88308373ffffffffffffffffffffffffffffffffffffffff16611dd990919063ffffffff16565b610a8f565b475b9050919050565b610aa03382611e0c565b50565b610aab611e1b565b610ab58282611e52565b5050565b5f8182610ac585610b47565b1614905092915050565b5f610ad8611e62565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f5fbfaa4e00000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b6002610b6b81611e6c565b828290508585905014610baa576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015610c66575f848483818110610bcb57610bca612e53565b5b9050602002016020810190610be09190612eaa565b90506001151581151503610c2557610c20878784818110610c0457610c03612e53565b5b9050602002016020810190610c1991906127b5565b6001611e52565b610c58565b610c57878784818110610c3b57610c3a612e53565b5b9050602002016020810190610c5091906127b5565b6001611e0c565b5b508080600101915050610bac565b505050505050565b5f610c77611ea1565b90508054600382558015610ca95760018160011c14303b10610ca05763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8383810190610cba919061317e565b9050610cc8815f0151611eca565b5f5b816020015151811015610d2a57610d1d82602001518281518110610cf157610cf0612e53565b5b602002602001015183604001518381518110610d1057610d0f612e53565b5b6020026020010151611fa0565b8080600101915050610cca565b50508015610d61576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f92915050565b5f6002610d7981611e6c565b5f8484810190610d899190613329565b90505f806002811115610d9f57610d9e613370565b5b825f01516002811115610db557610db4613370565b5b1480610de8575060016002811115610dd057610dcf613370565b5b825f01516002811115610de657610de5613370565b5b145b15610e47575f8260600151806020019051810190610e0691906133ea565b9050610e3b836020015184604001515f845f015114610e2857835f0151610e36565b610e358660200151610a2b565b5b611fe1565b805f0151915050610f59565b600280811115610e5a57610e59613370565b5b825f01516002811115610e7057610e6f613370565b5b03610f4e575f8260600151806020019051810190610e8e919061350e565b9050610f4183602001518460400151835f01515f856020015114610eb6578460200151610f37565b866020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30875f01516040518363ffffffff1660e01b8152600401610ef7929190613555565b602060405180830381865afa158015610f12573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f36919061357c565b5b85604001516121a7565b8060200151915050610f58565b8093505050610f5f565b5b80935050505b5092915050565b610f6e611e1b565b610f788282611e0c565b5050565b5f8082610f8885610b47565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8083838101906110229190613329565b90505f600281111561103757611036613370565b5b815f0151600281111561104d5761104c613370565b5b036110c3575f816060015180602001905181019061106b91906133ea565b9050805f015134146110bd578160200151815f01516040517fcece04c50000000000000000000000000000000000000000000000000000000081526004016110b4929190613555565b60405180910390fd5b50611375565b600160028111156110d7576110d6613370565b5b815f015160028111156110ed576110ec613370565b5b036111c8575f816060015180602001905181019061110b91906133ea565b9050611145826040015130835f0151856020015173ffffffffffffffffffffffffffffffffffffffff166123d3909392919063ffffffff16565b805f015161117630846020015173ffffffffffffffffffffffffffffffffffffffff16611dd990919063ffffffff16565b10156111c2578160200151815f01516040517fcece04c50000000000000000000000000000000000000000000000000000000081526004016111b9929190613555565b60405180910390fd5b50611374565b6002808111156111db576111da613370565b5b815f015160028111156111f1576111f0613370565b5b0361136a575f816060015180602001905181019061120f919061350e565b9050816020015173ffffffffffffffffffffffffffffffffffffffff1663f242432a836040015130845f0151856020015186604001516040518663ffffffff1660e01b81526004016112659594939291906135f9565b5f604051808303815f87803b15801561127c575f80fd5b505af115801561128e573d5f803e3d5ffd5b505050508060200151826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b81526004016112d8929190613555565b602060405180830381865afa1580156112f3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611317919061357c565b101561136457816020015181602001516040517fcece04c500000000000000000000000000000000000000000000000000000000815260040161135b929190613555565b60405180910390fd5b50611373565b5f91505061137b565b5b5b60019150505b92915050565b5f805f90505b838390508110156113d9576113bf8484838181106113a8576113a7612e53565b5b90506020028101906113ba919061365d565b6119ef565b6113cc575f9150506113df565b8080600101915050611387565b50600190505b92915050565b6113ed611e1b565b6113f65f61242d565b565b600281565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f8061148633611cf4565b6114bc576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60405180604001604052803073ffffffffffffffffffffffffffffffffffffffff16815260200188888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081525090505f8890505f808273ffffffffffffffffffffffffffffffffffffffff1663dd98558c856040516020016115609190613750565b6040516020818303038152906040528a8a6040518463ffffffff1660e01b815260040161158f93929190613770565b60408051808303815f875af11580156115aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ce91906137c0565b91509150815f808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461161d919061382b565b92505081905550818195509550505050509550959350505050565b5f63bc197c8160e01b905098975050505050505050565b600261165a81611e6c565b828290508585905014611699576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b858590508110156116fd576116f08686838181106116bc576116bb612e53565b5b90506020020160208101906116d191906127b5565b8585848181106116e4576116e3612e53565b5b90506020020135611e52565b808060010191505061169b565b505050505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461174c83610a2b565b611756919061385e565b9050919050565b600261176881611e6c565b8282905085859050146117a7576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8585905081101561180b576117fe8686838181106117ca576117c9612e53565b5b90506020020160208101906117df91906127b5565b8585848181106117f2576117f1612e53565b5b90506020020135611e0c565b80806001019150506117a9565b505050505050565b600181565b611820611e1b565b63389a75e1600c52805f526020600c20805442111561184657636f5e88185f526004601cfd5b5f8155506118538161242d565b50565b5f63f23a6e6160e01b90509695505050505050565b611873611e1b565b8060601b61188857637448fbae5f526004601cfd5b6118918161242d565b50565b5f8273ffffffffffffffffffffffffffffffffffffffff1662fdd58e30846040518363ffffffff1660e01b81526004016118cf929190613555565b602060405180830381865afa1580156118ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061190e919061357c565b905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20548373ffffffffffffffffffffffffffffffffffffffff1662fdd58e30856040518363ffffffff1660e01b815260040161199e929190613555565b602060405180830381865afa1580156119b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119dd919061357c565b6119e7919061385e565b905092915050565b5f6119f933611cf4565b611a2f576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8383810190611a3f9190613329565b905060016002811115611a5557611a54613370565b5b815f01516002811115611a6b57611a6a613370565b5b1480611a9d57505f6002811115611a8557611a84613370565b5b815f01516002811115611a9b57611a9a613370565b5b145b15611b96575f8160600151806020019051810190611abb91906133ea565b90505f611acb8360200151610a2b565b905080825f01511115611b2057826020015181835f01516040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401611b1793929190613891565b60405180910390fd5b815f01515f80856020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611b72919061385e565b92505081905550611b8f83602001518460400151845f0151611fe1565b5050611ce8565b600280811115611ba957611ba8613370565b5b815f01516002811115611bbf57611bbe613370565b5b03611cde575f8160600151806020019051810190611bdd919061350e565b90505f826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b8152600401611c21929190613555565b602060405180830381865afa158015611c3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c60919061357c565b90508082602001511115611cb75782602001518183602001516040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401611cae93929190613891565b60405180910390fd5b611cd783602001518460400151845f0151856020015186604001516121a7565b5050611ce7565b5f915050611cee565b5b60019150505b92915050565b5f8173ffffffffffffffffffffffffffffffffffffffff16611d14611453565b73ffffffffffffffffffffffffffffffffffffffff161480611d405750611d3f826002600117610f7c565b5b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fe49cedd7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611dd25750611dd1826124f3565b5b9050919050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b611e1782825f61256c565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611e50576382b429005f526004601cfd5b565b611e5e8282600161256c565b5050565b5f6202a300905090565b638b78c6d819543314611e9e57638b78c6d8600c52335f52806020600c205416611e9d576382b429005f526004601cfd5b5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b611ed26125c4565b15611f4a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415611f0c57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611f9d565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b3068929eee149b4bd212685403611fff5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361207f578282826040517fbf182be8000000000000000000000000000000000000000000000000000000008152600401612076939291906138c6565b60405180910390fd5b61208883610a2b565b8111156120d8578261209984610a2b565b826040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016120cf93929190613891565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361211a5761211582826125c8565b612146565b61214582828573ffffffffffffffffffffffffffffffffffffffff166125e59092919063ffffffff16565b5b8273ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542838360405161218e929190613555565b60405180910390a23868929eee149b4bd2126855505050565b3068929eee149b4bd2126854036121c55763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612245578484836040517fbf182be800000000000000000000000000000000000000000000000000000000815260040161223c939291906138c6565b60405180910390fd5b61224f8584611894565b8211156122a057846122618685611894565b836040517f5c54305e00000000000000000000000000000000000000000000000000000000815260040161229793929190613891565b60405180910390fd5b8160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f205f8282546122fb919061385e565b925050819055508473ffffffffffffffffffffffffffffffffffffffff1663f242432a30868686866040518663ffffffff1660e01b81526004016123439594939291906135f9565b5f604051808303815f87803b15801561235a575f80fd5b505af115801561236c573d5f803e3d5ffd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd4354285846040516123b8929190613555565b60405180910390a23868929eee149b4bd21268555050505050565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f5114171661241e57637939f4245f526004601cfd5b5f606052806040525050505050565b6124356125c4565b1561249a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506124f0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061256557506125648261262e565b5b9050919050565b638b78c6d8600c52825f526020600c2080548381178361258e57848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f385f3884865af16125e15763b12d13eb5f526004601cfd5b5050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716612625576390b8ec185f526004601cfd5b5f603452505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6126dc816126a8565b81146126e6575f80fd5b50565b5f813590506126f7816126d3565b92915050565b5f60208284031215612712576127116126a0565b5b5f61271f848285016126e9565b91505092915050565b5f8115159050919050565b61273c81612728565b82525050565b5f6020820190506127555f830184612733565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6127848261275b565b9050919050565b6127948161277a565b811461279e575f80fd5b50565b5f813590506127af8161278b565b92915050565b5f602082840312156127ca576127c96126a0565b5b5f6127d7848285016127a1565b91505092915050565b5f819050919050565b6127f2816127e0565b82525050565b5f60208201905061280b5f8301846127e9565b92915050565b61281a816127e0565b8114612824575f80fd5b50565b5f8135905061283581612811565b92915050565b5f602082840312156128505761284f6126a0565b5b5f61285d84828501612827565b91505092915050565b5f806040838503121561287c5761287b6126a0565b5b5f612889858286016127a1565b925050602061289a85828601612827565b9150509250929050565b6128ad816126a8565b82525050565b5f6020820190506128c65f8301846128a4565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126128ed576128ec6128cc565b5b8235905067ffffffffffffffff81111561290a576129096128d0565b5b602083019150836020820283011115612926576129256128d4565b5b9250929050565b5f8083601f840112612942576129416128cc565b5b8235905067ffffffffffffffff81111561295f5761295e6128d0565b5b60208301915083602082028301111561297b5761297a6128d4565b5b9250929050565b5f805f806040858703121561299a576129996126a0565b5b5f85013567ffffffffffffffff8111156129b7576129b66126a4565b5b6129c3878288016128d8565b9450945050602085013567ffffffffffffffff8111156129e6576129e56126a4565b5b6129f28782880161292d565b925092505092959194509250565b5f8083601f840112612a1557612a146128cc565b5b8235905067ffffffffffffffff811115612a3257612a316128d0565b5b602083019150836001820283011115612a4e57612a4d6128d4565b5b9250929050565b5f8060208385031215612a6b57612a6a6126a0565b5b5f83013567ffffffffffffffff811115612a8857612a876126a4565b5b612a9485828601612a00565b92509250509250929050565b5f8083601f840112612ab557612ab46128cc565b5b8235905067ffffffffffffffff811115612ad257612ad16128d0565b5b602083019150836020820283011115612aee57612aed6128d4565b5b9250929050565b5f8060208385031215612b0b57612b0a6126a0565b5b5f83013567ffffffffffffffff811115612b2857612b276126a4565b5b612b3485828601612aa0565b92509250509250929050565b612b498161277a565b82525050565b5f602082019050612b625f830184612b40565b92915050565b5f805f805f60808688031215612b8157612b806126a0565b5b5f612b8e888289016127a1565b955050602086013567ffffffffffffffff811115612baf57612bae6126a4565b5b612bbb88828901612a00565b94509450506040612bce88828901612827565b9250506060612bdf88828901612827565b9150509295509295909350565b5f604082019050612bff5f8301856127e9565b612c0c6020830184612b40565b9392505050565b5f8083601f840112612c2857612c276128cc565b5b8235905067ffffffffffffffff811115612c4557612c446128d0565b5b602083019150836020820283011115612c6157612c606128d4565b5b9250929050565b5f805f805f805f8060a0898b031215612c8457612c836126a0565b5b5f612c918b828c016127a1565b9850506020612ca28b828c016127a1565b975050604089013567ffffffffffffffff811115612cc357612cc26126a4565b5b612ccf8b828c01612c13565b9650965050606089013567ffffffffffffffff811115612cf257612cf16126a4565b5b612cfe8b828c01612c13565b9450945050608089013567ffffffffffffffff811115612d2157612d206126a4565b5b612d2d8b828c01612a00565b92509250509295985092959890939650565b5f805f8060408587031215612d5757612d566126a0565b5b5f85013567ffffffffffffffff811115612d7457612d736126a4565b5b612d80878288016128d8565b9450945050602085013567ffffffffffffffff811115612da357612da26126a4565b5b612daf87828801612c13565b925092505092959194509250565b5f805f805f8060a08789031215612dd757612dd66126a0565b5b5f612de489828a016127a1565b9650506020612df589828a016127a1565b9550506040612e0689828a01612827565b9450506060612e1789828a01612827565b935050608087013567ffffffffffffffff811115612e3857612e376126a4565b5b612e4489828a01612a00565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b612e8981612728565b8114612e93575f80fd5b50565b5f81359050612ea481612e80565b92915050565b5f60208284031215612ebf57612ebe6126a0565b5b5f612ecc84828501612e96565b91505092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612f1f82612ed9565b810181811067ffffffffffffffff82111715612f3e57612f3d612ee9565b5b80604052505050565b5f612f50612697565b9050612f5c8282612f16565b919050565b5f80fd5b5f67ffffffffffffffff821115612f7f57612f7e612ee9565b5b602082029050602081019050919050565b5f612fa2612f9d84612f65565b612f47565b90508083825260208201905060208402830185811115612fc557612fc46128d4565b5b835b81811015612fee5780612fda88826127a1565b845260208401935050602081019050612fc7565b5050509392505050565b5f82601f83011261300c5761300b6128cc565b5b813561301c848260208601612f90565b91505092915050565b5f67ffffffffffffffff82111561303f5761303e612ee9565b5b602082029050602081019050919050565b5f61306261305d84613025565b612f47565b90508083825260208201905060208402830185811115613085576130846128d4565b5b835b818110156130ae578061309a8882612827565b845260208401935050602081019050613087565b5050509392505050565b5f82601f8301126130cc576130cb6128cc565b5b81356130dc848260208601613050565b91505092915050565b5f606082840312156130fa576130f9612ed5565b5b6131046060612f47565b90505f613113848285016127a1565b5f83015250602082013567ffffffffffffffff81111561313657613135612f61565b5b61314284828501612ff8565b602083015250604082013567ffffffffffffffff81111561316657613165612f61565b5b613172848285016130b8565b60408301525092915050565b5f60208284031215613193576131926126a0565b5b5f82013567ffffffffffffffff8111156131b0576131af6126a4565b5b6131bc848285016130e5565b91505092915050565b600381106131d1575f80fd5b50565b5f813590506131e2816131c5565b92915050565b5f80fd5b5f67ffffffffffffffff82111561320657613205612ee9565b5b61320f82612ed9565b9050602081019050919050565b828183375f83830152505050565b5f61323c613237846131ec565b612f47565b905082815260208101848484011115613258576132576131e8565b5b61326384828561321c565b509392505050565b5f82601f83011261327f5761327e6128cc565b5b813561328f84826020860161322a565b91505092915050565b5f608082840312156132ad576132ac612ed5565b5b6132b76080612f47565b90505f6132c6848285016131d4565b5f8301525060206132d9848285016127a1565b60208301525060406132ed848285016127a1565b604083015250606082013567ffffffffffffffff81111561331157613310612f61565b5b61331d8482850161326b565b60608301525092915050565b5f6020828403121561333e5761333d6126a0565b5b5f82013567ffffffffffffffff81111561335b5761335a6126a4565b5b61336784828501613298565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f815190506133ab81612811565b92915050565b5f602082840312156133c6576133c5612ed5565b5b6133d06020612f47565b90505f6133df8482850161339d565b5f8301525092915050565b5f602082840312156133ff576133fe6126a0565b5b5f61340c848285016133b1565b91505092915050565b8281835e5f83830152505050565b5f613435613430846131ec565b612f47565b905082815260208101848484011115613451576134506131e8565b5b61345c848285613415565b509392505050565b5f82601f830112613478576134776128cc565b5b8151613488848260208601613423565b91505092915050565b5f606082840312156134a6576134a5612ed5565b5b6134b06060612f47565b90505f6134bf8482850161339d565b5f8301525060206134d28482850161339d565b602083015250604082015167ffffffffffffffff8111156134f6576134f5612f61565b5b61350284828501613464565b60408301525092915050565b5f60208284031215613523576135226126a0565b5b5f82015167ffffffffffffffff8111156135405761353f6126a4565b5b61354c84828501613491565b91505092915050565b5f6040820190506135685f830185612b40565b61357560208301846127e9565b9392505050565b5f60208284031215613591576135906126a0565b5b5f61359e8482850161339d565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6135cb826135a7565b6135d581856135b1565b93506135e5818560208601613415565b6135ee81612ed9565b840191505092915050565b5f60a08201905061360c5f830188612b40565b6136196020830187612b40565b61362660408301866127e9565b61363360608301856127e9565b818103608083015261364581846135c1565b90509695505050505050565b5f80fd5b5f80fd5b5f80fd5b5f808335600160200384360303811261367957613678613651565b5b80840192508235915067ffffffffffffffff82111561369b5761369a613655565b5b6020830192506001820236038313156136b7576136b6613659565b5b509250929050565b6136c88161277a565b82525050565b5f82825260208201905092915050565b5f6136e8826135a7565b6136f281856136ce565b9350613702818560208601613415565b61370b81612ed9565b840191505092915050565b5f604083015f83015161372b5f8601826136bf565b506020830151848203602086015261374382826136de565b9150508091505092915050565b5f6020820190508181035f8301526137688184613716565b905092915050565b5f6060820190508181035f83015261378881866135c1565b905061379760208301856127e9565b6137a460408301846127e9565b949350505050565b5f815190506137ba8161278b565b92915050565b5f80604083850312156137d6576137d56126a0565b5b5f6137e38582860161339d565b92505060206137f4858286016137ac565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613835826127e0565b9150613840836127e0565b9250828203905081811115613858576138576137fe565b5b92915050565b5f613868826127e0565b9150613873836127e0565b925082820190508082111561388b5761388a6137fe565b5b92915050565b5f6060820190506138a45f830186612b40565b6138b160208301856127e9565b6138be60408301846127e9565b949350505050565b5f6060820190506138d95f830186612b40565b6138e66020830185612b40565b6138f360408301846127e9565b94935050505056fea264697066735822122043386a0ed4af64176291e3c82bd6ee953f22a90e82505ad77b38b8fa2956d75864736f6c634300081a0033";var l=(e=>(e[e.MANAGER=1n]="MANAGER",e[e.ADMIN=2n]="ADMIN",e))(l||{});function w(e){return e.tokenId===void 0}function g(e){return e.tokenId!==void 0}function r(e){if(w(e))return u.prepareFungibleTransfer(e);if(g(e))return u.prepareERC1155Transfer(e);throw new h.UnknownTransferPayloadSupplied(e)}const n=class n extends T.DeployableTargetWithRBAC{constructor(){super(...arguments),this.abi=c.v}async allocate(f,b){return await this.awaitResult(this.allocateRaw(f,b))}async allocateRaw(f,b){const{request:a,result:d}=await c.IO(this._config,{address:this.assertValidAddress(),args:[r(f)],...this.optionallyAttachAccount(),...b});return{hash:await c.aO(this._config,a),result:d}}async clawback(f,b){return await this.awaitResult(this.clawbackRaw(f,b))}async clawbackRaw(f,b){const{request:a,result:d}=await c.NO(this._config,{address:this.assertValidAddress(),args:[r(f)],...this.optionallyAttachAccount(),...b});return{hash:await c.sO(this._config,a),result:d}}async clawbackFromTarget(f,b,a,d,s){return await this.awaitResult(this.clawbackFromTargetRaw(f,b,a,d,s))}async clawbackFromTargetRaw(f,b,a,d,s){const{request:i,result:A}=await c.MO(this._config,{address:this.assertValidAddress(),args:[f,b,BigInt(a),BigInt(d)],...this.optionallyAttachAccount(),...s});return{hash:await c.rO(this._config,i),result:A}}async disburse(f,b){return await this.awaitResult(this.disburseRaw(f,b))}async disburseRaw(f,b){const{request:a,result:d}=await c.OO(this._config,{address:this.assertValidAddress(),args:[r(f)],...this.optionallyAttachAccount(),...b});return{hash:await c.pO(this._config,a),result:d}}async disburseBatch(f,b){return await this.awaitResult(this.disburseBatchRaw(f,b))}async disburseBatchRaw(f,b){const{request:a,result:d}=await c.CO(this._config,{address:this.assertValidAddress(),args:[f.map(r)],...this.optionallyAttachAccount(),...b});return{hash:await c.uO(this._config,a),result:d}}owner(f){return c.K6(this._config,{address:this.assertValidAddress(),args:[],...f})}total(f=t.zeroAddress,b,a){return c.tO(this._config,{address:this.assertValidAddress(),args:b?[f,b]:[f],...a})}available(f=t.zeroAddress,b,a){return c.G6(this._config,{address:this.assertValidAddress(),args:b?[f,b]:[f],...a})}distributed(f=t.zeroAddress,b,a){return c.U6(this._config,{address:this.assertValidAddress(),args:b?[f,b]:[f],...a})}buildParameters(f,b){var s;const[a,d]=this.validateDeploymentConfig(f,b);if(!a.owner||a.owner===t.zeroAddress){const i=d.account?d.account.address:d.config?p.getAccount(d.config).address:(s=this._account)==null?void 0:s.address;if(i)a.owner=i;else throw new h.DeployableUnknownOwnerProvidedError}return{abi:c.v,bytecode:m,args:[y(a)],...this.optionallyAttachAccount(d.account)}}};n.bases={31337:void 0,...R.ManagedBudget},n.registryType=O.RegistryType.BUDGET;let o=n;const y=({owner:e,authorized:f,roles:b})=>t.encodeAbiParameters(t.parseAbiParameters(["ManagedBudgetPayload payload","struct ManagedBudgetPayload { address owner; address[] authorized; uint256[] roles; }"]),[{owner:e,authorized:f,roles:b}]);exports.managedBudgetAbi=c.v;exports.ManagedBudget=o;exports.ManagedBudgetRoles=l;exports.isERC1155TransferPayload=g;exports.isFungibleTransfer=w;exports.prepareManagedBudgetPayload=y;exports.prepareTransfer=r;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../generated-DAZo6jo9.cjs"),p=require("@wagmi/core"),t=require("viem"),R=require("../deployments-C7-jUofW.cjs"),T=require("../Deployable/DeployableTargetWithRBAC.cjs"),h=require("../errors.cjs"),u=require("../transfers.cjs"),O=require("../utils.cjs"),m="0x6080604052348015600e575f80fd5b50601b601f60201b60201c565b60b0565b5f602c608760201b60201c565b90508054600181161560455763f92ee8a95f526004601cfd5b8160c01c808260011c146082578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b613931806100bd5f395ff3fe608060405260043610610212575f3560e01c8063715018a611610117578063ec87621c1161009f578063f8724aba1161006e578063f8724aba146107b6578063f9a802c3146107f2578063fa4ca9b11461082e578063fe9fbb801461086a578063fee81cf4146108a657610219565b8063ec87621c14610718578063f04e283e14610742578063f23a6e611461075e578063f2fde38b1461079a57610219565b8063b3005793116100e6578063b300579314610613578063bc197c8114610650578063be4994f81461068c578063d2514e84146106b4578063dcc21361146106f057610219565b8063715018a61461057957806375b238fc14610583578063774c33ab146105ad5780638da5cb5b146105e957610219565b8063439fab911161019a578063514e62fc11610169578063514e62fc1461048b57806354d1f13d146104c7578063578bcf35146104d15780635aef467a1461050d57806361400c991461053d57610219565b8063439fab91146103cf578063451cc191146103f7578063474f5a44146104335780634a4ee7b11461046f57610219565b80631cd64df4116101e15780631cd64df4146102fb578063256929621461033757806328d6183b146103415780632de948071461036b5780634359d28a146103a757610219565b806301ffc9a71461024b57806310098ad514610287578063183a4f6e146102c35780631c10893f146102df57610219565b3661021957005b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b348015610256575f80fd5b50610271600480360381019061026c91906126fd565b6108e2565b60405161027e9190612742565b60405180910390f35b348015610292575f80fd5b506102ad60048036038101906102a891906127b5565b610a2b565b6040516102ba91906127f8565b60405180910390f35b6102dd60048036038101906102d8919061283b565b610a96565b005b6102f960048036038101906102f49190612866565b610aa3565b005b348015610306575f80fd5b50610321600480360381019061031c9190612866565b610ab9565b60405161032e9190612742565b60405180910390f35b61033f610acf565b005b34801561034c575f80fd5b50610355610b20565b60405161036291906128b3565b60405180910390f35b348015610376575f80fd5b50610391600480360381019061038c91906127b5565b610b47565b60405161039e91906127f8565b60405180910390f35b3480156103b2575f80fd5b506103cd60048036038101906103c89190612982565b610b60565b005b3480156103da575f80fd5b506103f560048036038101906103f09190612a55565b610c6e565b005b348015610402575f80fd5b5061041d60048036038101906104189190612a55565b610d66565b60405161042a91906127f8565b60405180910390f35b34801561043e575f80fd5b5061045960048036038101906104549190612a55565b610d6d565b60405161046691906127f8565b60405180910390f35b61048960048036038101906104849190612866565b610f66565b005b348015610496575f80fd5b506104b160048036038101906104ac9190612866565b610f7c565b6040516104be9190612742565b60405180910390f35b6104cf610f93565b005b3480156104dc575f80fd5b506104f760048036038101906104f291906127b5565b610fcc565b60405161050491906127f8565b60405180910390f35b61052760048036038101906105229190612a55565b611011565b6040516105349190612742565b60405180910390f35b348015610548575f80fd5b50610563600480360381019061055e9190612af5565b611381565b6040516105709190612742565b60405180910390f35b6105816113e5565b005b34801561058e575f80fd5b506105976113f8565b6040516105a491906127f8565b60405180910390f35b3480156105b8575f80fd5b506105d360048036038101906105ce9190612866565b6113fd565b6040516105e091906127f8565b60405180910390f35b3480156105f4575f80fd5b506105fd611453565b60405161060a9190612b4f565b60405180910390f35b34801561061e575f80fd5b5061063960048036038101906106349190612b68565b61147b565b604051610647929190612bec565b60405180910390f35b34801561065b575f80fd5b5061067660048036038101906106719190612c68565b611638565b60405161068391906128b3565b60405180910390f35b348015610697575f80fd5b506106b260048036038101906106ad9190612d3f565b61164f565b005b3480156106bf575f80fd5b506106da60048036038101906106d591906127b5565b611705565b6040516106e791906127f8565b60405180910390f35b3480156106fb575f80fd5b5061071660048036038101906107119190612d3f565b61175d565b005b348015610723575f80fd5b5061072c611813565b60405161073991906127f8565b60405180910390f35b61075c600480360381019061075791906127b5565b611818565b005b348015610769575f80fd5b50610784600480360381019061077f9190612dbd565b611856565b60405161079191906128b3565b60405180910390f35b6107b460048036038101906107af91906127b5565b61186b565b005b3480156107c1575f80fd5b506107dc60048036038101906107d79190612866565b611894565b6040516107e991906127f8565b60405180910390f35b3480156107fd575f80fd5b5061081860048036038101906108139190612866565b611916565b60405161082591906127f8565b60405180910390f35b348015610839575f80fd5b50610854600480360381019061084f9190612a55565b6119ef565b6040516108619190612742565b60405180910390f35b348015610875575f80fd5b50610890600480360381019061088b91906127b5565b611cf4565b60405161089d9190612742565b60405180910390f35b3480156108b1575f80fd5b506108cc60048036038101906108c791906127b5565b611d47565b6040516108d991906127f8565b60405180910390f35b5f7f5fbfaa4e000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109ac57507f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a1457507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a245750610a2382611d60565b5b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610a8d57610a88308373ffffffffffffffffffffffffffffffffffffffff16611dd990919063ffffffff16565b610a8f565b475b9050919050565b610aa03382611e0c565b50565b610aab611e1b565b610ab58282611e52565b5050565b5f8182610ac585610b47565b1614905092915050565b5f610ad8611e62565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f5fbfaa4e00000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b6002610b6b81611e6c565b828290508585905014610baa576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015610c66575f848483818110610bcb57610bca612e53565b5b9050602002016020810190610be09190612eaa565b90506001151581151503610c2557610c20878784818110610c0457610c03612e53565b5b9050602002016020810190610c1991906127b5565b6001611e52565b610c58565b610c57878784818110610c3b57610c3a612e53565b5b9050602002016020810190610c5091906127b5565b6001611e0c565b5b508080600101915050610bac565b505050505050565b5f610c77611ea1565b90508054600382558015610ca95760018160011c14303b10610ca05763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8383810190610cba919061317e565b9050610cc8815f0151611eca565b5f5b816020015151811015610d2a57610d1d82602001518281518110610cf157610cf0612e53565b5b602002602001015183604001518381518110610d1057610d0f612e53565b5b6020026020010151611fa0565b8080600101915050610cca565b50508015610d61576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f92915050565b5f6002610d7981611e6c565b5f8484810190610d899190613329565b90505f806002811115610d9f57610d9e613370565b5b825f01516002811115610db557610db4613370565b5b1480610de8575060016002811115610dd057610dcf613370565b5b825f01516002811115610de657610de5613370565b5b145b15610e47575f8260600151806020019051810190610e0691906133ea565b9050610e3b836020015184604001515f845f015114610e2857835f0151610e36565b610e358660200151610a2b565b5b611fe1565b805f0151915050610f59565b600280811115610e5a57610e59613370565b5b825f01516002811115610e7057610e6f613370565b5b03610f4e575f8260600151806020019051810190610e8e919061350e565b9050610f4183602001518460400151835f01515f856020015114610eb6578460200151610f37565b866020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30875f01516040518363ffffffff1660e01b8152600401610ef7929190613555565b602060405180830381865afa158015610f12573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f36919061357c565b5b85604001516121a7565b8060200151915050610f58565b8093505050610f5f565b5b80935050505b5092915050565b610f6e611e1b565b610f788282611e0c565b5050565b5f8082610f8885610b47565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8083838101906110229190613329565b90505f600281111561103757611036613370565b5b815f0151600281111561104d5761104c613370565b5b036110c3575f816060015180602001905181019061106b91906133ea565b9050805f015134146110bd578160200151815f01516040517fcece04c50000000000000000000000000000000000000000000000000000000081526004016110b4929190613555565b60405180910390fd5b50611375565b600160028111156110d7576110d6613370565b5b815f015160028111156110ed576110ec613370565b5b036111c8575f816060015180602001905181019061110b91906133ea565b9050611145826040015130835f0151856020015173ffffffffffffffffffffffffffffffffffffffff166123d3909392919063ffffffff16565b805f015161117630846020015173ffffffffffffffffffffffffffffffffffffffff16611dd990919063ffffffff16565b10156111c2578160200151815f01516040517fcece04c50000000000000000000000000000000000000000000000000000000081526004016111b9929190613555565b60405180910390fd5b50611374565b6002808111156111db576111da613370565b5b815f015160028111156111f1576111f0613370565b5b0361136a575f816060015180602001905181019061120f919061350e565b9050816020015173ffffffffffffffffffffffffffffffffffffffff1663f242432a836040015130845f0151856020015186604001516040518663ffffffff1660e01b81526004016112659594939291906135f9565b5f604051808303815f87803b15801561127c575f80fd5b505af115801561128e573d5f803e3d5ffd5b505050508060200151826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b81526004016112d8929190613555565b602060405180830381865afa1580156112f3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611317919061357c565b101561136457816020015181602001516040517fcece04c500000000000000000000000000000000000000000000000000000000815260040161135b929190613555565b60405180910390fd5b50611373565b5f91505061137b565b5b5b60019150505b92915050565b5f805f90505b838390508110156113d9576113bf8484838181106113a8576113a7612e53565b5b90506020028101906113ba919061365d565b6119ef565b6113cc575f9150506113df565b8080600101915050611387565b50600190505b92915050565b6113ed611e1b565b6113f65f61242d565b565b600281565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f8061148633611cf4565b6114bc576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60405180604001604052803073ffffffffffffffffffffffffffffffffffffffff16815260200188888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081525090505f8890505f808273ffffffffffffffffffffffffffffffffffffffff1663dd98558c856040516020016115609190613750565b6040516020818303038152906040528a8a6040518463ffffffff1660e01b815260040161158f93929190613770565b60408051808303815f875af11580156115aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ce91906137c0565b91509150815f808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461161d919061382b565b92505081905550818195509550505050509550959350505050565b5f63bc197c8160e01b905098975050505050505050565b600261165a81611e6c565b828290508585905014611699576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b858590508110156116fd576116f08686838181106116bc576116bb612e53565b5b90506020020160208101906116d191906127b5565b8585848181106116e4576116e3612e53565b5b90506020020135611e52565b808060010191505061169b565b505050505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461174c83610a2b565b611756919061385e565b9050919050565b600261176881611e6c565b8282905085859050146117a7576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8585905081101561180b576117fe8686838181106117ca576117c9612e53565b5b90506020020160208101906117df91906127b5565b8585848181106117f2576117f1612e53565b5b90506020020135611e0c565b80806001019150506117a9565b505050505050565b600181565b611820611e1b565b63389a75e1600c52805f526020600c20805442111561184657636f5e88185f526004601cfd5b5f8155506118538161242d565b50565b5f63f23a6e6160e01b90509695505050505050565b611873611e1b565b8060601b61188857637448fbae5f526004601cfd5b6118918161242d565b50565b5f8273ffffffffffffffffffffffffffffffffffffffff1662fdd58e30846040518363ffffffff1660e01b81526004016118cf929190613555565b602060405180830381865afa1580156118ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061190e919061357c565b905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20548373ffffffffffffffffffffffffffffffffffffffff1662fdd58e30856040518363ffffffff1660e01b815260040161199e929190613555565b602060405180830381865afa1580156119b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119dd919061357c565b6119e7919061385e565b905092915050565b5f6119f933611cf4565b611a2f576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8383810190611a3f9190613329565b905060016002811115611a5557611a54613370565b5b815f01516002811115611a6b57611a6a613370565b5b1480611a9d57505f6002811115611a8557611a84613370565b5b815f01516002811115611a9b57611a9a613370565b5b145b15611b96575f8160600151806020019051810190611abb91906133ea565b90505f611acb8360200151610a2b565b905080825f01511115611b2057826020015181835f01516040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401611b1793929190613891565b60405180910390fd5b815f01515f80856020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611b72919061385e565b92505081905550611b8f83602001518460400151845f0151611fe1565b5050611ce8565b600280811115611ba957611ba8613370565b5b815f01516002811115611bbf57611bbe613370565b5b03611cde575f8160600151806020019051810190611bdd919061350e565b90505f826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b8152600401611c21929190613555565b602060405180830381865afa158015611c3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c60919061357c565b90508082602001511115611cb75782602001518183602001516040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401611cae93929190613891565b60405180910390fd5b611cd783602001518460400151845f0151856020015186604001516121a7565b5050611ce7565b5f915050611cee565b5b60019150505b92915050565b5f8173ffffffffffffffffffffffffffffffffffffffff16611d14611453565b73ffffffffffffffffffffffffffffffffffffffff161480611d405750611d3f826002600117610f7c565b5b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fe49cedd7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611dd25750611dd1826124f3565b5b9050919050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b611e1782825f61256c565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611e50576382b429005f526004601cfd5b565b611e5e8282600161256c565b5050565b5f6202a300905090565b638b78c6d819543314611e9e57638b78c6d8600c52335f52806020600c205416611e9d576382b429005f526004601cfd5b5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b611ed26125c4565b15611f4a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415611f0c57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611f9d565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b3068929eee149b4bd212685403611fff5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361207f578282826040517fbf182be8000000000000000000000000000000000000000000000000000000008152600401612076939291906138c6565b60405180910390fd5b61208883610a2b565b8111156120d8578261209984610a2b565b826040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016120cf93929190613891565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361211a5761211582826125c8565b612146565b61214582828573ffffffffffffffffffffffffffffffffffffffff166125e59092919063ffffffff16565b5b8273ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542838360405161218e929190613555565b60405180910390a23868929eee149b4bd2126855505050565b3068929eee149b4bd2126854036121c55763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612245578484836040517fbf182be800000000000000000000000000000000000000000000000000000000815260040161223c939291906138c6565b60405180910390fd5b61224f8584611894565b8211156122a057846122618685611894565b836040517f5c54305e00000000000000000000000000000000000000000000000000000000815260040161229793929190613891565b60405180910390fd5b8160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f205f8282546122fb919061385e565b925050819055508473ffffffffffffffffffffffffffffffffffffffff1663f242432a30868686866040518663ffffffff1660e01b81526004016123439594939291906135f9565b5f604051808303815f87803b15801561235a575f80fd5b505af115801561236c573d5f803e3d5ffd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd4354285846040516123b8929190613555565b60405180910390a23868929eee149b4bd21268555050505050565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f5114171661241e57637939f4245f526004601cfd5b5f606052806040525050505050565b6124356125c4565b1561249a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506124f0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061256557506125648261262e565b5b9050919050565b638b78c6d8600c52825f526020600c2080548381178361258e57848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f385f3884865af16125e15763b12d13eb5f526004601cfd5b5050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716612625576390b8ec185f526004601cfd5b5f603452505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6126dc816126a8565b81146126e6575f80fd5b50565b5f813590506126f7816126d3565b92915050565b5f60208284031215612712576127116126a0565b5b5f61271f848285016126e9565b91505092915050565b5f8115159050919050565b61273c81612728565b82525050565b5f6020820190506127555f830184612733565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6127848261275b565b9050919050565b6127948161277a565b811461279e575f80fd5b50565b5f813590506127af8161278b565b92915050565b5f602082840312156127ca576127c96126a0565b5b5f6127d7848285016127a1565b91505092915050565b5f819050919050565b6127f2816127e0565b82525050565b5f60208201905061280b5f8301846127e9565b92915050565b61281a816127e0565b8114612824575f80fd5b50565b5f8135905061283581612811565b92915050565b5f602082840312156128505761284f6126a0565b5b5f61285d84828501612827565b91505092915050565b5f806040838503121561287c5761287b6126a0565b5b5f612889858286016127a1565b925050602061289a85828601612827565b9150509250929050565b6128ad816126a8565b82525050565b5f6020820190506128c65f8301846128a4565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126128ed576128ec6128cc565b5b8235905067ffffffffffffffff81111561290a576129096128d0565b5b602083019150836020820283011115612926576129256128d4565b5b9250929050565b5f8083601f840112612942576129416128cc565b5b8235905067ffffffffffffffff81111561295f5761295e6128d0565b5b60208301915083602082028301111561297b5761297a6128d4565b5b9250929050565b5f805f806040858703121561299a576129996126a0565b5b5f85013567ffffffffffffffff8111156129b7576129b66126a4565b5b6129c3878288016128d8565b9450945050602085013567ffffffffffffffff8111156129e6576129e56126a4565b5b6129f28782880161292d565b925092505092959194509250565b5f8083601f840112612a1557612a146128cc565b5b8235905067ffffffffffffffff811115612a3257612a316128d0565b5b602083019150836001820283011115612a4e57612a4d6128d4565b5b9250929050565b5f8060208385031215612a6b57612a6a6126a0565b5b5f83013567ffffffffffffffff811115612a8857612a876126a4565b5b612a9485828601612a00565b92509250509250929050565b5f8083601f840112612ab557612ab46128cc565b5b8235905067ffffffffffffffff811115612ad257612ad16128d0565b5b602083019150836020820283011115612aee57612aed6128d4565b5b9250929050565b5f8060208385031215612b0b57612b0a6126a0565b5b5f83013567ffffffffffffffff811115612b2857612b276126a4565b5b612b3485828601612aa0565b92509250509250929050565b612b498161277a565b82525050565b5f602082019050612b625f830184612b40565b92915050565b5f805f805f60808688031215612b8157612b806126a0565b5b5f612b8e888289016127a1565b955050602086013567ffffffffffffffff811115612baf57612bae6126a4565b5b612bbb88828901612a00565b94509450506040612bce88828901612827565b9250506060612bdf88828901612827565b9150509295509295909350565b5f604082019050612bff5f8301856127e9565b612c0c6020830184612b40565b9392505050565b5f8083601f840112612c2857612c276128cc565b5b8235905067ffffffffffffffff811115612c4557612c446128d0565b5b602083019150836020820283011115612c6157612c606128d4565b5b9250929050565b5f805f805f805f8060a0898b031215612c8457612c836126a0565b5b5f612c918b828c016127a1565b9850506020612ca28b828c016127a1565b975050604089013567ffffffffffffffff811115612cc357612cc26126a4565b5b612ccf8b828c01612c13565b9650965050606089013567ffffffffffffffff811115612cf257612cf16126a4565b5b612cfe8b828c01612c13565b9450945050608089013567ffffffffffffffff811115612d2157612d206126a4565b5b612d2d8b828c01612a00565b92509250509295985092959890939650565b5f805f8060408587031215612d5757612d566126a0565b5b5f85013567ffffffffffffffff811115612d7457612d736126a4565b5b612d80878288016128d8565b9450945050602085013567ffffffffffffffff811115612da357612da26126a4565b5b612daf87828801612c13565b925092505092959194509250565b5f805f805f8060a08789031215612dd757612dd66126a0565b5b5f612de489828a016127a1565b9650506020612df589828a016127a1565b9550506040612e0689828a01612827565b9450506060612e1789828a01612827565b935050608087013567ffffffffffffffff811115612e3857612e376126a4565b5b612e4489828a01612a00565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b612e8981612728565b8114612e93575f80fd5b50565b5f81359050612ea481612e80565b92915050565b5f60208284031215612ebf57612ebe6126a0565b5b5f612ecc84828501612e96565b91505092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612f1f82612ed9565b810181811067ffffffffffffffff82111715612f3e57612f3d612ee9565b5b80604052505050565b5f612f50612697565b9050612f5c8282612f16565b919050565b5f80fd5b5f67ffffffffffffffff821115612f7f57612f7e612ee9565b5b602082029050602081019050919050565b5f612fa2612f9d84612f65565b612f47565b90508083825260208201905060208402830185811115612fc557612fc46128d4565b5b835b81811015612fee5780612fda88826127a1565b845260208401935050602081019050612fc7565b5050509392505050565b5f82601f83011261300c5761300b6128cc565b5b813561301c848260208601612f90565b91505092915050565b5f67ffffffffffffffff82111561303f5761303e612ee9565b5b602082029050602081019050919050565b5f61306261305d84613025565b612f47565b90508083825260208201905060208402830185811115613085576130846128d4565b5b835b818110156130ae578061309a8882612827565b845260208401935050602081019050613087565b5050509392505050565b5f82601f8301126130cc576130cb6128cc565b5b81356130dc848260208601613050565b91505092915050565b5f606082840312156130fa576130f9612ed5565b5b6131046060612f47565b90505f613113848285016127a1565b5f83015250602082013567ffffffffffffffff81111561313657613135612f61565b5b61314284828501612ff8565b602083015250604082013567ffffffffffffffff81111561316657613165612f61565b5b613172848285016130b8565b60408301525092915050565b5f60208284031215613193576131926126a0565b5b5f82013567ffffffffffffffff8111156131b0576131af6126a4565b5b6131bc848285016130e5565b91505092915050565b600381106131d1575f80fd5b50565b5f813590506131e2816131c5565b92915050565b5f80fd5b5f67ffffffffffffffff82111561320657613205612ee9565b5b61320f82612ed9565b9050602081019050919050565b828183375f83830152505050565b5f61323c613237846131ec565b612f47565b905082815260208101848484011115613258576132576131e8565b5b61326384828561321c565b509392505050565b5f82601f83011261327f5761327e6128cc565b5b813561328f84826020860161322a565b91505092915050565b5f608082840312156132ad576132ac612ed5565b5b6132b76080612f47565b90505f6132c6848285016131d4565b5f8301525060206132d9848285016127a1565b60208301525060406132ed848285016127a1565b604083015250606082013567ffffffffffffffff81111561331157613310612f61565b5b61331d8482850161326b565b60608301525092915050565b5f6020828403121561333e5761333d6126a0565b5b5f82013567ffffffffffffffff81111561335b5761335a6126a4565b5b61336784828501613298565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f815190506133ab81612811565b92915050565b5f602082840312156133c6576133c5612ed5565b5b6133d06020612f47565b90505f6133df8482850161339d565b5f8301525092915050565b5f602082840312156133ff576133fe6126a0565b5b5f61340c848285016133b1565b91505092915050565b8281835e5f83830152505050565b5f613435613430846131ec565b612f47565b905082815260208101848484011115613451576134506131e8565b5b61345c848285613415565b509392505050565b5f82601f830112613478576134776128cc565b5b8151613488848260208601613423565b91505092915050565b5f606082840312156134a6576134a5612ed5565b5b6134b06060612f47565b90505f6134bf8482850161339d565b5f8301525060206134d28482850161339d565b602083015250604082015167ffffffffffffffff8111156134f6576134f5612f61565b5b61350284828501613464565b60408301525092915050565b5f60208284031215613523576135226126a0565b5b5f82015167ffffffffffffffff8111156135405761353f6126a4565b5b61354c84828501613491565b91505092915050565b5f6040820190506135685f830185612b40565b61357560208301846127e9565b9392505050565b5f60208284031215613591576135906126a0565b5b5f61359e8482850161339d565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6135cb826135a7565b6135d581856135b1565b93506135e5818560208601613415565b6135ee81612ed9565b840191505092915050565b5f60a08201905061360c5f830188612b40565b6136196020830187612b40565b61362660408301866127e9565b61363360608301856127e9565b818103608083015261364581846135c1565b90509695505050505050565b5f80fd5b5f80fd5b5f80fd5b5f808335600160200384360303811261367957613678613651565b5b80840192508235915067ffffffffffffffff82111561369b5761369a613655565b5b6020830192506001820236038313156136b7576136b6613659565b5b509250929050565b6136c88161277a565b82525050565b5f82825260208201905092915050565b5f6136e8826135a7565b6136f281856136ce565b9350613702818560208601613415565b61370b81612ed9565b840191505092915050565b5f604083015f83015161372b5f8601826136bf565b506020830151848203602086015261374382826136de565b9150508091505092915050565b5f6020820190508181035f8301526137688184613716565b905092915050565b5f6060820190508181035f83015261378881866135c1565b905061379760208301856127e9565b6137a460408301846127e9565b949350505050565b5f815190506137ba8161278b565b92915050565b5f80604083850312156137d6576137d56126a0565b5b5f6137e38582860161339d565b92505060206137f4858286016137ac565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613835826127e0565b9150613840836127e0565b9250828203905081811115613858576138576137fe565b5b92915050565b5f613868826127e0565b9150613873836127e0565b925082820190508082111561388b5761388a6137fe565b5b92915050565b5f6060820190506138a45f830186612b40565b6138b160208301856127e9565b6138be60408301846127e9565b949350505050565b5f6060820190506138d95f830186612b40565b6138e66020830185612b40565b6138f360408301846127e9565b94935050505056fea264697066735822122043386a0ed4af64176291e3c82bd6ee953f22a90e82505ad77b38b8fa2956d75864736f6c634300081a0033";var l=(e=>(e[e.MANAGER=1n]="MANAGER",e[e.ADMIN=2n]="ADMIN",e))(l||{});function w(e){return e.tokenId===void 0}function g(e){return e.tokenId!==void 0}function r(e){if(w(e))return u.prepareFungibleTransfer(e);if(g(e))return u.prepareERC1155Transfer(e);throw new h.UnknownTransferPayloadSupplied(e)}const n=class n extends T.DeployableTargetWithRBAC{constructor(){super(...arguments),this.abi=c.v}async allocate(f,b){return await this.awaitResult(this.allocateRaw(f,b))}async allocateRaw(f,b){const{request:a,result:d}=await c.IO(this._config,{address:this.assertValidAddress(),args:[r(f)],...this.optionallyAttachAccount(),...b});return{hash:await c.aO(this._config,a),result:d}}async clawback(f,b){return await this.awaitResult(this.clawbackRaw(f,b))}async clawbackRaw(f,b){const{request:a,result:d}=await c.NO(this._config,{address:this.assertValidAddress(),args:[r(f)],...this.optionallyAttachAccount(),...b});return{hash:await c.sO(this._config,a),result:d}}async clawbackFromTarget(f,b,a,d,s){return await this.awaitResult(this.clawbackFromTargetRaw(f,b,a,d,s))}async clawbackFromTargetRaw(f,b,a,d,s){const{request:i,result:A}=await c.MO(this._config,{address:this.assertValidAddress(),args:[f,b,BigInt(a),BigInt(d)],...this.optionallyAttachAccount(),...s});return{hash:await c.rO(this._config,i),result:A}}async disburse(f,b){return await this.awaitResult(this.disburseRaw(f,b))}async disburseRaw(f,b){const{request:a,result:d}=await c.OO(this._config,{address:this.assertValidAddress(),args:[r(f)],...this.optionallyAttachAccount(),...b});return{hash:await c.pO(this._config,a),result:d}}async disburseBatch(f,b){return await this.awaitResult(this.disburseBatchRaw(f,b))}async disburseBatchRaw(f,b){const{request:a,result:d}=await c.CO(this._config,{address:this.assertValidAddress(),args:[f.map(r)],...this.optionallyAttachAccount(),...b});return{hash:await c.uO(this._config,a),result:d}}owner(f){return c.K6(this._config,{address:this.assertValidAddress(),args:[],...f})}total(f=t.zeroAddress,b,a){return c.tO(this._config,{address:this.assertValidAddress(),args:b?[f,b]:[f],...a})}available(f=t.zeroAddress,b,a){return c.G6(this._config,{address:this.assertValidAddress(),args:b?[f,b]:[f],...a})}distributed(f=t.zeroAddress,b,a){return c.U6(this._config,{address:this.assertValidAddress(),args:b?[f,b]:[f],...a})}buildParameters(f,b){var s;const[a,d]=this.validateDeploymentConfig(f,b);if(!a.owner||a.owner===t.zeroAddress){const i=d.account?d.account.address:d.config?p.getAccount(d.config).address:(s=this._account)==null?void 0:s.address;if(i)a.owner=i;else throw new h.DeployableUnknownOwnerProvidedError}return{abi:c.v,bytecode:m,args:[y(a)],...this.optionallyAttachAccount(d.account)}}};n.bases={31337:void 0,...R.ManagedBudget},n.registryType=O.RegistryType.BUDGET;let o=n;const y=({owner:e,authorized:f,roles:b})=>t.encodeAbiParameters(t.parseAbiParameters(["ManagedBudgetPayload payload","struct ManagedBudgetPayload { address owner; address[] authorized; uint256[] roles; }"]),[{owner:e,authorized:f,roles:b}]);exports.managedBudgetAbi=c.v;exports.ManagedBudget=o;exports.ManagedBudgetRoles=l;exports.isERC1155TransferPayload=g;exports.isFungibleTransfer=w;exports.prepareManagedBudgetPayload=y;exports.prepareTransfer=r;
2
2
  //# sourceMappingURL=ManagedBudget.cjs.map
@@ -1,7 +1,7 @@
1
1
  import { v 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 m, ac as R, ad as O, ae as T, af as _, ag as P, ah as V } from "../generated-D2xuTYvu.js";
2
2
  import { getAccount as k } from "@wagmi/core";
3
3
  import { zeroAddress as t, encodeAbiParameters as v, parseAbiParameters as B } from "viem";
4
- import { M as D } from "../deployments-DNjIZXvl.js";
4
+ import { M as D } from "../deployments-Dcywzp8T.js";
5
5
  import { DeployableTargetWithRBAC as E } from "../Deployable/DeployableTargetWithRBAC.js";
6
6
  import { DeployableUnknownOwnerProvidedError as q, UnknownTransferPayloadSupplied as C } from "../errors.js";
7
7
  import { prepareFungibleTransfer as F, prepareERC1155Transfer as N } from "../transfers.js";