@boostxyz/sdk 4.0.0 → 5.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 (78) hide show
  1. package/dist/Actions/Action.cjs +1 -1
  2. package/dist/Actions/Action.js +1 -1
  3. package/dist/Actions/EventAction.cjs +1 -1
  4. package/dist/Actions/EventAction.js +16 -16
  5. package/dist/AllowLists/AllowList.cjs +1 -1
  6. package/dist/AllowLists/AllowList.js +2 -2
  7. package/dist/AllowLists/SimpleAllowList.cjs +1 -1
  8. package/dist/AllowLists/SimpleAllowList.js +7 -7
  9. package/dist/AllowLists/SimpleDenyList.cjs +1 -1
  10. package/dist/AllowLists/SimpleDenyList.js +3 -3
  11. package/dist/Auth/PassthroughAuth.cjs +1 -1
  12. package/dist/Auth/PassthroughAuth.js +1 -1
  13. package/dist/BoostCore.cjs +2 -2
  14. package/dist/BoostCore.cjs.map +1 -1
  15. package/dist/BoostCore.d.ts +20 -0
  16. package/dist/BoostCore.d.ts.map +1 -1
  17. package/dist/BoostCore.js +218 -218
  18. package/dist/BoostRegistry.cjs +1 -1
  19. package/dist/BoostRegistry.js +4 -4
  20. package/dist/{Budget-Dlbk4PdV.cjs → Budget-Cnyh81n5.cjs} +2 -2
  21. package/dist/{Budget-Dlbk4PdV.cjs.map → Budget-Cnyh81n5.cjs.map} +1 -1
  22. package/dist/{Budget-DxACEu9b.js → Budget-fHCvlPfB.js} +48 -48
  23. package/dist/{Budget-DxACEu9b.js.map → Budget-fHCvlPfB.js.map} +1 -1
  24. package/dist/Budgets/Budget.cjs +1 -1
  25. package/dist/Budgets/Budget.js +2 -2
  26. package/dist/Budgets/ManagedBudget.cjs +1 -1
  27. package/dist/Budgets/ManagedBudget.js +22 -22
  28. package/dist/Deployable/DeployableTarget.cjs +1 -1
  29. package/dist/Deployable/DeployableTarget.js +1 -1
  30. package/dist/Deployable/DeployableTargetWithRBAC.cjs +1 -1
  31. package/dist/Deployable/DeployableTargetWithRBAC.js +16 -16
  32. package/dist/{Incentive-BYhx7lTb.js → Incentive-M45PaQsT.js} +32 -32
  33. package/dist/{Incentive-BYhx7lTb.js.map → Incentive-M45PaQsT.js.map} +1 -1
  34. package/dist/{Incentive-Dq77dxww.cjs → Incentive-axLU7ndr.cjs} +2 -2
  35. package/dist/{Incentive-Dq77dxww.cjs.map → Incentive-axLU7ndr.cjs.map} +1 -1
  36. package/dist/Incentives/AllowListIncentive.cjs +1 -1
  37. package/dist/Incentives/AllowListIncentive.js +3 -3
  38. package/dist/Incentives/CGDAIncentive.cjs +1 -1
  39. package/dist/Incentives/CGDAIncentive.js +10 -10
  40. package/dist/Incentives/ERC20Incentive.cjs +1 -1
  41. package/dist/Incentives/ERC20Incentive.js +16 -16
  42. package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs +1 -1
  43. package/dist/Incentives/ERC20VariableCriteriaIncentive.js +2 -2
  44. package/dist/Incentives/ERC20VariableIncentive.cjs +1 -1
  45. package/dist/Incentives/ERC20VariableIncentive.js +4 -4
  46. package/dist/Incentives/Incentive.cjs +1 -1
  47. package/dist/Incentives/Incentive.js +2 -2
  48. package/dist/Incentives/PointsIncentive.cjs +1 -1
  49. package/dist/Incentives/PointsIncentive.js +11 -11
  50. package/dist/{SimpleDenyList-gR_yuuLp.cjs → SimpleDenyList-CgQvS1ek.cjs} +2 -2
  51. package/dist/{SimpleDenyList-gR_yuuLp.cjs.map → SimpleDenyList-CgQvS1ek.cjs.map} +1 -1
  52. package/dist/{SimpleDenyList-DGr4ekN1.js → SimpleDenyList-GZlSeh2G.js} +15 -15
  53. package/dist/{SimpleDenyList-DGr4ekN1.js.map → SimpleDenyList-GZlSeh2G.js.map} +1 -1
  54. package/dist/Validators/LimitedSignerValidator.cjs +1 -1
  55. package/dist/Validators/LimitedSignerValidator.js +8 -8
  56. package/dist/Validators/SignerValidator.cjs +1 -1
  57. package/dist/Validators/SignerValidator.js +5 -5
  58. package/dist/Validators/Validator.cjs +1 -1
  59. package/dist/Validators/Validator.js +1 -1
  60. package/dist/deployments-CMdsItcq.cjs +2 -0
  61. package/dist/deployments-CMdsItcq.cjs.map +1 -0
  62. package/dist/deployments-DzhmI-zL.js +102 -0
  63. package/dist/deployments-DzhmI-zL.js.map +1 -0
  64. package/dist/deployments.json +48 -48
  65. package/dist/generated-CNkDfjzI.cjs +3 -0
  66. package/dist/generated-CNkDfjzI.cjs.map +1 -0
  67. package/dist/{generated-BhRjnVvd.js → generated-Hbd0NIf9.js} +140 -126
  68. package/dist/generated-Hbd0NIf9.js.map +1 -0
  69. package/dist/index.cjs +1 -1
  70. package/dist/index.js +11 -11
  71. package/package.json +1 -1
  72. package/dist/deployments-BBL2DHhq.js +0 -102
  73. package/dist/deployments-BBL2DHhq.js.map +0 -1
  74. package/dist/deployments-j7kUxPuV.cjs +0 -2
  75. package/dist/deployments-j7kUxPuV.cjs.map +0 -1
  76. package/dist/generated-BhRjnVvd.js.map +0 -1
  77. package/dist/generated-BscUK6fP.cjs +0 -3
  78. package/dist/generated-BscUK6fP.cjs.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./generated-BscUK6fP.cjs"),l=require("viem"),u=require("./deployments-j7kUxPuV.cjs"),y=require("./Deployable/Deployable.cjs"),t=require("./utils.cjs"),g="0x6080604052348015600e575f80fd5b50611bc78061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610086575f3560e01c8063acc83fc811610059578063acc83fc81461014a578063d12dd4811461017a578063f166879214610196578063fd97064b146101c657610086565b806301ffc9a71461008a5780633aaf1626146100ba578063792aa01c146100ea57806383f388591461011a575b5f80fd5b6100a4600480360381019061009f9190610e87565b6101f6565b6040516100b19190610ecc565b60405180910390f35b6100d460048036038101906100cf9190610f18565b61026f565b6040516100e19190611120565b60405180910390f35b61010460048036038101906100ff919061116a565b610481565b604051610111919061124c565b60405180910390f35b610134600480360381019061012f9190610f18565b610514565b604051610141919061127b565b60405180910390f35b610164600480360381019061015f9190611318565b6105bc565b60405161017191906113ab565b60405180910390f35b610194600480360381019061018f91906113c4565b6105fe565b005b6101b060048036038101906101ab9190611435565b610828565b6040516101bd91906113ab565b60405180910390f35b6101e060048036038101906101db91906114e7565b610864565b6040516101ed919061127b565b60405180910390f35b5f7fb09d9d54000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610268575061026782610c2c565b5b9050919050565b610277610dc7565b60015f8381526020019081526020015f206040518060800160405290815f82015f9054906101000a900460ff1660048111156102b6576102b5610f43565b5b60048111156102c8576102c7610f43565b5b81526020015f820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282018054610386906115b7565b80601f01602080910402602001604051908101604052809291908181526020018280546103b2906115b7565b80156103fd5780601f106103d4576101008083540402835291602001916103fd565b820191905f5260205f20905b8154815290600101906020018083116103e057829003601f168201915b50505050508152505090505f73ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff160361047c57816040517f8cc00d1600000000000000000000000000000000000000000000000000000000815260040161047391906113ab565b60405180910390fd5b919050565b606060025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080548060200260200160405190810160405280929190818152602001828054801561050857602002820191905f5260205f20905b8154815260200190600101908083116104f4575b50505050509050919050565b5f805f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105b757816040517f8cc00d160000000000000000000000000000000000000000000000000000000081526004016105ae91906113ab565b60405180910390fd5b919050565b5f6105f386868686866040516020016105d89493929190611668565b60405160208183030381529060405280519060200120610c95565b905095945050505050565b808073ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f6ab67a0d000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161065891906116b1565b602060405180830381865afa158015610673573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061069791906116f4565b6106d857806040517f903b13fd0000000000000000000000000000000000000000000000000000000081526004016106cf919061172e565b60405180910390fd5b5f6106e4868686610828565b90505f73ffffffffffffffffffffffffffffffffffffffff165f808381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107875785816040517f96b5684c00000000000000000000000000000000000000000000000000000000815260040161077e929190611756565b60405180910390fd5b825f808381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808660048111156107e9576107e8610f43565b5b7f660d31df25c96b8a337fcf12a56b7363e5a997639db853d5dbaec7c01f31bd8085604051610818919061172e565b60405180910390a3505050505050565b5f61085b84848460405160200161084092919061177d565b60405160208183030381529060405280519060200120610c95565b90509392505050565b5f3068929eee149b4bd2126854036108835763ab143c065f526004601cfd5b3068929eee149b4bd212685561092b87878787336040516020016108ab9594939291906117c9565b6040516020818303038152906040528051906020012084848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050508873ffffffffffffffffffffffffffffffffffffffff16610cc79092919063ffffffff16565b90505f61093b88883389896105bc565b90505f73ffffffffffffffffffffffffffffffffffffffff1660015f8381526020019081526020015f205f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e25787816040517f96b5684c0000000000000000000000000000000000000000000000000000000081526004016109d9929190611756565b60405180910390fd5b60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f20015f90919091909150556040518060800160405280896004811115610a6157610a60610f43565b5b81526020018373ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff16815260200187878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081525060015f8381526020019081526020015f205f820151815f015f6101000a81548160ff02191690836004811115610b1e57610b1d610f43565b5b02179055506020820151815f0160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816002019081610bc491906119de565b5090505080886004811115610bdc57610bdb610f43565b5b7f2348fcdb9847b17a183e53aa32c0c5c76afdef8fcb14bb51f216c6611701ab1a8985604051610c0d929190611aad565b60405180910390a3503868929eee149b4bd21268559695505050505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f8282604051602001610ca9929190611af4565b60405160208183030381529060405280519060200120905092915050565b5f610cf1838573ffffffffffffffffffffffffffffffffffffffff16610d6090919063ffffffff16565b90508073ffffffffffffffffffffffffffffffffffffffff1663439fab91836040518263ffffffff1660e01b8152600401610d2c9190611b71565b5f604051808303815f87803b158015610d43575f80fd5b505af1158015610d55573d5f803e3d5ffd5b505050509392505050565b5f610d6c5f8484610d74565b905092915050565b5f6c5af43d3d93803e602a57fd5bf36021528260145273602c3d8160093d39f33d3d3d3d363d3d37363d735f52816035600c86f5905080610dbc5763301164255f526004601cfd5b5f6021529392505050565b60405180608001604052805f6004811115610de557610de4610f43565b5b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610e6681610e32565b8114610e70575f80fd5b50565b5f81359050610e8181610e5d565b92915050565b5f60208284031215610e9c57610e9b610e2a565b5b5f610ea984828501610e73565b91505092915050565b5f8115159050919050565b610ec681610eb2565b82525050565b5f602082019050610edf5f830184610ebd565b92915050565b5f819050919050565b610ef781610ee5565b8114610f01575f80fd5b50565b5f81359050610f1281610eee565b92915050565b5f60208284031215610f2d57610f2c610e2a565b5b5f610f3a84828501610f04565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60058110610f8157610f80610f43565b5b50565b5f819050610f9182610f70565b919050565b5f610fa082610f84565b9050919050565b610fb081610f96565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f610ff8610ff3610fee84610fb6565b610fd5565b610fb6565b9050919050565b5f61100982610fde565b9050919050565b5f61101a82610fff565b9050919050565b61102a81611010565b82525050565b5f61103a82610fb6565b9050919050565b61104a81611030565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61109282611050565b61109c818561105a565b93506110ac81856020860161106a565b6110b581611078565b840191505092915050565b5f608083015f8301516110d55f860182610fa7565b5060208301516110e86020860182611021565b5060408301516110fb6040860182611041565b50606083015184820360608601526111138282611088565b9150508091505092915050565b5f6020820190508181035f83015261113881846110c0565b905092915050565b61114981611030565b8114611153575f80fd5b50565b5f8135905061116481611140565b92915050565b5f6020828403121561117f5761117e610e2a565b5b5f61118c84828501611156565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6111c781610ee5565b82525050565b5f6111d883836111be565b60208301905092915050565b5f602082019050919050565b5f6111fa82611195565b611204818561119f565b935061120f836111af565b805f5b8381101561123f57815161122688826111cd565b9750611231836111e4565b925050600181019050611212565b5085935050505092915050565b5f6020820190508181035f83015261126481846111f0565b905092915050565b61127581611010565b82525050565b5f60208201905061128e5f83018461126c565b92915050565b600581106112a0575f80fd5b50565b5f813590506112b181611294565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126112d8576112d76112b7565b5b8235905067ffffffffffffffff8111156112f5576112f46112bb565b5b602083019150836001820283011115611311576113106112bf565b5b9250929050565b5f805f805f6080868803121561133157611330610e2a565b5b5f61133e888289016112a3565b955050602061134f88828901611156565b945050604061136088828901611156565b935050606086013567ffffffffffffffff81111561138157611380610e2e565b5b61138d888289016112c3565b92509250509295509295909350565b6113a581610ee5565b82525050565b5f6020820190506113be5f83018461139c565b92915050565b5f805f80606085870312156113dc576113db610e2a565b5b5f6113e9878288016112a3565b945050602085013567ffffffffffffffff81111561140a57611409610e2e565b5b611416878288016112c3565b9350935050604061142987828801611156565b91505092959194509250565b5f805f6040848603121561144c5761144b610e2a565b5b5f611459868287016112a3565b935050602084013567ffffffffffffffff81111561147a57611479610e2e565b5b611486868287016112c3565b92509250509250925092565b5f8083601f8401126114a7576114a66112b7565b5b8235905067ffffffffffffffff8111156114c4576114c36112bb565b5b6020830191508360018202830111156114e0576114df6112bf565b5b9250929050565b5f805f805f806080878903121561150157611500610e2a565b5b5f61150e89828a016112a3565b965050602061151f89828a01611156565b955050604087013567ffffffffffffffff8111156115405761153f610e2e565b5b61154c89828a016112c3565b9450945050606087013567ffffffffffffffff81111561156f5761156e610e2e565b5b61157b89828a01611492565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806115ce57607f821691505b6020821081036115e1576115e061158a565b5b50919050565b5f8160601b9050919050565b5f6115fd826115e7565b9050919050565b5f61160e826115f3565b9050919050565b61162661162182611030565b611604565b82525050565b5f81905092915050565b828183375f83830152505050565b5f61164f838561162c565b935061165c838584611636565b82840190509392505050565b5f6116738287611615565b6014820191506116838286611615565b601482019150611694828486611644565b915081905095945050505050565b6116ab81610e32565b82525050565b5f6020820190506116c45f8301846116a2565b92915050565b6116d381610eb2565b81146116dd575f80fd5b50565b5f815190506116ee816116ca565b92915050565b5f6020828403121561170957611708610e2a565b5b5f611716848285016116e0565b91505092915050565b61172881611030565b82525050565b5f6020820190506117415f83018461171f565b92915050565b61175081610f96565b82525050565b5f6040820190506117695f830185611747565b611776602083018461139c565b9392505050565b5f611789828486611644565b91508190509392505050565b5f8160f81b9050919050565b5f6117ab82611795565b9050919050565b6117c36117be82610f96565b6117a1565b82525050565b5f6117d482886117b2565b6001820191506117e48287611615565b6014820191506117f5828587611644565b91506118018284611615565b6014820191508190509695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261189d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611862565b6118a78683611862565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6118e26118dd6118d8846118bf565b610fd5565b6118bf565b9050919050565b5f819050919050565b6118fb836118c8565b61190f611907826118e9565b84845461186e565b825550505050565b5f90565b611923611917565b61192e8184846118f2565b505050565b5b81811015611951576119465f8261191b565b600181019050611934565b5050565b601f8211156119965761196781611841565b61197084611853565b8101602085101561197f578190505b61199361198b85611853565b830182611933565b50505b505050565b5f82821c905092915050565b5f6119b65f198460080261199b565b1980831691505092915050565b5f6119ce83836119a7565b9150826002028217905092915050565b6119e782611050565b67ffffffffffffffff811115611a00576119ff611814565b5b611a0a82546115b7565b611a15828285611955565b5f60209050601f831160018114611a46575f8415611a34578287015190505b611a3e85826119c3565b865550611aa5565b601f198416611a5486611841565b5f5b82811015611a7b57848901518255600182019150602085019450602081019050611a56565b86831015611a985784890151611a94601f8916826119a7565b8355505b6001600288020188555050505b505050505050565b5f604082019050611ac05f83018561171f565b611acd602083018461126c565b9392505050565b5f819050919050565b611aee611ae982610ee5565b611ad4565b82525050565b5f611aff82856117b2565b600182019150611b0f8284611add565b6020820191508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611b4382611b1f565b611b4d8185611b29565b9350611b5d81856020860161106a565b611b6681611078565b840191505092915050565b5f6020820190508181035f830152611b898184611b39565b90509291505056fea264697066735822122089535164a1a53170ebb569acb756d7169ac52157bba6839919cea3c17109da0564736f6c634300081a0033",i={31337:void 0,...u.BoostRegistry},A=i[11155111]||l.zeroAddress;function w(s){return s.address&&l.isAddress(s.address)}function _(s){return s.address===null}const r=class r extends y.Deployable{get addresses(){return this.constructor.addresses}constructor({config:e,account:f,...b}){if(w(b)&&b.address)super({account:f,config:e},b.address);else if(_(b))super({account:f,config:e},[]);else{const{address:d}=t.assertValidAddressByChainId(e,i);super({account:f,config:e},d)}}async register(e,f,b,d){return await this.awaitResult(this.registerRaw(e,f,b,d))}async registerRaw(e,f,b,d){const{request:a,result:n}=await c.cw(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,d==null?void 0:d.chainId),args:[e,f,b],...this.optionallyAttachAccount(),...d});return{hash:await c.lw(this._config,a),result:n}}initialize(e,f,b){return this.clone(e,f,b)}async initializeRaw(e,f,b){const{hash:d,result:a}=await this.deployCloneRaw(e,f,b);return{hash:d,result:a,target:f.at(a)}}async clone(e,f,b){const d=await this.deployClone(e,f,b);return f.at(d)}async deployClone(e,f,b){return await this.awaitResult(this.deployCloneRaw(e,f,b))}async deployCloneRaw(e,f,b){const d=f.buildParameters(void 0,{config:this._config,account:this._account}),{address:a}=t.assertValidAddressByChainId(this._config,f.bases,b==null?void 0:b.chainId),{request:n,result:h}=await c.dw(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,b==null?void 0:b.chainId),args:[f.registryType,a,e,d.args[0]],...this.optionallyAttachAccount(),...b});return{hash:await c.uw(this._config,n),result:h}}async getBaseImplementation(e,f){return await c.nw(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[e],...this.optionallyAttachAccount(),...f})}async getClone(e,f){return await c.aw(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[e],...this.optionallyAttachAccount(),...f})}async getClones(e,f){return await c.sw(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[e],...this.optionallyAttachAccount(),...f})}async getCloneIdentifier(e,f,b,d,a){return await c.iw(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,a==null?void 0:a.chainId),args:[e,f,b,d],...this.optionallyAttachAccount(),...a})}async getIdentifier(e,f,b){return await c.iw(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,b==null?void 0:b.chainId),args:[e,f],...this.optionallyAttachAccount(),...b})}buildParameters(e,f){const[,b]=this.validateDeploymentConfig([],f);return{abi:c.ye,bytecode:g,args:[],...this.optionallyAttachAccount(b.account)}}};r.addresses=i;let o=r;exports.boostRegistryAbi=c.ye;exports.BOOST_REGISTRY_ADDRESS=A;exports.BOOST_REGISTRY_ADDRESSES=i;exports.BoostRegistry=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./generated-CNkDfjzI.cjs"),l=require("viem"),u=require("./deployments-CMdsItcq.cjs"),y=require("./Deployable/Deployable.cjs"),t=require("./utils.cjs"),g="0x6080604052348015600e575f80fd5b50611bc78061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610086575f3560e01c8063acc83fc811610059578063acc83fc81461014a578063d12dd4811461017a578063f166879214610196578063fd97064b146101c657610086565b806301ffc9a71461008a5780633aaf1626146100ba578063792aa01c146100ea57806383f388591461011a575b5f80fd5b6100a4600480360381019061009f9190610e87565b6101f6565b6040516100b19190610ecc565b60405180910390f35b6100d460048036038101906100cf9190610f18565b61026f565b6040516100e19190611120565b60405180910390f35b61010460048036038101906100ff919061116a565b610481565b604051610111919061124c565b60405180910390f35b610134600480360381019061012f9190610f18565b610514565b604051610141919061127b565b60405180910390f35b610164600480360381019061015f9190611318565b6105bc565b60405161017191906113ab565b60405180910390f35b610194600480360381019061018f91906113c4565b6105fe565b005b6101b060048036038101906101ab9190611435565b610828565b6040516101bd91906113ab565b60405180910390f35b6101e060048036038101906101db91906114e7565b610864565b6040516101ed919061127b565b60405180910390f35b5f7fb09d9d54000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610268575061026782610c2c565b5b9050919050565b610277610dc7565b60015f8381526020019081526020015f206040518060800160405290815f82015f9054906101000a900460ff1660048111156102b6576102b5610f43565b5b60048111156102c8576102c7610f43565b5b81526020015f820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282018054610386906115b7565b80601f01602080910402602001604051908101604052809291908181526020018280546103b2906115b7565b80156103fd5780601f106103d4576101008083540402835291602001916103fd565b820191905f5260205f20905b8154815290600101906020018083116103e057829003601f168201915b50505050508152505090505f73ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff160361047c57816040517f8cc00d1600000000000000000000000000000000000000000000000000000000815260040161047391906113ab565b60405180910390fd5b919050565b606060025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080548060200260200160405190810160405280929190818152602001828054801561050857602002820191905f5260205f20905b8154815260200190600101908083116104f4575b50505050509050919050565b5f805f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105b757816040517f8cc00d160000000000000000000000000000000000000000000000000000000081526004016105ae91906113ab565b60405180910390fd5b919050565b5f6105f386868686866040516020016105d89493929190611668565b60405160208183030381529060405280519060200120610c95565b905095945050505050565b808073ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f6ab67a0d000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161065891906116b1565b602060405180830381865afa158015610673573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061069791906116f4565b6106d857806040517f903b13fd0000000000000000000000000000000000000000000000000000000081526004016106cf919061172e565b60405180910390fd5b5f6106e4868686610828565b90505f73ffffffffffffffffffffffffffffffffffffffff165f808381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107875785816040517f96b5684c00000000000000000000000000000000000000000000000000000000815260040161077e929190611756565b60405180910390fd5b825f808381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808660048111156107e9576107e8610f43565b5b7f660d31df25c96b8a337fcf12a56b7363e5a997639db853d5dbaec7c01f31bd8085604051610818919061172e565b60405180910390a3505050505050565b5f61085b84848460405160200161084092919061177d565b60405160208183030381529060405280519060200120610c95565b90509392505050565b5f3068929eee149b4bd2126854036108835763ab143c065f526004601cfd5b3068929eee149b4bd212685561092b87878787336040516020016108ab9594939291906117c9565b6040516020818303038152906040528051906020012084848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050508873ffffffffffffffffffffffffffffffffffffffff16610cc79092919063ffffffff16565b90505f61093b88883389896105bc565b90505f73ffffffffffffffffffffffffffffffffffffffff1660015f8381526020019081526020015f205f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e25787816040517f96b5684c0000000000000000000000000000000000000000000000000000000081526004016109d9929190611756565b60405180910390fd5b60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f20015f90919091909150556040518060800160405280896004811115610a6157610a60610f43565b5b81526020018373ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff16815260200187878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081525060015f8381526020019081526020015f205f820151815f015f6101000a81548160ff02191690836004811115610b1e57610b1d610f43565b5b02179055506020820151815f0160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816002019081610bc491906119de565b5090505080886004811115610bdc57610bdb610f43565b5b7f2348fcdb9847b17a183e53aa32c0c5c76afdef8fcb14bb51f216c6611701ab1a8985604051610c0d929190611aad565b60405180910390a3503868929eee149b4bd21268559695505050505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f8282604051602001610ca9929190611af4565b60405160208183030381529060405280519060200120905092915050565b5f610cf1838573ffffffffffffffffffffffffffffffffffffffff16610d6090919063ffffffff16565b90508073ffffffffffffffffffffffffffffffffffffffff1663439fab91836040518263ffffffff1660e01b8152600401610d2c9190611b71565b5f604051808303815f87803b158015610d43575f80fd5b505af1158015610d55573d5f803e3d5ffd5b505050509392505050565b5f610d6c5f8484610d74565b905092915050565b5f6c5af43d3d93803e602a57fd5bf36021528260145273602c3d8160093d39f33d3d3d3d363d3d37363d735f52816035600c86f5905080610dbc5763301164255f526004601cfd5b5f6021529392505050565b60405180608001604052805f6004811115610de557610de4610f43565b5b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610e6681610e32565b8114610e70575f80fd5b50565b5f81359050610e8181610e5d565b92915050565b5f60208284031215610e9c57610e9b610e2a565b5b5f610ea984828501610e73565b91505092915050565b5f8115159050919050565b610ec681610eb2565b82525050565b5f602082019050610edf5f830184610ebd565b92915050565b5f819050919050565b610ef781610ee5565b8114610f01575f80fd5b50565b5f81359050610f1281610eee565b92915050565b5f60208284031215610f2d57610f2c610e2a565b5b5f610f3a84828501610f04565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60058110610f8157610f80610f43565b5b50565b5f819050610f9182610f70565b919050565b5f610fa082610f84565b9050919050565b610fb081610f96565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f610ff8610ff3610fee84610fb6565b610fd5565b610fb6565b9050919050565b5f61100982610fde565b9050919050565b5f61101a82610fff565b9050919050565b61102a81611010565b82525050565b5f61103a82610fb6565b9050919050565b61104a81611030565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61109282611050565b61109c818561105a565b93506110ac81856020860161106a565b6110b581611078565b840191505092915050565b5f608083015f8301516110d55f860182610fa7565b5060208301516110e86020860182611021565b5060408301516110fb6040860182611041565b50606083015184820360608601526111138282611088565b9150508091505092915050565b5f6020820190508181035f83015261113881846110c0565b905092915050565b61114981611030565b8114611153575f80fd5b50565b5f8135905061116481611140565b92915050565b5f6020828403121561117f5761117e610e2a565b5b5f61118c84828501611156565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6111c781610ee5565b82525050565b5f6111d883836111be565b60208301905092915050565b5f602082019050919050565b5f6111fa82611195565b611204818561119f565b935061120f836111af565b805f5b8381101561123f57815161122688826111cd565b9750611231836111e4565b925050600181019050611212565b5085935050505092915050565b5f6020820190508181035f83015261126481846111f0565b905092915050565b61127581611010565b82525050565b5f60208201905061128e5f83018461126c565b92915050565b600581106112a0575f80fd5b50565b5f813590506112b181611294565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126112d8576112d76112b7565b5b8235905067ffffffffffffffff8111156112f5576112f46112bb565b5b602083019150836001820283011115611311576113106112bf565b5b9250929050565b5f805f805f6080868803121561133157611330610e2a565b5b5f61133e888289016112a3565b955050602061134f88828901611156565b945050604061136088828901611156565b935050606086013567ffffffffffffffff81111561138157611380610e2e565b5b61138d888289016112c3565b92509250509295509295909350565b6113a581610ee5565b82525050565b5f6020820190506113be5f83018461139c565b92915050565b5f805f80606085870312156113dc576113db610e2a565b5b5f6113e9878288016112a3565b945050602085013567ffffffffffffffff81111561140a57611409610e2e565b5b611416878288016112c3565b9350935050604061142987828801611156565b91505092959194509250565b5f805f6040848603121561144c5761144b610e2a565b5b5f611459868287016112a3565b935050602084013567ffffffffffffffff81111561147a57611479610e2e565b5b611486868287016112c3565b92509250509250925092565b5f8083601f8401126114a7576114a66112b7565b5b8235905067ffffffffffffffff8111156114c4576114c36112bb565b5b6020830191508360018202830111156114e0576114df6112bf565b5b9250929050565b5f805f805f806080878903121561150157611500610e2a565b5b5f61150e89828a016112a3565b965050602061151f89828a01611156565b955050604087013567ffffffffffffffff8111156115405761153f610e2e565b5b61154c89828a016112c3565b9450945050606087013567ffffffffffffffff81111561156f5761156e610e2e565b5b61157b89828a01611492565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806115ce57607f821691505b6020821081036115e1576115e061158a565b5b50919050565b5f8160601b9050919050565b5f6115fd826115e7565b9050919050565b5f61160e826115f3565b9050919050565b61162661162182611030565b611604565b82525050565b5f81905092915050565b828183375f83830152505050565b5f61164f838561162c565b935061165c838584611636565b82840190509392505050565b5f6116738287611615565b6014820191506116838286611615565b601482019150611694828486611644565b915081905095945050505050565b6116ab81610e32565b82525050565b5f6020820190506116c45f8301846116a2565b92915050565b6116d381610eb2565b81146116dd575f80fd5b50565b5f815190506116ee816116ca565b92915050565b5f6020828403121561170957611708610e2a565b5b5f611716848285016116e0565b91505092915050565b61172881611030565b82525050565b5f6020820190506117415f83018461171f565b92915050565b61175081610f96565b82525050565b5f6040820190506117695f830185611747565b611776602083018461139c565b9392505050565b5f611789828486611644565b91508190509392505050565b5f8160f81b9050919050565b5f6117ab82611795565b9050919050565b6117c36117be82610f96565b6117a1565b82525050565b5f6117d482886117b2565b6001820191506117e48287611615565b6014820191506117f5828587611644565b91506118018284611615565b6014820191508190509695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261189d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611862565b6118a78683611862565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6118e26118dd6118d8846118bf565b610fd5565b6118bf565b9050919050565b5f819050919050565b6118fb836118c8565b61190f611907826118e9565b84845461186e565b825550505050565b5f90565b611923611917565b61192e8184846118f2565b505050565b5b81811015611951576119465f8261191b565b600181019050611934565b5050565b601f8211156119965761196781611841565b61197084611853565b8101602085101561197f578190505b61199361198b85611853565b830182611933565b50505b505050565b5f82821c905092915050565b5f6119b65f198460080261199b565b1980831691505092915050565b5f6119ce83836119a7565b9150826002028217905092915050565b6119e782611050565b67ffffffffffffffff811115611a00576119ff611814565b5b611a0a82546115b7565b611a15828285611955565b5f60209050601f831160018114611a46575f8415611a34578287015190505b611a3e85826119c3565b865550611aa5565b601f198416611a5486611841565b5f5b82811015611a7b57848901518255600182019150602085019450602081019050611a56565b86831015611a985784890151611a94601f8916826119a7565b8355505b6001600288020188555050505b505050505050565b5f604082019050611ac05f83018561171f565b611acd602083018461126c565b9392505050565b5f819050919050565b611aee611ae982610ee5565b611ad4565b82525050565b5f611aff82856117b2565b600182019150611b0f8284611add565b6020820191508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611b4382611b1f565b611b4d8185611b29565b9350611b5d81856020860161106a565b611b6681611078565b840191505092915050565b5f6020820190508181035f830152611b898184611b39565b90509291505056fea264697066735822122089535164a1a53170ebb569acb756d7169ac52157bba6839919cea3c17109da0564736f6c634300081a0033",i={31337:void 0,...u.BoostRegistry},A=i[11155111]||l.zeroAddress;function w(s){return s.address&&l.isAddress(s.address)}function _(s){return s.address===null}const r=class r extends y.Deployable{get addresses(){return this.constructor.addresses}constructor({config:e,account:f,...b}){if(w(b)&&b.address)super({account:f,config:e},b.address);else if(_(b))super({account:f,config:e},[]);else{const{address:d}=t.assertValidAddressByChainId(e,i);super({account:f,config:e},d)}}async register(e,f,b,d){return await this.awaitResult(this.registerRaw(e,f,b,d))}async registerRaw(e,f,b,d){const{request:a,result:n}=await c.fw(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,d==null?void 0:d.chainId),args:[e,f,b],...this.optionallyAttachAccount(),...d});return{hash:await c.cw(this._config,a),result:n}}initialize(e,f,b){return this.clone(e,f,b)}async initializeRaw(e,f,b){const{hash:d,result:a}=await this.deployCloneRaw(e,f,b);return{hash:d,result:a,target:f.at(a)}}async clone(e,f,b){const d=await this.deployClone(e,f,b);return f.at(d)}async deployClone(e,f,b){return await this.awaitResult(this.deployCloneRaw(e,f,b))}async deployCloneRaw(e,f,b){const d=f.buildParameters(void 0,{config:this._config,account:this._account}),{address:a}=t.assertValidAddressByChainId(this._config,f.bases,b==null?void 0:b.chainId),{request:n,result:h}=await c.bw(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,b==null?void 0:b.chainId),args:[f.registryType,a,e,d.args[0]],...this.optionallyAttachAccount(),...b});return{hash:await c.dw(this._config,n),result:h}}async getBaseImplementation(e,f){return await c.sw(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[e],...this.optionallyAttachAccount(),...f})}async getClone(e,f){return await c.rw(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[e],...this.optionallyAttachAccount(),...f})}async getClones(e,f){return await c.pw(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[e],...this.optionallyAttachAccount(),...f})}async getCloneIdentifier(e,f,b,d,a){return await c.ow(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,a==null?void 0:a.chainId),args:[e,f,b,d],...this.optionallyAttachAccount(),...a})}async getIdentifier(e,f,b){return await c.ow(this._config,{...t.assertValidAddressByChainId(this._config,this.addresses,b==null?void 0:b.chainId),args:[e,f],...this.optionallyAttachAccount(),...b})}buildParameters(e,f){const[,b]=this.validateDeploymentConfig([],f);return{abi:c.ye,bytecode:g,args:[],...this.optionallyAttachAccount(b.account)}}};r.addresses=i;let o=r;exports.boostRegistryAbi=c.ye;exports.BOOST_REGISTRY_ADDRESS=A;exports.BOOST_REGISTRY_ADDRESSES=i;exports.BoostRegistry=o;
2
2
  //# sourceMappingURL=BoostRegistry.cjs.map
@@ -1,12 +1,12 @@
1
- import { W as l, X as u, Y as y, Z as g, _ as w, $ as _, a0 as A, a1 as h, y as R } from "./generated-BhRjnVvd.js";
1
+ import { M as l, Q as u, S as y, U as g, _ as w, $ as _, a0 as A, a1 as h, y as R } from "./generated-Hbd0NIf9.js";
2
2
  import { zeroAddress as I, isAddress as C } from "viem";
3
- import { B as S } from "./deployments-BBL2DHhq.js";
3
+ import { B as S } from "./deployments-DzhmI-zL.js";
4
4
  import { Deployable as D } from "./Deployable/Deployable.js";
5
5
  import { assertValidAddressByChainId as c } from "./utils.js";
6
6
  const B = "0x6080604052348015600e575f80fd5b50611bc78061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610086575f3560e01c8063acc83fc811610059578063acc83fc81461014a578063d12dd4811461017a578063f166879214610196578063fd97064b146101c657610086565b806301ffc9a71461008a5780633aaf1626146100ba578063792aa01c146100ea57806383f388591461011a575b5f80fd5b6100a4600480360381019061009f9190610e87565b6101f6565b6040516100b19190610ecc565b60405180910390f35b6100d460048036038101906100cf9190610f18565b61026f565b6040516100e19190611120565b60405180910390f35b61010460048036038101906100ff919061116a565b610481565b604051610111919061124c565b60405180910390f35b610134600480360381019061012f9190610f18565b610514565b604051610141919061127b565b60405180910390f35b610164600480360381019061015f9190611318565b6105bc565b60405161017191906113ab565b60405180910390f35b610194600480360381019061018f91906113c4565b6105fe565b005b6101b060048036038101906101ab9190611435565b610828565b6040516101bd91906113ab565b60405180910390f35b6101e060048036038101906101db91906114e7565b610864565b6040516101ed919061127b565b60405180910390f35b5f7fb09d9d54000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610268575061026782610c2c565b5b9050919050565b610277610dc7565b60015f8381526020019081526020015f206040518060800160405290815f82015f9054906101000a900460ff1660048111156102b6576102b5610f43565b5b60048111156102c8576102c7610f43565b5b81526020015f820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282018054610386906115b7565b80601f01602080910402602001604051908101604052809291908181526020018280546103b2906115b7565b80156103fd5780601f106103d4576101008083540402835291602001916103fd565b820191905f5260205f20905b8154815290600101906020018083116103e057829003601f168201915b50505050508152505090505f73ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff160361047c57816040517f8cc00d1600000000000000000000000000000000000000000000000000000000815260040161047391906113ab565b60405180910390fd5b919050565b606060025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080548060200260200160405190810160405280929190818152602001828054801561050857602002820191905f5260205f20905b8154815260200190600101908083116104f4575b50505050509050919050565b5f805f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105b757816040517f8cc00d160000000000000000000000000000000000000000000000000000000081526004016105ae91906113ab565b60405180910390fd5b919050565b5f6105f386868686866040516020016105d89493929190611668565b60405160208183030381529060405280519060200120610c95565b905095945050505050565b808073ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f6ab67a0d000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161065891906116b1565b602060405180830381865afa158015610673573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061069791906116f4565b6106d857806040517f903b13fd0000000000000000000000000000000000000000000000000000000081526004016106cf919061172e565b60405180910390fd5b5f6106e4868686610828565b90505f73ffffffffffffffffffffffffffffffffffffffff165f808381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107875785816040517f96b5684c00000000000000000000000000000000000000000000000000000000815260040161077e929190611756565b60405180910390fd5b825f808381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808660048111156107e9576107e8610f43565b5b7f660d31df25c96b8a337fcf12a56b7363e5a997639db853d5dbaec7c01f31bd8085604051610818919061172e565b60405180910390a3505050505050565b5f61085b84848460405160200161084092919061177d565b60405160208183030381529060405280519060200120610c95565b90509392505050565b5f3068929eee149b4bd2126854036108835763ab143c065f526004601cfd5b3068929eee149b4bd212685561092b87878787336040516020016108ab9594939291906117c9565b6040516020818303038152906040528051906020012084848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050508873ffffffffffffffffffffffffffffffffffffffff16610cc79092919063ffffffff16565b90505f61093b88883389896105bc565b90505f73ffffffffffffffffffffffffffffffffffffffff1660015f8381526020019081526020015f205f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e25787816040517f96b5684c0000000000000000000000000000000000000000000000000000000081526004016109d9929190611756565b60405180910390fd5b60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f20015f90919091909150556040518060800160405280896004811115610a6157610a60610f43565b5b81526020018373ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff16815260200187878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081525060015f8381526020019081526020015f205f820151815f015f6101000a81548160ff02191690836004811115610b1e57610b1d610f43565b5b02179055506020820151815f0160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816002019081610bc491906119de565b5090505080886004811115610bdc57610bdb610f43565b5b7f2348fcdb9847b17a183e53aa32c0c5c76afdef8fcb14bb51f216c6611701ab1a8985604051610c0d929190611aad565b60405180910390a3503868929eee149b4bd21268559695505050505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f8282604051602001610ca9929190611af4565b60405160208183030381529060405280519060200120905092915050565b5f610cf1838573ffffffffffffffffffffffffffffffffffffffff16610d6090919063ffffffff16565b90508073ffffffffffffffffffffffffffffffffffffffff1663439fab91836040518263ffffffff1660e01b8152600401610d2c9190611b71565b5f604051808303815f87803b158015610d43575f80fd5b505af1158015610d55573d5f803e3d5ffd5b505050509392505050565b5f610d6c5f8484610d74565b905092915050565b5f6c5af43d3d93803e602a57fd5bf36021528260145273602c3d8160093d39f33d3d3d3d363d3d37363d735f52816035600c86f5905080610dbc5763301164255f526004601cfd5b5f6021529392505050565b60405180608001604052805f6004811115610de557610de4610f43565b5b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610e6681610e32565b8114610e70575f80fd5b50565b5f81359050610e8181610e5d565b92915050565b5f60208284031215610e9c57610e9b610e2a565b5b5f610ea984828501610e73565b91505092915050565b5f8115159050919050565b610ec681610eb2565b82525050565b5f602082019050610edf5f830184610ebd565b92915050565b5f819050919050565b610ef781610ee5565b8114610f01575f80fd5b50565b5f81359050610f1281610eee565b92915050565b5f60208284031215610f2d57610f2c610e2a565b5b5f610f3a84828501610f04565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60058110610f8157610f80610f43565b5b50565b5f819050610f9182610f70565b919050565b5f610fa082610f84565b9050919050565b610fb081610f96565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f610ff8610ff3610fee84610fb6565b610fd5565b610fb6565b9050919050565b5f61100982610fde565b9050919050565b5f61101a82610fff565b9050919050565b61102a81611010565b82525050565b5f61103a82610fb6565b9050919050565b61104a81611030565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61109282611050565b61109c818561105a565b93506110ac81856020860161106a565b6110b581611078565b840191505092915050565b5f608083015f8301516110d55f860182610fa7565b5060208301516110e86020860182611021565b5060408301516110fb6040860182611041565b50606083015184820360608601526111138282611088565b9150508091505092915050565b5f6020820190508181035f83015261113881846110c0565b905092915050565b61114981611030565b8114611153575f80fd5b50565b5f8135905061116481611140565b92915050565b5f6020828403121561117f5761117e610e2a565b5b5f61118c84828501611156565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6111c781610ee5565b82525050565b5f6111d883836111be565b60208301905092915050565b5f602082019050919050565b5f6111fa82611195565b611204818561119f565b935061120f836111af565b805f5b8381101561123f57815161122688826111cd565b9750611231836111e4565b925050600181019050611212565b5085935050505092915050565b5f6020820190508181035f83015261126481846111f0565b905092915050565b61127581611010565b82525050565b5f60208201905061128e5f83018461126c565b92915050565b600581106112a0575f80fd5b50565b5f813590506112b181611294565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126112d8576112d76112b7565b5b8235905067ffffffffffffffff8111156112f5576112f46112bb565b5b602083019150836001820283011115611311576113106112bf565b5b9250929050565b5f805f805f6080868803121561133157611330610e2a565b5b5f61133e888289016112a3565b955050602061134f88828901611156565b945050604061136088828901611156565b935050606086013567ffffffffffffffff81111561138157611380610e2e565b5b61138d888289016112c3565b92509250509295509295909350565b6113a581610ee5565b82525050565b5f6020820190506113be5f83018461139c565b92915050565b5f805f80606085870312156113dc576113db610e2a565b5b5f6113e9878288016112a3565b945050602085013567ffffffffffffffff81111561140a57611409610e2e565b5b611416878288016112c3565b9350935050604061142987828801611156565b91505092959194509250565b5f805f6040848603121561144c5761144b610e2a565b5b5f611459868287016112a3565b935050602084013567ffffffffffffffff81111561147a57611479610e2e565b5b611486868287016112c3565b92509250509250925092565b5f8083601f8401126114a7576114a66112b7565b5b8235905067ffffffffffffffff8111156114c4576114c36112bb565b5b6020830191508360018202830111156114e0576114df6112bf565b5b9250929050565b5f805f805f806080878903121561150157611500610e2a565b5b5f61150e89828a016112a3565b965050602061151f89828a01611156565b955050604087013567ffffffffffffffff8111156115405761153f610e2e565b5b61154c89828a016112c3565b9450945050606087013567ffffffffffffffff81111561156f5761156e610e2e565b5b61157b89828a01611492565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806115ce57607f821691505b6020821081036115e1576115e061158a565b5b50919050565b5f8160601b9050919050565b5f6115fd826115e7565b9050919050565b5f61160e826115f3565b9050919050565b61162661162182611030565b611604565b82525050565b5f81905092915050565b828183375f83830152505050565b5f61164f838561162c565b935061165c838584611636565b82840190509392505050565b5f6116738287611615565b6014820191506116838286611615565b601482019150611694828486611644565b915081905095945050505050565b6116ab81610e32565b82525050565b5f6020820190506116c45f8301846116a2565b92915050565b6116d381610eb2565b81146116dd575f80fd5b50565b5f815190506116ee816116ca565b92915050565b5f6020828403121561170957611708610e2a565b5b5f611716848285016116e0565b91505092915050565b61172881611030565b82525050565b5f6020820190506117415f83018461171f565b92915050565b61175081610f96565b82525050565b5f6040820190506117695f830185611747565b611776602083018461139c565b9392505050565b5f611789828486611644565b91508190509392505050565b5f8160f81b9050919050565b5f6117ab82611795565b9050919050565b6117c36117be82610f96565b6117a1565b82525050565b5f6117d482886117b2565b6001820191506117e48287611615565b6014820191506117f5828587611644565b91506118018284611615565b6014820191508190509695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261189d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611862565b6118a78683611862565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6118e26118dd6118d8846118bf565b610fd5565b6118bf565b9050919050565b5f819050919050565b6118fb836118c8565b61190f611907826118e9565b84845461186e565b825550505050565b5f90565b611923611917565b61192e8184846118f2565b505050565b5b81811015611951576119465f8261191b565b600181019050611934565b5050565b601f8211156119965761196781611841565b61197084611853565b8101602085101561197f578190505b61199361198b85611853565b830182611933565b50505b505050565b5f82821c905092915050565b5f6119b65f198460080261199b565b1980831691505092915050565b5f6119ce83836119a7565b9150826002028217905092915050565b6119e782611050565b67ffffffffffffffff811115611a00576119ff611814565b5b611a0a82546115b7565b611a15828285611955565b5f60209050601f831160018114611a46575f8415611a34578287015190505b611a3e85826119c3565b865550611aa5565b601f198416611a5486611841565b5f5b82811015611a7b57848901518255600182019150602085019450602081019050611a56565b86831015611a985784890151611a94601f8916826119a7565b8355505b6001600288020188555050505b505050505050565b5f604082019050611ac05f83018561171f565b611acd602083018461126c565b9392505050565b5f819050919050565b611aee611ae982610ee5565b611ad4565b82525050565b5f611aff82856117b2565b600182019150611b0f8284611add565b6020820191508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611b4382611b1f565b611b4d8185611b29565b9350611b5d81856020860161106a565b611b6681611078565b840191505092915050565b5f6020820190508181035f830152611b898184611b39565b90509291505056fea264697066735822122089535164a1a53170ebb569acb756d7169ac52157bba6839919cea3c17109da0564736f6c634300081a0033", i = {
7
7
  31337: void 0,
8
8
  ...S
9
- }, G = i[11155111] || I;
9
+ }, P = i[11155111] || I;
10
10
  function E(t) {
11
11
  return t.address && C(t.address);
12
12
  }
@@ -334,7 +334,7 @@ const n = class n extends D {
334
334
  n.addresses = i;
335
335
  let r = n;
336
336
  export {
337
- G as BOOST_REGISTRY_ADDRESS,
337
+ P as BOOST_REGISTRY_ADDRESS,
338
338
  i as BOOST_REGISTRY_ADDRESSES,
339
339
  r as BoostRegistry,
340
340
  R as boostRegistryAbi
@@ -1,2 +1,2 @@
1
- "use strict";const d=require("./generated-BscUK6fP.cjs"),u=require("./componentInterfaces-Bt-4sNB5.cjs"),l=require("@wagmi/core"),g=require("./errors.cjs"),r=require("./Budgets/ManagedBudget.cjs"),t=require("viem"),A=require("./deployments-j7kUxPuV.cjs"),p=require("./Deployable/DeployableTargetWithRBAC.cjs"),m=require("./utils.cjs"),R="0x6080604052348015600e575f80fd5b50601b602b60201b60201c565b6027602b60201b60201c565b60bc565b5f6038609360201b60201c565b90508054600181161560515763f92ee8a95f526004601cfd5b8160c01c808260011c14608e578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b614ba6806100c95f395ff3fe60806040526004361061025f575f3560e01c8063715018a611610143578063dcc21361116100b5578063f8724aba11610079578063f8724aba14610946578063f9a802c314610982578063fa4ca9b1146109be578063fe56e232146109fa578063fe9fbb8014610a22578063fee81cf414610a5e57610266565b8063dcc2136114610880578063ec87621c146108a8578063f04e283e146108d2578063f23a6e61146108ee578063f2fde38b1461092a57610266565b8063b300579311610107578063b30057931461072b578063bc197c8114610768578063be4994f8146107a4578063c6004a3a146107cc578063d2514e8414610808578063d8c12d221461084457610266565b8063715018a61461066757806375b238fc14610671578063774c33ab1461069b5780638da5cb5b146106d7578063a6f7f5d61461070157610266565b80634359d28a116101dc5780634a4ee7b1116101a05780634a4ee7b11461055d578063514e62fc1461057957806354d1f13d146105b5578063578bcf35146105bf5780635aef467a146105fb57806361400c991461062b57610266565b80634359d28a1461046d578063439fab911461049557806343cc96e1146104bd578063451cc191146104e5578063474f5a441461052157610266565b80631c10893f116102235780631c10893f146103a55780631cd64df4146103c157806325692962146103fd57806328d6183b146104075780632de948071461043157610266565b806301ffc9a71461029857806310098ad5146102d457806314135ce014610310578063183a4f6e1461034c578063185832a31461036857610266565b3661026657005b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3480156102a3575f80fd5b506102be60048036038101906102b991906133d9565b610a9a565b6040516102cb919061341e565b60405180910390f35b3480156102df575f80fd5b506102fa60048036038101906102f59190613491565b610aab565b60405161030791906134d4565b60405180910390f35b34801561031b575f80fd5b5061033660048036038101906103319190613491565b610b04565b60405161034391906134d4565b60405180910390f35b61036660048036038101906103619190613517565b610b19565b005b348015610373575f80fd5b5061038e600480360381019061038991906135a3565b610b26565b60405161039c929190613636565b60405180910390f35b6103bf60048036038101906103ba919061365d565b610b51565b005b3480156103cc575f80fd5b506103e760048036038101906103e2919061365d565b610b67565b6040516103f4919061341e565b60405180910390f35b610405610b7d565b005b348015610412575f80fd5b5061041b610bce565b60405161042891906136aa565b60405180910390f35b34801561043c575f80fd5b5061045760048036038101906104529190613491565b610bf5565b60405161046491906134d4565b60405180910390f35b348015610478575f80fd5b50610493600480360381019061048e919061376d565b610c0e565b005b3480156104a0575f80fd5b506104bb60048036038101906104b691906137eb565b610d1c565b005b3480156104c8575f80fd5b506104e360048036038101906104de9190613836565b610efe565b005b3480156104f0575f80fd5b5061050b600480360381019061050691906137eb565b61131d565b60405161051891906134d4565b60405180910390f35b34801561052c575f80fd5b50610547600480360381019061054291906137eb565b611324565b60405161055491906134d4565b60405180910390f35b6105776004803603810190610572919061365d565b61151d565b005b348015610584575f80fd5b5061059f600480360381019061059a919061365d565b611533565b6040516105ac919061341e565b60405180910390f35b6105bd61154a565b005b3480156105ca575f80fd5b506105e560048036038101906105e09190613491565b611583565b6040516105f291906134d4565b60405180910390f35b610615600480360381019061061091906137eb565b6115c9565b604051610622919061341e565b60405180910390f35b348015610636575f80fd5b50610651600480360381019061064c91906138c9565b611939565b60405161065e919061341e565b60405180910390f35b61066f61199d565b005b34801561067c575f80fd5b506106856119b0565b60405161069291906134d4565b60405180910390f35b3480156106a6575f80fd5b506106c160048036038101906106bc919061365d565b6119b5565b6040516106ce91906134d4565b60405180910390f35b3480156106e2575f80fd5b506106eb611a0b565b6040516106f89190613914565b60405180910390f35b34801561070c575f80fd5b50610715611a33565b60405161072291906134d4565b60405180910390f35b348015610736575f80fd5b50610751600480360381019061074c91906135a3565b611a39565b60405161075f929190613636565b60405180910390f35b348015610773575f80fd5b5061078e60048036038101906107899190613982565b611bf7565b60405161079b91906136aa565b60405180910390f35b3480156107af575f80fd5b506107ca60048036038101906107c59190613a59565b611c0e565b005b3480156107d7575f80fd5b506107f260048036038101906107ed9190613491565b611cc4565b6040516107ff91906134d4565b60405180910390f35b348015610813575f80fd5b5061082e60048036038101906108299190613491565b611cd9565b60405161083b91906134d4565b60405180910390f35b34801561084f575f80fd5b5061086a60048036038101906108659190613491565b611d7a565b60405161087791906134d4565b60405180910390f35b34801561088b575f80fd5b506108a660048036038101906108a19190613a59565b611d8f565b005b3480156108b3575f80fd5b506108bc611e45565b6040516108c991906134d4565b60405180910390f35b6108ec60048036038101906108e79190613491565b611e4a565b005b3480156108f9575f80fd5b50610914600480360381019061090f9190613ad7565b611e88565b60405161092191906136aa565b60405180910390f35b610944600480360381019061093f9190613491565b611e9d565b005b348015610951575f80fd5b5061096c6004803603810190610967919061365d565b611ec6565b60405161097991906134d4565b60405180910390f35b34801561098d575f80fd5b506109a860048036038101906109a3919061365d565b611f48565b6040516109b591906134d4565b60405180910390f35b3480156109c9575f80fd5b506109e460048036038101906109df91906137eb565b612021565b6040516109f1919061341e565b60405180910390f35b348015610a05575f80fd5b50610a206004803603810190610a1b9190613517565b6123fc565b005b348015610a2d575f80fd5b50610a486004803603810190610a439190613491565b61248e565b604051610a55919061341e565b60405180910390f35b348015610a69575f80fd5b50610a846004803603810190610a7f9190613491565b6124e1565b604051610a9191906134d4565b60405180910390f35b5f610aa4826124fa565b9050919050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610af383612573565b610afd9190613b9a565b9050919050565b6004602052805f5260405f205f915090505481565b610b2333826125de565b50565b5f80610b358787878787611a39565b8092508193505050610b478484610efe565b9550959350505050565b610b596125ed565b610b638282612624565b5050565b5f8182610b7385610bf5565b1614905092915050565b5f610b86612634565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7fde98bbf000000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b6002610c198161263e565b828290508585905014610c58576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015610d14575f848483818110610c7957610c78613bcd565b5b9050602002016020810190610c8e9190613c24565b90506001151581151503610cd357610cce878784818110610cb257610cb1613bcd565b5b9050602002016020810190610cc79190613491565b6001612624565b610d06565b610d05878784818110610ce957610ce8613bcd565b5b9050602002016020810190610cfe9190613491565b60016125de565b5b508080600101915050610c5a565b505050505050565b5f610d25612673565b90508054600382558015610d575760018160011c14303b10610d4e5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8383810190610d689190613f0c565b9050610d76815f015161269c565b5f5b816020015151811015610dd857610dcb82602001518281518110610d9f57610d9e613bcd565b5b602002602001015183604001518381518110610dbe57610dbd613bcd565b5b6020026020010151612772565b8080600101915050610d78565b505f81602001515103610e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1790613fad565b60405180910390fd5b80602001515f81518110610e3757610e36613bcd565b5b60200260200101515f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080606001516001819055507f74f254e69f1d1aa50fbf15b184112c15530415ac9f4b4bf2b75778c6befd09788160600151604051610ebb91906134d4565b60405180910390a1508015610ef9576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166313c8e2de846040518263ffffffff1660e01b8152600401610f5891906134d4565b5f60405180830381865afa158015610f72573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610f9a919061430b565b90505f81608001518381518110610fb457610fb3613bcd565b5b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f7cc1d5bb000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161101791906136aa565b602060405180830381865afa158015611032573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110569190614366565b15611153575f8173ffffffffffffffffffffffffffffffffffffffff1663dcc59b6f6040518163ffffffff1660e01b81526004016020604051808303815f875af11580156110a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ca9190614391565b90505f8273ffffffffffffffffffffffffffffffffffffffff1663a4d66daf6040518163ffffffff1660e01b81526004016020604051808303815f875af1158015611117573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061113b9190614391565b905061114a86868685856127b3565b50505050611319565b8073ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f90318111000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016111ac91906136aa565b602060405180830381865afa1580156111c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111eb9190614366565b156112e7575f8173ffffffffffffffffffffffffffffffffffffffff1663d54ad2a16040518163ffffffff1660e01b81526004016020604051808303815f875af115801561123b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061125f9190614391565b90505f8273ffffffffffffffffffffffffffffffffffffffff1663a4d66daf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112cf9190614391565b90506112de86868685856127b3565b50505050611319565b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b5f92915050565b5f60026113308161263e565b5f84848101906113409190614520565b90505f80600281111561135657611355614567565b5b825f0151600281111561136c5761136b614567565b5b148061139f57506001600281111561138757611386614567565b5b825f0151600281111561139d5761139c614567565b5b145b156113fe575f82606001518060200190518101906113bd91906145cd565b90506113f2836020015184604001515f845f0151146113df57835f01516113ed565b6113ec8660200151610aab565b5b612ac8565b805f0151915050611510565b60028081111561141157611410614567565b5b825f0151600281111561142757611426614567565b5b03611505575f826060015180602001905181019061144591906146f1565b90506114f883602001518460400151835f01515f85602001511461146d5784602001516114ee565b866020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30875f01516040518363ffffffff1660e01b81526004016114ae929190614738565b602060405180830381865afa1580156114c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114ed9190614391565b5b8560400151612c8e565b806020015191505061150f565b8093505050611516565b5b80935050505b5092915050565b6115256125ed565b61152f82826125de565b5050565b5f808261153f85610bf5565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8083838101906115da9190614520565b90505f60028111156115ef576115ee614567565b5b815f0151600281111561160557611604614567565b5b0361167b575f816060015180602001905181019061162391906145cd565b9050805f01513414611675578160200151815f01516040517fcece04c500000000000000000000000000000000000000000000000000000000815260040161166c929190614738565b60405180910390fd5b5061192d565b6001600281111561168f5761168e614567565b5b815f015160028111156116a5576116a4614567565b5b03611780575f81606001518060200190518101906116c391906145cd565b90506116fd826040015130835f0151856020015173ffffffffffffffffffffffffffffffffffffffff16612eba909392919063ffffffff16565b805f015161172e30846020015173ffffffffffffffffffffffffffffffffffffffff16612f1490919063ffffffff16565b101561177a578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401611771929190614738565b60405180910390fd5b5061192c565b60028081111561179357611792614567565b5b815f015160028111156117a9576117a8614567565b5b03611922575f81606001518060200190518101906117c791906146f1565b9050816020015173ffffffffffffffffffffffffffffffffffffffff1663f242432a836040015130845f0151856020015186604001516040518663ffffffff1660e01b815260040161181d9594939291906147b1565b5f604051808303815f87803b158015611834575f80fd5b505af1158015611846573d5f803e3d5ffd5b505050508060200151826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b8152600401611890929190614738565b602060405180830381865afa1580156118ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118cf9190614391565b101561191c57816020015181602001516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401611913929190614738565b60405180910390fd5b5061192b565b5f915050611933565b5b5b60019150505b92915050565b5f805f90505b83839050811015611991576119778484838181106119605761195f613bcd565b5b90506020028101906119729190614815565b612021565b611984575f915050611997565b808060010191505061193f565b50600190505b92915050565b6119a56125ed565b6119ae5f612f47565b565b600281565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60015481565b5f80611a443361248e565b611a7a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60405180604001604052803073ffffffffffffffffffffffffffffffffffffffff16815260200188888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081525090505f8890505f808273ffffffffffffffffffffffffffffffffffffffff1663dd98558c85604051602001611b1e9190614908565b6040516020818303038152906040528a8a6040518463ffffffff1660e01b8152600401611b4d93929190614928565b60408051808303815f875af1158015611b68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b8c9190614964565b915091508160055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611bdc9190613b9a565b92505081905550818195509550505050509550959350505050565b5f63bc197c8160e01b905098975050505050505050565b6002611c198161263e565b828290508585905014611c58576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015611cbc57611caf868683818110611c7b57611c7a613bcd565b5b9050602002016020810190611c909190613491565b858584818110611ca357611ca2613bcd565b5b90506020020135612624565b8080600101915050611c5a565b505050505050565b6003602052805f5260405f205f915090505481565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d5f84610aab565b611d6991906149a2565b611d7391906149a2565b9050919050565b6002602052805f5260405f205f915090505481565b6002611d9a8161263e565b828290508585905014611dd9576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015611e3d57611e30868683818110611dfc57611dfb613bcd565b5b9050602002016020810190611e119190613491565b858584818110611e2457611e23613bcd565b5b905060200201356125de565b8080600101915050611ddb565b505050505050565b600181565b611e526125ed565b63389a75e1600c52805f526020600c208054421115611e7857636f5e88185f526004601cfd5b5f815550611e8581612f47565b50565b5f63f23a6e6160e01b90509695505050505050565b611ea56125ed565b8060601b611eba57637448fbae5f526004601cfd5b611ec381612f47565b50565b5f8273ffffffffffffffffffffffffffffffffffffffff1662fdd58e30846040518363ffffffff1660e01b8152600401611f01929190614738565b602060405180830381865afa158015611f1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f409190614391565b905092915050565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20548373ffffffffffffffffffffffffffffffffffffffff1662fdd58e30856040518363ffffffff1660e01b8152600401611fd0929190614738565b602060405180830381865afa158015611feb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061200f9190614391565b61201991906149a2565b905092915050565b5f61202b3361248e565b612061576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f83838101906120719190614520565b90506001600281111561208757612086614567565b5b815f0151600281111561209d5761209c614567565b5b14806120cf57505f60028111156120b7576120b6614567565b5b815f015160028111156120cd576120cc614567565b5b145b1561229e575f81606001518060200190518101906120ed91906145cd565b90505f612710600154835f015161210491906149d5565b61210e9190614a43565b90505f61211e8460200151610aab565b90508082845f015161213091906149a2565b11156121895783602001518183855f015161214b91906149a2565b6040517f5c54305e00000000000000000000000000000000000000000000000000000000815260040161218093929190614a73565b60405180910390fd5b8160025f866040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160045f866020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461221f91906149a2565b92505081905550825f015160055f866020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461227991906149a2565b9250508190555061229684602001518560400151855f0151612ac8565b5050506123f0565b6002808111156122b1576122b0614567565b5b815f015160028111156122c7576122c6614567565b5b036123e6575f81606001518060200190518101906122e591906146f1565b90505f826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b8152600401612329929190614738565b602060405180830381865afa158015612344573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123689190614391565b905080826020015111156123bf5782602001518183602001516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016123b693929190614a73565b60405180910390fd5b6123df83602001518460400151845f015185602001518660400151612c8e565b50506123ef565b5f9150506123f6565b5b60019150505b92915050565b60026124078161263e565b61271082111561244c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244390614af2565b60405180910390fd5b816001819055507f74f254e69f1d1aa50fbf15b184112c15530415ac9f4b4bf2b75778c6befd09788260405161248291906134d4565b60405180910390a15050565b5f8173ffffffffffffffffffffffffffffffffffffffff166124ae611a0b565b73ffffffffffffffffffffffffffffffffffffffff1614806124da57506124d9826002600117611533565b5b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fde98bbf0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061256c575061256b8261300d565b5b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146125d5576125d0308373ffffffffffffffffffffffffffffffffffffffff16612f1490919063ffffffff16565b6125d7565b475b9050919050565b6125e982825f613156565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314612622576382b429005f526004601cfd5b565b61263082826001613156565b5050565b5f6202a300905090565b638b78c6d81954331461267057638b78c6d8600c52335f52806020600c20541661266f576382b429005f526004601cfd5b5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6126a46131ae565b1561271c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156126de57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061276f565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b5f836080015185815181106127cb576127ca613bcd565b5b602002602001015190505f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8185878561286691906149d5565b6128709190614a43565b61287a9190613b9a565b9050808261288891906149a2565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f8473ffffffffffffffffffffffffffffffffffffffff166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612913573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129379190614b10565b90505f8860e0015190508260045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461298d9190613b9a565b925050819055505f83036129cd576040517fb2e783cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8483856129da91906149a2565b03612a605760025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f905560035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f90555b8073ffffffffffffffffffffffffffffffffffffffff168a8c7ff44ff640e648077f3acc130c6ce75240070e8c40adc85b0feeeec28d9dd921b486604051612aa891906134d4565b60405180910390a4612abb828285612ac8565b5050505050505050505050565b3068929eee149b4bd212685403612ae65763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612b66578282826040517fbf182be8000000000000000000000000000000000000000000000000000000008152600401612b5d93929190614b3b565b60405180910390fd5b612b6f83610aab565b811115612bbf5782612b8084610aab565b826040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401612bb693929190614a73565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612c0157612bfc82826131b2565b612c2d565b612c2c82828573ffffffffffffffffffffffffffffffffffffffff166131cf9092919063ffffffff16565b5b8273ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd435428383604051612c75929190614738565b60405180910390a23868929eee149b4bd2126855505050565b3068929eee149b4bd212685403612cac5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612d2c578484836040517fbf182be8000000000000000000000000000000000000000000000000000000008152600401612d2393929190614b3b565b60405180910390fd5b612d368584611ec6565b821115612d875784612d488685611ec6565b836040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401612d7e93929190614a73565b60405180910390fd5b8160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f205f828254612de291906149a2565b925050819055508473ffffffffffffffffffffffffffffffffffffffff1663f242432a30868686866040518663ffffffff1660e01b8152600401612e2a9594939291906147b1565b5f604051808303815f87803b158015612e41575f80fd5b505af1158015612e53573d5f803e3d5ffd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd435428584604051612e9f929190614738565b60405180910390a23868929eee149b4bd21268555050505050565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f51141716612f0557637939f4245f526004601cfd5b5f606052806040525050505050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b612f4f6131ae565b15612fb4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061300a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f7f5fbfaa4e000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806130d757507f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061313f57507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061314f575061314e82613218565b5b9050919050565b638b78c6d8600c52825f526020600c2080548381178361317857848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f385f3884865af16131cb5763b12d13eb5f526004601cfd5b5050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f5114171661320f576390b8ec185f526004601cfd5b5f603452505050565b5f7fe49cedd7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061328a575061328982613291565b5b9050919050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061330357506133028261330a565b5b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6133b881613384565b81146133c2575f80fd5b50565b5f813590506133d3816133af565b92915050565b5f602082840312156133ee576133ed61337c565b5b5f6133fb848285016133c5565b91505092915050565b5f8115159050919050565b61341881613404565b82525050565b5f6020820190506134315f83018461340f565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61346082613437565b9050919050565b61347081613456565b811461347a575f80fd5b50565b5f8135905061348b81613467565b92915050565b5f602082840312156134a6576134a561337c565b5b5f6134b38482850161347d565b91505092915050565b5f819050919050565b6134ce816134bc565b82525050565b5f6020820190506134e75f8301846134c5565b92915050565b6134f6816134bc565b8114613500575f80fd5b50565b5f81359050613511816134ed565b92915050565b5f6020828403121561352c5761352b61337c565b5b5f61353984828501613503565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261356357613562613542565b5b8235905067ffffffffffffffff8111156135805761357f613546565b5b60208301915083600182028301111561359c5761359b61354a565b5b9250929050565b5f805f805f608086880312156135bc576135bb61337c565b5b5f6135c98882890161347d565b955050602086013567ffffffffffffffff8111156135ea576135e9613380565b5b6135f68882890161354e565b9450945050604061360988828901613503565b925050606061361a88828901613503565b9150509295509295909350565b61363081613456565b82525050565b5f6040820190506136495f8301856134c5565b6136566020830184613627565b9392505050565b5f80604083850312156136735761367261337c565b5b5f6136808582860161347d565b925050602061369185828601613503565b9150509250929050565b6136a481613384565b82525050565b5f6020820190506136bd5f83018461369b565b92915050565b5f8083601f8401126136d8576136d7613542565b5b8235905067ffffffffffffffff8111156136f5576136f4613546565b5b6020830191508360208202830111156137115761371061354a565b5b9250929050565b5f8083601f84011261372d5761372c613542565b5b8235905067ffffffffffffffff81111561374a57613749613546565b5b6020830191508360208202830111156137665761376561354a565b5b9250929050565b5f805f80604085870312156137855761378461337c565b5b5f85013567ffffffffffffffff8111156137a2576137a1613380565b5b6137ae878288016136c3565b9450945050602085013567ffffffffffffffff8111156137d1576137d0613380565b5b6137dd87828801613718565b925092505092959194509250565b5f80602083850312156138015761380061337c565b5b5f83013567ffffffffffffffff81111561381e5761381d613380565b5b61382a8582860161354e565b92509250509250929050565b5f806040838503121561384c5761384b61337c565b5b5f61385985828601613503565b925050602061386a85828601613503565b9150509250929050565b5f8083601f84011261388957613888613542565b5b8235905067ffffffffffffffff8111156138a6576138a5613546565b5b6020830191508360208202830111156138c2576138c161354a565b5b9250929050565b5f80602083850312156138df576138de61337c565b5b5f83013567ffffffffffffffff8111156138fc576138fb613380565b5b61390885828601613874565b92509250509250929050565b5f6020820190506139275f830184613627565b92915050565b5f8083601f84011261394257613941613542565b5b8235905067ffffffffffffffff81111561395f5761395e613546565b5b60208301915083602082028301111561397b5761397a61354a565b5b9250929050565b5f805f805f805f8060a0898b03121561399e5761399d61337c565b5b5f6139ab8b828c0161347d565b98505060206139bc8b828c0161347d565b975050604089013567ffffffffffffffff8111156139dd576139dc613380565b5b6139e98b828c0161392d565b9650965050606089013567ffffffffffffffff811115613a0c57613a0b613380565b5b613a188b828c0161392d565b9450945050608089013567ffffffffffffffff811115613a3b57613a3a613380565b5b613a478b828c0161354e565b92509250509295985092959890939650565b5f805f8060408587031215613a7157613a7061337c565b5b5f85013567ffffffffffffffff811115613a8e57613a8d613380565b5b613a9a878288016136c3565b9450945050602085013567ffffffffffffffff811115613abd57613abc613380565b5b613ac98782880161392d565b925092505092959194509250565b5f805f805f8060a08789031215613af157613af061337c565b5b5f613afe89828a0161347d565b9650506020613b0f89828a0161347d565b9550506040613b2089828a01613503565b9450506060613b3189828a01613503565b935050608087013567ffffffffffffffff811115613b5257613b51613380565b5b613b5e89828a0161354e565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613ba4826134bc565b9150613baf836134bc565b9250828203905081811115613bc757613bc6613b6d565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b613c0381613404565b8114613c0d575f80fd5b50565b5f81359050613c1e81613bfa565b92915050565b5f60208284031215613c3957613c3861337c565b5b5f613c4684828501613c10565b91505092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613c9982613c53565b810181811067ffffffffffffffff82111715613cb857613cb7613c63565b5b80604052505050565b5f613cca613373565b9050613cd68282613c90565b919050565b5f80fd5b5f67ffffffffffffffff821115613cf957613cf8613c63565b5b602082029050602081019050919050565b5f613d1c613d1784613cdf565b613cc1565b90508083825260208201905060208402830185811115613d3f57613d3e61354a565b5b835b81811015613d685780613d54888261347d565b845260208401935050602081019050613d41565b5050509392505050565b5f82601f830112613d8657613d85613542565b5b8135613d96848260208601613d0a565b91505092915050565b5f67ffffffffffffffff821115613db957613db8613c63565b5b602082029050602081019050919050565b5f613ddc613dd784613d9f565b613cc1565b90508083825260208201905060208402830185811115613dff57613dfe61354a565b5b835b81811015613e285780613e148882613503565b845260208401935050602081019050613e01565b5050509392505050565b5f82601f830112613e4657613e45613542565b5b8135613e56848260208601613dca565b91505092915050565b5f60808284031215613e7457613e73613c4f565b5b613e7e6080613cc1565b90505f613e8d8482850161347d565b5f83015250602082013567ffffffffffffffff811115613eb057613eaf613cdb565b5b613ebc84828501613d72565b602083015250604082013567ffffffffffffffff811115613ee057613edf613cdb565b5b613eec84828501613e32565b6040830152506060613f0084828501613503565b60608301525092915050565b5f60208284031215613f2157613f2061337c565b5b5f82013567ffffffffffffffff811115613f3e57613f3d613380565b5b613f4a84828501613e5f565b91505092915050565b5f82825260208201905092915050565b7f6e6f20636f726520636f6e7472616374207365740000000000000000000000005f82015250565b5f613f97601483613f53565b9150613fa282613f63565b602082019050919050565b5f6020820190508181035f830152613fc481613f8b565b9050919050565b5f613fd582613456565b9050919050565b613fe581613fcb565b8114613fef575f80fd5b50565b5f8151905061400081613fdc565b92915050565b5f61401082613456565b9050919050565b61402081614006565b811461402a575f80fd5b50565b5f8151905061403b81614017565b92915050565b5f61404b82613456565b9050919050565b61405b81614041565b8114614065575f80fd5b50565b5f8151905061407681614052565b92915050565b5f61408682613437565b9050919050565b5f6140978261407c565b9050919050565b6140a78161408d565b81146140b1575f80fd5b50565b5f815190506140c28161409e565b92915050565b5f67ffffffffffffffff8211156140e2576140e1613c63565b5b602082029050602081019050919050565b5f6140fd82613456565b9050919050565b61410d816140f3565b8114614117575f80fd5b50565b5f8151905061412881614104565b92915050565b5f61414061413b846140c8565b613cc1565b905080838252602082019050602084028301858111156141635761416261354a565b5b835b8181101561418c5780614178888261411a565b845260208401935050602081019050614165565b5050509392505050565b5f82601f8301126141aa576141a9613542565b5b81516141ba84826020860161412e565b91505092915050565b5f67ffffffffffffffff82169050919050565b6141df816141c3565b81146141e9575f80fd5b50565b5f815190506141fa816141d6565b92915050565b5f8151905061420e816134ed565b92915050565b5f8151905061422281613467565b92915050565b5f610100828403121561423e5761423d613c4f565b5b614249610100613cc1565b90505f61425884828501613ff2565b5f83015250602061426b8482850161402d565b602083015250604061427f84828501614068565b6040830152506060614293848285016140b4565b606083015250608082015167ffffffffffffffff8111156142b7576142b6613cdb565b5b6142c384828501614196565b60808301525060a06142d7848285016141ec565b60a08301525060c06142eb84828501614200565b60c08301525060e06142ff84828501614214565b60e08301525092915050565b5f602082840312156143205761431f61337c565b5b5f82015167ffffffffffffffff81111561433d5761433c613380565b5b61434984828501614228565b91505092915050565b5f8151905061436081613bfa565b92915050565b5f6020828403121561437b5761437a61337c565b5b5f61438884828501614352565b91505092915050565b5f602082840312156143a6576143a561337c565b5b5f6143b384828501614200565b91505092915050565b600381106143c8575f80fd5b50565b5f813590506143d9816143bc565b92915050565b5f80fd5b5f67ffffffffffffffff8211156143fd576143fc613c63565b5b61440682613c53565b9050602081019050919050565b828183375f83830152505050565b5f61443361442e846143e3565b613cc1565b90508281526020810184848401111561444f5761444e6143df565b5b61445a848285614413565b509392505050565b5f82601f83011261447657614475613542565b5b8135614486848260208601614421565b91505092915050565b5f608082840312156144a4576144a3613c4f565b5b6144ae6080613cc1565b90505f6144bd848285016143cb565b5f8301525060206144d08482850161347d565b60208301525060406144e48482850161347d565b604083015250606082013567ffffffffffffffff81111561450857614507613cdb565b5b61451484828501614462565b60608301525092915050565b5f602082840312156145355761453461337c565b5b5f82013567ffffffffffffffff81111561455257614551613380565b5b61455e8482850161448f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f602082840312156145a9576145a8613c4f565b5b6145b36020613cc1565b90505f6145c284828501614200565b5f8301525092915050565b5f602082840312156145e2576145e161337c565b5b5f6145ef84828501614594565b91505092915050565b8281835e5f83830152505050565b5f614618614613846143e3565b613cc1565b905082815260208101848484011115614634576146336143df565b5b61463f8482856145f8565b509392505050565b5f82601f83011261465b5761465a613542565b5b815161466b848260208601614606565b91505092915050565b5f6060828403121561468957614688613c4f565b5b6146936060613cc1565b90505f6146a284828501614200565b5f8301525060206146b584828501614200565b602083015250604082015167ffffffffffffffff8111156146d9576146d8613cdb565b5b6146e584828501614647565b60408301525092915050565b5f602082840312156147065761470561337c565b5b5f82015167ffffffffffffffff81111561472357614722613380565b5b61472f84828501614674565b91505092915050565b5f60408201905061474b5f830185613627565b61475860208301846134c5565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b5f6147838261475f565b61478d8185614769565b935061479d8185602086016145f8565b6147a681613c53565b840191505092915050565b5f60a0820190506147c45f830188613627565b6147d16020830187613627565b6147de60408301866134c5565b6147eb60608301856134c5565b81810360808301526147fd8184614779565b90509695505050505050565b5f80fd5b5f80fd5b5f80fd5b5f808335600160200384360303811261483157614830614809565b5b80840192508235915067ffffffffffffffff8211156148535761485261480d565b5b60208301925060018202360383131561486f5761486e614811565b5b509250929050565b61488081613456565b82525050565b5f82825260208201905092915050565b5f6148a08261475f565b6148aa8185614886565b93506148ba8185602086016145f8565b6148c381613c53565b840191505092915050565b5f604083015f8301516148e35f860182614877565b50602083015184820360208601526148fb8282614896565b9150508091505092915050565b5f6020820190508181035f83015261492081846148ce565b905092915050565b5f6060820190508181035f8301526149408186614779565b905061494f60208301856134c5565b61495c60408301846134c5565b949350505050565b5f806040838503121561497a5761497961337c565b5b5f61498785828601614200565b925050602061499885828601614214565b9150509250929050565b5f6149ac826134bc565b91506149b7836134bc565b92508282019050808211156149cf576149ce613b6d565b5b92915050565b5f6149df826134bc565b91506149ea836134bc565b92508282026149f8816134bc565b91508282048414831517614a0f57614a0e613b6d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614a4d826134bc565b9150614a58836134bc565b925082614a6857614a67614a16565b5b828204905092915050565b5f606082019050614a865f830186613627565b614a9360208301856134c5565b614aa060408301846134c5565b949350505050565b7f4665652063616e6e6f74206578636565642031303025000000000000000000005f82015250565b5f614adc601683613f53565b9150614ae782614aa8565b602082019050919050565b5f6020820190508181035f830152614b0981614ad0565b9050919050565b5f60208284031215614b2557614b2461337c565b5b5f614b3284828501614214565b91505092915050565b5f606082019050614b4e5f830186613627565b614b5b6020830185613627565b614b6860408301846134c5565b94935050505056fea26469706673582212208be1305b3f3b547f87f7241f601c7e713e0cfef2affbab146c985bc7e4bbeae964736f6c634300081a0033",o=class o extends p.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.hO(this._config,{address:this.assertValidAddress(),args:[r.prepareTransfer(f)],...this.optionallyAttachAccount(),...b});return{hash:await d.iO(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.MO(this._config,{address:this.assertValidAddress(),args:[r.prepareTransfer(f)],...this.optionallyAttachAccount(),...b});return{hash:await d.rO(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.RO(this._config,{address:this.assertValidAddress(),args:[f,b,BigInt(a),BigInt(e)],...this.optionallyAttachAccount(),...c});return{hash:await d.oO(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.CO(this._config,{address:this.assertValidAddress(),args:[r.prepareTransfer(f)],...this.optionallyAttachAccount(),...b});return{hash:await d.uO(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.EO(this._config,{address:this.assertValidAddress(),args:[f.map(r.prepareTransfer)],...this.optionallyAttachAccount(),...b});return{hash:await d.lO(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.$C(this._config,{address:this.assertValidAddress(),args:[f,b],...this.optionallyAttachAccount(),...a});return{hash:await d.RC(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.nE(this._config,{address:this.assertValidAddress(),args:[f],...this.optionallyAttachAccount(),...b});return{hash:await d.SC(this._config,a),result:e}}async managementFee(f){return await d.sC(this._config,{address:this.assertValidAddress(),args:[],...f})}owner(f){return d.X6(this._config,{address:this.assertValidAddress(),args:[],...f})}total(f=t.zeroAddress,b,a){return d.nO(this._config,{address:this.assertValidAddress(),args:b?[f,b]:[f],...a})}available(f=t.zeroAddress,b,a){return d.U6(this._config,{address:this.assertValidAddress(),args:b?[f,b]:[f],...a})}distributed(f=t.zeroAddress,b,a){return d.W6(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,...A.ManagedBudgetWithFees},o.registryType=m.RegistryType.BUDGET;let i=o;const w=({owner:n,authorized:f,roles:b,managementFee:a})=>t.encodeAbiParameters(t.parseAbiParameters(["ManagedBudgetWithFeesPayload payload","struct ManagedBudgetWithFeesPayload { address owner; address[] authorized; uint256[] roles; uint256 managementFee; }"]),[{owner:n,authorized:f,roles:b,managementFee:a}]),h={[u.AManagedBudget]:r.ManagedBudget,[u.AManagedBudgetWithFees]:i};async function B(n,f,b){const a=await l.readContract(n.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(n,f)}exports.BudgetByComponentInterface=h;exports.ManagedBudgetWithFees=i;exports.budgetFromAddress=B;exports.prepareManagedBudgetWithFeesPayload=w;
2
- //# sourceMappingURL=Budget-Dlbk4PdV.cjs.map
1
+ "use strict";const d=require("./generated-CNkDfjzI.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-CMdsItcq.cjs"),A=require("./Deployable/DeployableTargetWithRBAC.cjs"),m=require("./utils.cjs"),R="0x6080604052348015600e575f80fd5b50601b602b60201b60201c565b6027602b60201b60201c565b60bc565b5f6038609360201b60201c565b90508054600181161560515763f92ee8a95f526004601cfd5b8160c01c808260011c14608e578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b614ba6806100c95f395ff3fe60806040526004361061025f575f3560e01c8063715018a611610143578063dcc21361116100b5578063f8724aba11610079578063f8724aba14610946578063f9a802c314610982578063fa4ca9b1146109be578063fe56e232146109fa578063fe9fbb8014610a22578063fee81cf414610a5e57610266565b8063dcc2136114610880578063ec87621c146108a8578063f04e283e146108d2578063f23a6e61146108ee578063f2fde38b1461092a57610266565b8063b300579311610107578063b30057931461072b578063bc197c8114610768578063be4994f8146107a4578063c6004a3a146107cc578063d2514e8414610808578063d8c12d221461084457610266565b8063715018a61461066757806375b238fc14610671578063774c33ab1461069b5780638da5cb5b146106d7578063a6f7f5d61461070157610266565b80634359d28a116101dc5780634a4ee7b1116101a05780634a4ee7b11461055d578063514e62fc1461057957806354d1f13d146105b5578063578bcf35146105bf5780635aef467a146105fb57806361400c991461062b57610266565b80634359d28a1461046d578063439fab911461049557806343cc96e1146104bd578063451cc191146104e5578063474f5a441461052157610266565b80631c10893f116102235780631c10893f146103a55780631cd64df4146103c157806325692962146103fd57806328d6183b146104075780632de948071461043157610266565b806301ffc9a71461029857806310098ad5146102d457806314135ce014610310578063183a4f6e1461034c578063185832a31461036857610266565b3661026657005b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3480156102a3575f80fd5b506102be60048036038101906102b991906133d9565b610a9a565b6040516102cb919061341e565b60405180910390f35b3480156102df575f80fd5b506102fa60048036038101906102f59190613491565b610aab565b60405161030791906134d4565b60405180910390f35b34801561031b575f80fd5b5061033660048036038101906103319190613491565b610b04565b60405161034391906134d4565b60405180910390f35b61036660048036038101906103619190613517565b610b19565b005b348015610373575f80fd5b5061038e600480360381019061038991906135a3565b610b26565b60405161039c929190613636565b60405180910390f35b6103bf60048036038101906103ba919061365d565b610b51565b005b3480156103cc575f80fd5b506103e760048036038101906103e2919061365d565b610b67565b6040516103f4919061341e565b60405180910390f35b610405610b7d565b005b348015610412575f80fd5b5061041b610bce565b60405161042891906136aa565b60405180910390f35b34801561043c575f80fd5b5061045760048036038101906104529190613491565b610bf5565b60405161046491906134d4565b60405180910390f35b348015610478575f80fd5b50610493600480360381019061048e919061376d565b610c0e565b005b3480156104a0575f80fd5b506104bb60048036038101906104b691906137eb565b610d1c565b005b3480156104c8575f80fd5b506104e360048036038101906104de9190613836565b610efe565b005b3480156104f0575f80fd5b5061050b600480360381019061050691906137eb565b61131d565b60405161051891906134d4565b60405180910390f35b34801561052c575f80fd5b50610547600480360381019061054291906137eb565b611324565b60405161055491906134d4565b60405180910390f35b6105776004803603810190610572919061365d565b61151d565b005b348015610584575f80fd5b5061059f600480360381019061059a919061365d565b611533565b6040516105ac919061341e565b60405180910390f35b6105bd61154a565b005b3480156105ca575f80fd5b506105e560048036038101906105e09190613491565b611583565b6040516105f291906134d4565b60405180910390f35b610615600480360381019061061091906137eb565b6115c9565b604051610622919061341e565b60405180910390f35b348015610636575f80fd5b50610651600480360381019061064c91906138c9565b611939565b60405161065e919061341e565b60405180910390f35b61066f61199d565b005b34801561067c575f80fd5b506106856119b0565b60405161069291906134d4565b60405180910390f35b3480156106a6575f80fd5b506106c160048036038101906106bc919061365d565b6119b5565b6040516106ce91906134d4565b60405180910390f35b3480156106e2575f80fd5b506106eb611a0b565b6040516106f89190613914565b60405180910390f35b34801561070c575f80fd5b50610715611a33565b60405161072291906134d4565b60405180910390f35b348015610736575f80fd5b50610751600480360381019061074c91906135a3565b611a39565b60405161075f929190613636565b60405180910390f35b348015610773575f80fd5b5061078e60048036038101906107899190613982565b611bf7565b60405161079b91906136aa565b60405180910390f35b3480156107af575f80fd5b506107ca60048036038101906107c59190613a59565b611c0e565b005b3480156107d7575f80fd5b506107f260048036038101906107ed9190613491565b611cc4565b6040516107ff91906134d4565b60405180910390f35b348015610813575f80fd5b5061082e60048036038101906108299190613491565b611cd9565b60405161083b91906134d4565b60405180910390f35b34801561084f575f80fd5b5061086a60048036038101906108659190613491565b611d7a565b60405161087791906134d4565b60405180910390f35b34801561088b575f80fd5b506108a660048036038101906108a19190613a59565b611d8f565b005b3480156108b3575f80fd5b506108bc611e45565b6040516108c991906134d4565b60405180910390f35b6108ec60048036038101906108e79190613491565b611e4a565b005b3480156108f9575f80fd5b50610914600480360381019061090f9190613ad7565b611e88565b60405161092191906136aa565b60405180910390f35b610944600480360381019061093f9190613491565b611e9d565b005b348015610951575f80fd5b5061096c6004803603810190610967919061365d565b611ec6565b60405161097991906134d4565b60405180910390f35b34801561098d575f80fd5b506109a860048036038101906109a3919061365d565b611f48565b6040516109b591906134d4565b60405180910390f35b3480156109c9575f80fd5b506109e460048036038101906109df91906137eb565b612021565b6040516109f1919061341e565b60405180910390f35b348015610a05575f80fd5b50610a206004803603810190610a1b9190613517565b6123fc565b005b348015610a2d575f80fd5b50610a486004803603810190610a439190613491565b61248e565b604051610a55919061341e565b60405180910390f35b348015610a69575f80fd5b50610a846004803603810190610a7f9190613491565b6124e1565b604051610a9191906134d4565b60405180910390f35b5f610aa4826124fa565b9050919050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610af383612573565b610afd9190613b9a565b9050919050565b6004602052805f5260405f205f915090505481565b610b2333826125de565b50565b5f80610b358787878787611a39565b8092508193505050610b478484610efe565b9550959350505050565b610b596125ed565b610b638282612624565b5050565b5f8182610b7385610bf5565b1614905092915050565b5f610b86612634565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7fde98bbf000000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b6002610c198161263e565b828290508585905014610c58576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015610d14575f848483818110610c7957610c78613bcd565b5b9050602002016020810190610c8e9190613c24565b90506001151581151503610cd357610cce878784818110610cb257610cb1613bcd565b5b9050602002016020810190610cc79190613491565b6001612624565b610d06565b610d05878784818110610ce957610ce8613bcd565b5b9050602002016020810190610cfe9190613491565b60016125de565b5b508080600101915050610c5a565b505050505050565b5f610d25612673565b90508054600382558015610d575760018160011c14303b10610d4e5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8383810190610d689190613f0c565b9050610d76815f015161269c565b5f5b816020015151811015610dd857610dcb82602001518281518110610d9f57610d9e613bcd565b5b602002602001015183604001518381518110610dbe57610dbd613bcd565b5b6020026020010151612772565b8080600101915050610d78565b505f81602001515103610e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1790613fad565b60405180910390fd5b80602001515f81518110610e3757610e36613bcd565b5b60200260200101515f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080606001516001819055507f74f254e69f1d1aa50fbf15b184112c15530415ac9f4b4bf2b75778c6befd09788160600151604051610ebb91906134d4565b60405180910390a1508015610ef9576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166313c8e2de846040518263ffffffff1660e01b8152600401610f5891906134d4565b5f60405180830381865afa158015610f72573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610f9a919061430b565b90505f81608001518381518110610fb457610fb3613bcd565b5b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f7cc1d5bb000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161101791906136aa565b602060405180830381865afa158015611032573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110569190614366565b15611153575f8173ffffffffffffffffffffffffffffffffffffffff1663dcc59b6f6040518163ffffffff1660e01b81526004016020604051808303815f875af11580156110a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ca9190614391565b90505f8273ffffffffffffffffffffffffffffffffffffffff1663a4d66daf6040518163ffffffff1660e01b81526004016020604051808303815f875af1158015611117573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061113b9190614391565b905061114a86868685856127b3565b50505050611319565b8073ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f90318111000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016111ac91906136aa565b602060405180830381865afa1580156111c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111eb9190614366565b156112e7575f8173ffffffffffffffffffffffffffffffffffffffff1663d54ad2a16040518163ffffffff1660e01b81526004016020604051808303815f875af115801561123b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061125f9190614391565b90505f8273ffffffffffffffffffffffffffffffffffffffff1663a4d66daf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112cf9190614391565b90506112de86868685856127b3565b50505050611319565b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b5f92915050565b5f60026113308161263e565b5f84848101906113409190614520565b90505f80600281111561135657611355614567565b5b825f0151600281111561136c5761136b614567565b5b148061139f57506001600281111561138757611386614567565b5b825f0151600281111561139d5761139c614567565b5b145b156113fe575f82606001518060200190518101906113bd91906145cd565b90506113f2836020015184604001515f845f0151146113df57835f01516113ed565b6113ec8660200151610aab565b5b612ac8565b805f0151915050611510565b60028081111561141157611410614567565b5b825f0151600281111561142757611426614567565b5b03611505575f826060015180602001905181019061144591906146f1565b90506114f883602001518460400151835f01515f85602001511461146d5784602001516114ee565b866020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30875f01516040518363ffffffff1660e01b81526004016114ae929190614738565b602060405180830381865afa1580156114c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114ed9190614391565b5b8560400151612c8e565b806020015191505061150f565b8093505050611516565b5b80935050505b5092915050565b6115256125ed565b61152f82826125de565b5050565b5f808261153f85610bf5565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8083838101906115da9190614520565b90505f60028111156115ef576115ee614567565b5b815f0151600281111561160557611604614567565b5b0361167b575f816060015180602001905181019061162391906145cd565b9050805f01513414611675578160200151815f01516040517fcece04c500000000000000000000000000000000000000000000000000000000815260040161166c929190614738565b60405180910390fd5b5061192d565b6001600281111561168f5761168e614567565b5b815f015160028111156116a5576116a4614567565b5b03611780575f81606001518060200190518101906116c391906145cd565b90506116fd826040015130835f0151856020015173ffffffffffffffffffffffffffffffffffffffff16612eba909392919063ffffffff16565b805f015161172e30846020015173ffffffffffffffffffffffffffffffffffffffff16612f1490919063ffffffff16565b101561177a578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401611771929190614738565b60405180910390fd5b5061192c565b60028081111561179357611792614567565b5b815f015160028111156117a9576117a8614567565b5b03611922575f81606001518060200190518101906117c791906146f1565b9050816020015173ffffffffffffffffffffffffffffffffffffffff1663f242432a836040015130845f0151856020015186604001516040518663ffffffff1660e01b815260040161181d9594939291906147b1565b5f604051808303815f87803b158015611834575f80fd5b505af1158015611846573d5f803e3d5ffd5b505050508060200151826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b8152600401611890929190614738565b602060405180830381865afa1580156118ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118cf9190614391565b101561191c57816020015181602001516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401611913929190614738565b60405180910390fd5b5061192b565b5f915050611933565b5b5b60019150505b92915050565b5f805f90505b83839050811015611991576119778484838181106119605761195f613bcd565b5b90506020028101906119729190614815565b612021565b611984575f915050611997565b808060010191505061193f565b50600190505b92915050565b6119a56125ed565b6119ae5f612f47565b565b600281565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60015481565b5f80611a443361248e565b611a7a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60405180604001604052803073ffffffffffffffffffffffffffffffffffffffff16815260200188888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081525090505f8890505f808273ffffffffffffffffffffffffffffffffffffffff1663dd98558c85604051602001611b1e9190614908565b6040516020818303038152906040528a8a6040518463ffffffff1660e01b8152600401611b4d93929190614928565b60408051808303815f875af1158015611b68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b8c9190614964565b915091508160055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611bdc9190613b9a565b92505081905550818195509550505050509550959350505050565b5f63bc197c8160e01b905098975050505050505050565b6002611c198161263e565b828290508585905014611c58576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015611cbc57611caf868683818110611c7b57611c7a613bcd565b5b9050602002016020810190611c909190613491565b858584818110611ca357611ca2613bcd565b5b90506020020135612624565b8080600101915050611c5a565b505050505050565b6003602052805f5260405f205f915090505481565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d5f84610aab565b611d6991906149a2565b611d7391906149a2565b9050919050565b6002602052805f5260405f205f915090505481565b6002611d9a8161263e565b828290508585905014611dd9576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015611e3d57611e30868683818110611dfc57611dfb613bcd565b5b9050602002016020810190611e119190613491565b858584818110611e2457611e23613bcd565b5b905060200201356125de565b8080600101915050611ddb565b505050505050565b600181565b611e526125ed565b63389a75e1600c52805f526020600c208054421115611e7857636f5e88185f526004601cfd5b5f815550611e8581612f47565b50565b5f63f23a6e6160e01b90509695505050505050565b611ea56125ed565b8060601b611eba57637448fbae5f526004601cfd5b611ec381612f47565b50565b5f8273ffffffffffffffffffffffffffffffffffffffff1662fdd58e30846040518363ffffffff1660e01b8152600401611f01929190614738565b602060405180830381865afa158015611f1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f409190614391565b905092915050565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20548373ffffffffffffffffffffffffffffffffffffffff1662fdd58e30856040518363ffffffff1660e01b8152600401611fd0929190614738565b602060405180830381865afa158015611feb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061200f9190614391565b61201991906149a2565b905092915050565b5f61202b3361248e565b612061576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f83838101906120719190614520565b90506001600281111561208757612086614567565b5b815f0151600281111561209d5761209c614567565b5b14806120cf57505f60028111156120b7576120b6614567565b5b815f015160028111156120cd576120cc614567565b5b145b1561229e575f81606001518060200190518101906120ed91906145cd565b90505f612710600154835f015161210491906149d5565b61210e9190614a43565b90505f61211e8460200151610aab565b90508082845f015161213091906149a2565b11156121895783602001518183855f015161214b91906149a2565b6040517f5c54305e00000000000000000000000000000000000000000000000000000000815260040161218093929190614a73565b60405180910390fd5b8160025f866040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160045f866020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461221f91906149a2565b92505081905550825f015160055f866020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461227991906149a2565b9250508190555061229684602001518560400151855f0151612ac8565b5050506123f0565b6002808111156122b1576122b0614567565b5b815f015160028111156122c7576122c6614567565b5b036123e6575f81606001518060200190518101906122e591906146f1565b90505f826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b8152600401612329929190614738565b602060405180830381865afa158015612344573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123689190614391565b905080826020015111156123bf5782602001518183602001516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016123b693929190614a73565b60405180910390fd5b6123df83602001518460400151845f015185602001518660400151612c8e565b50506123ef565b5f9150506123f6565b5b60019150505b92915050565b60026124078161263e565b61271082111561244c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244390614af2565b60405180910390fd5b816001819055507f74f254e69f1d1aa50fbf15b184112c15530415ac9f4b4bf2b75778c6befd09788260405161248291906134d4565b60405180910390a15050565b5f8173ffffffffffffffffffffffffffffffffffffffff166124ae611a0b565b73ffffffffffffffffffffffffffffffffffffffff1614806124da57506124d9826002600117611533565b5b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fde98bbf0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061256c575061256b8261300d565b5b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146125d5576125d0308373ffffffffffffffffffffffffffffffffffffffff16612f1490919063ffffffff16565b6125d7565b475b9050919050565b6125e982825f613156565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314612622576382b429005f526004601cfd5b565b61263082826001613156565b5050565b5f6202a300905090565b638b78c6d81954331461267057638b78c6d8600c52335f52806020600c20541661266f576382b429005f526004601cfd5b5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6126a46131ae565b1561271c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156126de57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061276f565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b5f836080015185815181106127cb576127ca613bcd565b5b602002602001015190505f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8185878561286691906149d5565b6128709190614a43565b61287a9190613b9a565b9050808261288891906149a2565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f8473ffffffffffffffffffffffffffffffffffffffff166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612913573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129379190614b10565b90505f8860e0015190508260045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461298d9190613b9a565b925050819055505f83036129cd576040517fb2e783cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8483856129da91906149a2565b03612a605760025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f905560035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f90555b8073ffffffffffffffffffffffffffffffffffffffff168a8c7ff44ff640e648077f3acc130c6ce75240070e8c40adc85b0feeeec28d9dd921b486604051612aa891906134d4565b60405180910390a4612abb828285612ac8565b5050505050505050505050565b3068929eee149b4bd212685403612ae65763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612b66578282826040517fbf182be8000000000000000000000000000000000000000000000000000000008152600401612b5d93929190614b3b565b60405180910390fd5b612b6f83610aab565b811115612bbf5782612b8084610aab565b826040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401612bb693929190614a73565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612c0157612bfc82826131b2565b612c2d565b612c2c82828573ffffffffffffffffffffffffffffffffffffffff166131cf9092919063ffffffff16565b5b8273ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd435428383604051612c75929190614738565b60405180910390a23868929eee149b4bd2126855505050565b3068929eee149b4bd212685403612cac5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612d2c578484836040517fbf182be8000000000000000000000000000000000000000000000000000000008152600401612d2393929190614b3b565b60405180910390fd5b612d368584611ec6565b821115612d875784612d488685611ec6565b836040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401612d7e93929190614a73565b60405180910390fd5b8160065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f205f828254612de291906149a2565b925050819055508473ffffffffffffffffffffffffffffffffffffffff1663f242432a30868686866040518663ffffffff1660e01b8152600401612e2a9594939291906147b1565b5f604051808303815f87803b158015612e41575f80fd5b505af1158015612e53573d5f803e3d5ffd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd435428584604051612e9f929190614738565b60405180910390a23868929eee149b4bd21268555050505050565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f51141716612f0557637939f4245f526004601cfd5b5f606052806040525050505050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b612f4f6131ae565b15612fb4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061300a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f7f5fbfaa4e000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806130d757507f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061313f57507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061314f575061314e82613218565b5b9050919050565b638b78c6d8600c52825f526020600c2080548381178361317857848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f385f3884865af16131cb5763b12d13eb5f526004601cfd5b5050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f5114171661320f576390b8ec185f526004601cfd5b5f603452505050565b5f7fe49cedd7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061328a575061328982613291565b5b9050919050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061330357506133028261330a565b5b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6133b881613384565b81146133c2575f80fd5b50565b5f813590506133d3816133af565b92915050565b5f602082840312156133ee576133ed61337c565b5b5f6133fb848285016133c5565b91505092915050565b5f8115159050919050565b61341881613404565b82525050565b5f6020820190506134315f83018461340f565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61346082613437565b9050919050565b61347081613456565b811461347a575f80fd5b50565b5f8135905061348b81613467565b92915050565b5f602082840312156134a6576134a561337c565b5b5f6134b38482850161347d565b91505092915050565b5f819050919050565b6134ce816134bc565b82525050565b5f6020820190506134e75f8301846134c5565b92915050565b6134f6816134bc565b8114613500575f80fd5b50565b5f81359050613511816134ed565b92915050565b5f6020828403121561352c5761352b61337c565b5b5f61353984828501613503565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261356357613562613542565b5b8235905067ffffffffffffffff8111156135805761357f613546565b5b60208301915083600182028301111561359c5761359b61354a565b5b9250929050565b5f805f805f608086880312156135bc576135bb61337c565b5b5f6135c98882890161347d565b955050602086013567ffffffffffffffff8111156135ea576135e9613380565b5b6135f68882890161354e565b9450945050604061360988828901613503565b925050606061361a88828901613503565b9150509295509295909350565b61363081613456565b82525050565b5f6040820190506136495f8301856134c5565b6136566020830184613627565b9392505050565b5f80604083850312156136735761367261337c565b5b5f6136808582860161347d565b925050602061369185828601613503565b9150509250929050565b6136a481613384565b82525050565b5f6020820190506136bd5f83018461369b565b92915050565b5f8083601f8401126136d8576136d7613542565b5b8235905067ffffffffffffffff8111156136f5576136f4613546565b5b6020830191508360208202830111156137115761371061354a565b5b9250929050565b5f8083601f84011261372d5761372c613542565b5b8235905067ffffffffffffffff81111561374a57613749613546565b5b6020830191508360208202830111156137665761376561354a565b5b9250929050565b5f805f80604085870312156137855761378461337c565b5b5f85013567ffffffffffffffff8111156137a2576137a1613380565b5b6137ae878288016136c3565b9450945050602085013567ffffffffffffffff8111156137d1576137d0613380565b5b6137dd87828801613718565b925092505092959194509250565b5f80602083850312156138015761380061337c565b5b5f83013567ffffffffffffffff81111561381e5761381d613380565b5b61382a8582860161354e565b92509250509250929050565b5f806040838503121561384c5761384b61337c565b5b5f61385985828601613503565b925050602061386a85828601613503565b9150509250929050565b5f8083601f84011261388957613888613542565b5b8235905067ffffffffffffffff8111156138a6576138a5613546565b5b6020830191508360208202830111156138c2576138c161354a565b5b9250929050565b5f80602083850312156138df576138de61337c565b5b5f83013567ffffffffffffffff8111156138fc576138fb613380565b5b61390885828601613874565b92509250509250929050565b5f6020820190506139275f830184613627565b92915050565b5f8083601f84011261394257613941613542565b5b8235905067ffffffffffffffff81111561395f5761395e613546565b5b60208301915083602082028301111561397b5761397a61354a565b5b9250929050565b5f805f805f805f8060a0898b03121561399e5761399d61337c565b5b5f6139ab8b828c0161347d565b98505060206139bc8b828c0161347d565b975050604089013567ffffffffffffffff8111156139dd576139dc613380565b5b6139e98b828c0161392d565b9650965050606089013567ffffffffffffffff811115613a0c57613a0b613380565b5b613a188b828c0161392d565b9450945050608089013567ffffffffffffffff811115613a3b57613a3a613380565b5b613a478b828c0161354e565b92509250509295985092959890939650565b5f805f8060408587031215613a7157613a7061337c565b5b5f85013567ffffffffffffffff811115613a8e57613a8d613380565b5b613a9a878288016136c3565b9450945050602085013567ffffffffffffffff811115613abd57613abc613380565b5b613ac98782880161392d565b925092505092959194509250565b5f805f805f8060a08789031215613af157613af061337c565b5b5f613afe89828a0161347d565b9650506020613b0f89828a0161347d565b9550506040613b2089828a01613503565b9450506060613b3189828a01613503565b935050608087013567ffffffffffffffff811115613b5257613b51613380565b5b613b5e89828a0161354e565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613ba4826134bc565b9150613baf836134bc565b9250828203905081811115613bc757613bc6613b6d565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b613c0381613404565b8114613c0d575f80fd5b50565b5f81359050613c1e81613bfa565b92915050565b5f60208284031215613c3957613c3861337c565b5b5f613c4684828501613c10565b91505092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613c9982613c53565b810181811067ffffffffffffffff82111715613cb857613cb7613c63565b5b80604052505050565b5f613cca613373565b9050613cd68282613c90565b919050565b5f80fd5b5f67ffffffffffffffff821115613cf957613cf8613c63565b5b602082029050602081019050919050565b5f613d1c613d1784613cdf565b613cc1565b90508083825260208201905060208402830185811115613d3f57613d3e61354a565b5b835b81811015613d685780613d54888261347d565b845260208401935050602081019050613d41565b5050509392505050565b5f82601f830112613d8657613d85613542565b5b8135613d96848260208601613d0a565b91505092915050565b5f67ffffffffffffffff821115613db957613db8613c63565b5b602082029050602081019050919050565b5f613ddc613dd784613d9f565b613cc1565b90508083825260208201905060208402830185811115613dff57613dfe61354a565b5b835b81811015613e285780613e148882613503565b845260208401935050602081019050613e01565b5050509392505050565b5f82601f830112613e4657613e45613542565b5b8135613e56848260208601613dca565b91505092915050565b5f60808284031215613e7457613e73613c4f565b5b613e7e6080613cc1565b90505f613e8d8482850161347d565b5f83015250602082013567ffffffffffffffff811115613eb057613eaf613cdb565b5b613ebc84828501613d72565b602083015250604082013567ffffffffffffffff811115613ee057613edf613cdb565b5b613eec84828501613e32565b6040830152506060613f0084828501613503565b60608301525092915050565b5f60208284031215613f2157613f2061337c565b5b5f82013567ffffffffffffffff811115613f3e57613f3d613380565b5b613f4a84828501613e5f565b91505092915050565b5f82825260208201905092915050565b7f6e6f20636f726520636f6e7472616374207365740000000000000000000000005f82015250565b5f613f97601483613f53565b9150613fa282613f63565b602082019050919050565b5f6020820190508181035f830152613fc481613f8b565b9050919050565b5f613fd582613456565b9050919050565b613fe581613fcb565b8114613fef575f80fd5b50565b5f8151905061400081613fdc565b92915050565b5f61401082613456565b9050919050565b61402081614006565b811461402a575f80fd5b50565b5f8151905061403b81614017565b92915050565b5f61404b82613456565b9050919050565b61405b81614041565b8114614065575f80fd5b50565b5f8151905061407681614052565b92915050565b5f61408682613437565b9050919050565b5f6140978261407c565b9050919050565b6140a78161408d565b81146140b1575f80fd5b50565b5f815190506140c28161409e565b92915050565b5f67ffffffffffffffff8211156140e2576140e1613c63565b5b602082029050602081019050919050565b5f6140fd82613456565b9050919050565b61410d816140f3565b8114614117575f80fd5b50565b5f8151905061412881614104565b92915050565b5f61414061413b846140c8565b613cc1565b905080838252602082019050602084028301858111156141635761416261354a565b5b835b8181101561418c5780614178888261411a565b845260208401935050602081019050614165565b5050509392505050565b5f82601f8301126141aa576141a9613542565b5b81516141ba84826020860161412e565b91505092915050565b5f67ffffffffffffffff82169050919050565b6141df816141c3565b81146141e9575f80fd5b50565b5f815190506141fa816141d6565b92915050565b5f8151905061420e816134ed565b92915050565b5f8151905061422281613467565b92915050565b5f610100828403121561423e5761423d613c4f565b5b614249610100613cc1565b90505f61425884828501613ff2565b5f83015250602061426b8482850161402d565b602083015250604061427f84828501614068565b6040830152506060614293848285016140b4565b606083015250608082015167ffffffffffffffff8111156142b7576142b6613cdb565b5b6142c384828501614196565b60808301525060a06142d7848285016141ec565b60a08301525060c06142eb84828501614200565b60c08301525060e06142ff84828501614214565b60e08301525092915050565b5f602082840312156143205761431f61337c565b5b5f82015167ffffffffffffffff81111561433d5761433c613380565b5b61434984828501614228565b91505092915050565b5f8151905061436081613bfa565b92915050565b5f6020828403121561437b5761437a61337c565b5b5f61438884828501614352565b91505092915050565b5f602082840312156143a6576143a561337c565b5b5f6143b384828501614200565b91505092915050565b600381106143c8575f80fd5b50565b5f813590506143d9816143bc565b92915050565b5f80fd5b5f67ffffffffffffffff8211156143fd576143fc613c63565b5b61440682613c53565b9050602081019050919050565b828183375f83830152505050565b5f61443361442e846143e3565b613cc1565b90508281526020810184848401111561444f5761444e6143df565b5b61445a848285614413565b509392505050565b5f82601f83011261447657614475613542565b5b8135614486848260208601614421565b91505092915050565b5f608082840312156144a4576144a3613c4f565b5b6144ae6080613cc1565b90505f6144bd848285016143cb565b5f8301525060206144d08482850161347d565b60208301525060406144e48482850161347d565b604083015250606082013567ffffffffffffffff81111561450857614507613cdb565b5b61451484828501614462565b60608301525092915050565b5f602082840312156145355761453461337c565b5b5f82013567ffffffffffffffff81111561455257614551613380565b5b61455e8482850161448f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f602082840312156145a9576145a8613c4f565b5b6145b36020613cc1565b90505f6145c284828501614200565b5f8301525092915050565b5f602082840312156145e2576145e161337c565b5b5f6145ef84828501614594565b91505092915050565b8281835e5f83830152505050565b5f614618614613846143e3565b613cc1565b905082815260208101848484011115614634576146336143df565b5b61463f8482856145f8565b509392505050565b5f82601f83011261465b5761465a613542565b5b815161466b848260208601614606565b91505092915050565b5f6060828403121561468957614688613c4f565b5b6146936060613cc1565b90505f6146a284828501614200565b5f8301525060206146b584828501614200565b602083015250604082015167ffffffffffffffff8111156146d9576146d8613cdb565b5b6146e584828501614647565b60408301525092915050565b5f602082840312156147065761470561337c565b5b5f82015167ffffffffffffffff81111561472357614722613380565b5b61472f84828501614674565b91505092915050565b5f60408201905061474b5f830185613627565b61475860208301846134c5565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b5f6147838261475f565b61478d8185614769565b935061479d8185602086016145f8565b6147a681613c53565b840191505092915050565b5f60a0820190506147c45f830188613627565b6147d16020830187613627565b6147de60408301866134c5565b6147eb60608301856134c5565b81810360808301526147fd8184614779565b90509695505050505050565b5f80fd5b5f80fd5b5f80fd5b5f808335600160200384360303811261483157614830614809565b5b80840192508235915067ffffffffffffffff8211156148535761485261480d565b5b60208301925060018202360383131561486f5761486e614811565b5b509250929050565b61488081613456565b82525050565b5f82825260208201905092915050565b5f6148a08261475f565b6148aa8185614886565b93506148ba8185602086016145f8565b6148c381613c53565b840191505092915050565b5f604083015f8301516148e35f860182614877565b50602083015184820360208601526148fb8282614896565b9150508091505092915050565b5f6020820190508181035f83015261492081846148ce565b905092915050565b5f6060820190508181035f8301526149408186614779565b905061494f60208301856134c5565b61495c60408301846134c5565b949350505050565b5f806040838503121561497a5761497961337c565b5b5f61498785828601614200565b925050602061499885828601614214565b9150509250929050565b5f6149ac826134bc565b91506149b7836134bc565b92508282019050808211156149cf576149ce613b6d565b5b92915050565b5f6149df826134bc565b91506149ea836134bc565b92508282026149f8816134bc565b91508282048414831517614a0f57614a0e613b6d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614a4d826134bc565b9150614a58836134bc565b925082614a6857614a67614a16565b5b828204905092915050565b5f606082019050614a865f830186613627565b614a9360208301856134c5565b614aa060408301846134c5565b949350505050565b7f4665652063616e6e6f74206578636565642031303025000000000000000000005f82015250565b5f614adc601683613f53565b9150614ae782614aa8565b602082019050919050565b5f6020820190508181035f830152614b0981614ad0565b9050919050565b5f60208284031215614b2557614b2461337c565b5b5f614b3284828501614214565b91505092915050565b5f606082019050614b4e5f830186613627565b614b5b6020830185613627565b614b6860408301846134c5565b94935050505056fea264697066735822122010039560c98564ce71066efbd572ac9a2f813f6807e924ef36bff6c0e41844c064736f6c634300081a0033",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.RO(this._config,{address:this.assertValidAddress(),args:[r.prepareTransfer(f)],...this.optionallyAttachAccount(),...b});return{hash:await d.oO(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.CO(this._config,{address:this.assertValidAddress(),args:[r.prepareTransfer(f)],...this.optionallyAttachAccount(),...b});return{hash:await d.uO(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.EO(this._config,{address:this.assertValidAddress(),args:[f,b,BigInt(a),BigInt(e)],...this.optionallyAttachAccount(),...c});return{hash:await d.lO(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.BO(this._config,{address:this.assertValidAddress(),args:[r.prepareTransfer(f)],...this.optionallyAttachAccount(),...b});return{hash:await d.dO(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.HO(this._config,{address:this.assertValidAddress(),args:[f.map(r.prepareTransfer)],...this.optionallyAttachAccount(),...b});return{hash:await d.cO(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.KC(this._config,{address:this.assertValidAddress(),args:[f,b],...this.optionallyAttachAccount(),...a});return{hash:await d.EC(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.sE(this._config,{address:this.assertValidAddress(),args:[f],...this.optionallyAttachAccount(),...b});return{hash:await d.kC(this._config,a),result:e}}async managementFee(f){return await d.pC(this._config,{address:this.assertValidAddress(),args:[],...f})}owner(f){return d.tO(this._config,{address:this.assertValidAddress(),args:[],...f})}total(f=t.zeroAddress,b,a){return d.sO(this._config,{address:this.assertValidAddress(),args:b?[f,b]:[f],...a})}available(f=t.zeroAddress,b,a){return d.j6(this._config,{address:this.assertValidAddress(),args:b?[f,b]:[f],...a})}distributed(f=t.zeroAddress,b,a){return d.$6(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 i=o;const w=({owner:n,authorized:f,roles:b,managementFee:a})=>t.encodeAbiParameters(t.parseAbiParameters(["ManagedBudgetWithFeesPayload payload","struct ManagedBudgetWithFeesPayload { address owner; address[] authorized; uint256[] roles; uint256 managementFee; }"]),[{owner:n,authorized:f,roles:b,managementFee:a}]),h={[u.AManagedBudget]:r.ManagedBudget,[u.AManagedBudgetWithFees]:i};async function B(n,f,b){const a=await l.readContract(n.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(n,f)}exports.BudgetByComponentInterface=h;exports.ManagedBudgetWithFees=i;exports.budgetFromAddress=B;exports.prepareManagedBudgetWithFeesPayload=w;
2
+ //# sourceMappingURL=Budget-Cnyh81n5.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Budget-Dlbk4PdV.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-Cnyh81n5.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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"}