From ad100ab7826a4aace8ac39612835a18c1e961ec2 Mon Sep 17 00:00:00 2001 From: mejango Date: Thu, 19 Sep 2024 17:02:26 -0300 Subject: [PATCH 1/3] deploy returns the hook address --- lib/forge-std | 2 +- lib/sphinx | 2 +- src/JB721TiersHookProjectDeployer.sol | 19 ++++--- .../IJB721TiersHookProjectDeployer.sol | 7 ++- test/E2E/Pay_Mint_Redeem_E2E.t.sol | 56 +++++++++++++------ test/unit/deployer_Unit.t.sol | 2 +- 6 files changed, 57 insertions(+), 31 deletions(-) diff --git a/lib/forge-std b/lib/forge-std index e04104ab..77876f8a 160000 --- a/lib/forge-std +++ b/lib/forge-std @@ -1 +1 @@ -Subproject commit e04104ab93e771441eab03fb76eda1402cb5927b +Subproject commit 77876f8a5b44b770a935621bb331660c90ac928e diff --git a/lib/sphinx b/lib/sphinx index 5fb24a82..8126b932 160000 --- a/lib/sphinx +++ b/lib/sphinx @@ -1 +1 @@ -Subproject commit 5fb24a825f46bd6ae0b5359fe0da1d2346126b09 +Subproject commit 8126b93269809c693df357fd21b16a93b4db6728 diff --git a/src/JB721TiersHookProjectDeployer.sol b/src/JB721TiersHookProjectDeployer.sol index 4c911ab8..ada64998 100644 --- a/src/JB721TiersHookProjectDeployer.sol +++ b/src/JB721TiersHookProjectDeployer.sol @@ -63,6 +63,7 @@ contract JB721TiersHookProjectDeployer is JBPermissioned, IJB721TiersHookProject /// @param launchProjectConfig Configuration which dictates the behavior of the project which is being launched. /// @param controller The controller that the project's rulesets will be queued with. /// @return projectId The ID of the newly launched project. + /// @return hook The 721 tiers hook that was deployed for the project. function launchProjectFor( address owner, JBDeploy721TiersHookConfig calldata deployTiersHookConfig, @@ -71,13 +72,13 @@ contract JB721TiersHookProjectDeployer is JBPermissioned, IJB721TiersHookProject ) external override - returns (uint256 projectId) + returns (uint256 projectId, IJB721TiersHook hook) { // Get the project's ID, optimistically knowing it will be one greater than the current number of projects. projectId = DIRECTORY.PROJECTS().count() + 1; // Deploy the hook. - IJB721TiersHook hook = HOOK_DEPLOYER.deployHookFor(projectId, deployTiersHookConfig); + hook = HOOK_DEPLOYER.deployHookFor(projectId, deployTiersHookConfig); // Launch the project. _launchProjectFor(owner, launchProjectConfig, hook, controller); @@ -94,6 +95,7 @@ contract JB721TiersHookProjectDeployer is JBPermissioned, IJB721TiersHookProject /// @param launchRulesetsConfig Configuration which dictates the project's new rulesets. /// @param controller The controller that the project's rulesets will be queued with. /// @return rulesetId The ID of the successfully created ruleset. + /// @return hook The 721 tiers hook that was deployed for the project. function launchRulesetsFor( uint256 projectId, JBDeploy721TiersHookConfig calldata deployTiersHookConfig, @@ -102,7 +104,7 @@ contract JB721TiersHookProjectDeployer is JBPermissioned, IJB721TiersHookProject ) external override - returns (uint256 rulesetId) + returns (uint256 rulesetId, IJB721TiersHook hook) { // Enforce permissions. _requirePermissionFrom({ @@ -112,13 +114,13 @@ contract JB721TiersHookProjectDeployer is JBPermissioned, IJB721TiersHookProject }); // Deploy the hook. - IJB721TiersHook hook = HOOK_DEPLOYER.deployHookFor(projectId, deployTiersHookConfig); + hook = HOOK_DEPLOYER.deployHookFor(projectId, deployTiersHookConfig); // Transfer the hook's ownership to the project. JBOwnable(address(hook)).transferOwnershipToProject(projectId); // Launch the rulesets. - return _launchRulesetsFor(projectId, launchRulesetsConfig, hook, controller); + rulesetId = _launchRulesetsFor(projectId, launchRulesetsConfig, hook, controller); } /// @notice Queues rulesets for a project with an attached 721 tiers hook. @@ -129,6 +131,7 @@ contract JB721TiersHookProjectDeployer is JBPermissioned, IJB721TiersHookProject /// @param queueRulesetsConfig Configuration which dictates the project's newly queued rulesets. /// @param controller The controller that the project's rulesets will be queued with. /// @return rulesetId The ID of the successfully created ruleset. + /// @return hook The 721 tiers hook that was deployed for the project. function queueRulesetsOf( uint256 projectId, JBDeploy721TiersHookConfig calldata deployTiersHookConfig, @@ -137,7 +140,7 @@ contract JB721TiersHookProjectDeployer is JBPermissioned, IJB721TiersHookProject ) external override - returns (uint256 rulesetId) + returns (uint256 rulesetId, IJB721TiersHook hook) { // Enforce permissions. _requirePermissionFrom({ @@ -147,13 +150,13 @@ contract JB721TiersHookProjectDeployer is JBPermissioned, IJB721TiersHookProject }); // Deploy the hook. - IJB721TiersHook hook = HOOK_DEPLOYER.deployHookFor(projectId, deployTiersHookConfig); + hook = HOOK_DEPLOYER.deployHookFor(projectId, deployTiersHookConfig); // Transfer the hook's ownership to the project. JBOwnable(address(hook)).transferOwnershipToProject(projectId); // Queue the rulesets. - return _queueRulesetsOf(projectId, queueRulesetsConfig, hook, controller); + rulesetId = _queueRulesetsOf(projectId, queueRulesetsConfig, hook, controller); } //*********************************************************************// diff --git a/src/interfaces/IJB721TiersHookProjectDeployer.sol b/src/interfaces/IJB721TiersHookProjectDeployer.sol index 14d40013..40be5ad1 100644 --- a/src/interfaces/IJB721TiersHookProjectDeployer.sol +++ b/src/interfaces/IJB721TiersHookProjectDeployer.sol @@ -4,6 +4,7 @@ pragma solidity ^0.8.0; import {IJBDirectory} from "@bananapus/core/src/interfaces/IJBDirectory.sol"; import {IJBController} from "@bananapus/core/src/interfaces/IJBController.sol"; +import {IJB721TiersHook} from "./IJB721TiersHook.sol"; import {IJB721TiersHookDeployer} from "./IJB721TiersHookDeployer.sol"; import {JBDeploy721TiersHookConfig} from "../structs/JBDeploy721TiersHookConfig.sol"; import {JBLaunchProjectConfig} from "../structs/JBLaunchProjectConfig.sol"; @@ -21,7 +22,7 @@ interface IJB721TiersHookProjectDeployer { IJBController controller ) external - returns (uint256 projectId); + returns (uint256 projectId, IJB721TiersHook hook); function launchRulesetsFor( uint256 projectId, @@ -30,7 +31,7 @@ interface IJB721TiersHookProjectDeployer { IJBController controller ) external - returns (uint256 rulesetId); + returns (uint256 rulesetId, IJB721TiersHook hook); function queueRulesetsOf( uint256 projectId, @@ -39,5 +40,5 @@ interface IJB721TiersHookProjectDeployer { IJBController controller ) external - returns (uint256 rulesetId); + returns (uint256 rulesetId, IJB721TiersHook hook); } diff --git a/test/E2E/Pay_Mint_Redeem_E2E.t.sol b/test/E2E/Pay_Mint_Redeem_E2E.t.sol index 4f1e51a4..fe9843c6 100644 --- a/test/E2E/Pay_Mint_Redeem_E2E.t.sol +++ b/test/E2E/Pay_Mint_Redeem_E2E.t.sol @@ -71,11 +71,13 @@ contract Test_TiersHook_E2E is TestBaseWorkflow { function testLaunchProjectAndAddHookToRegistry() external { (JBDeploy721TiersHookConfig memory tiersHookConfig, JBLaunchProjectConfig memory launchProjectConfig) = createData(); - uint256 projectId = deployer.launchProjectFor(projectOwner, tiersHookConfig, launchProjectConfig, jbController); + (uint256 projectId, IJB721TiersHook _hook) = + deployer.launchProjectFor(projectOwner, tiersHookConfig, launchProjectConfig, jbController); // Check: is the first project's ID 1? assertEq(projectId, 1); // Check: was the hook added to the address registry? address dataHook = jbRulesets.currentOf(projectId).dataHook(); + assertEq(address(_hook), dataHook); assertEq(addressRegistry.deployerOf(dataHook), address(deployer.HOOK_DEPLOYER())); } @@ -85,7 +87,8 @@ contract Test_TiersHook_E2E is TestBaseWorkflow { uint256 highestTier = valueSent <= 100 ? (valueSent / 10) : 10; (JBDeploy721TiersHookConfig memory tiersHookConfig, JBLaunchProjectConfig memory launchProjectConfig) = createData(); - uint256 projectId = deployer.launchProjectFor(projectOwner, tiersHookConfig, launchProjectConfig, jbController); + (uint256 projectId, IJB721TiersHook _hook) = + deployer.launchProjectFor(projectOwner, tiersHookConfig, launchProjectConfig, jbController); // Crafting the payment metadata: add the highest tier ID. uint16[] memory rawMetadata = new uint16[](1); @@ -96,7 +99,7 @@ contract Test_TiersHook_E2E is TestBaseWorkflow { data[0] = abi.encode(true, rawMetadata); address dataHook = jbRulesets.currentOf(projectId).dataHook(); - + assertEq(address(_hook), dataHook); // Pass the hook ID. bytes4[] memory ids = new bytes4[](1); ids[0] = JBMetadataResolver.getId("pay", address(hook)); @@ -165,7 +168,8 @@ contract Test_TiersHook_E2E is TestBaseWorkflow { (JBDeploy721TiersHookConfig memory tiersHookConfig, JBLaunchProjectConfig memory launchProjectConfig) = createDiscountedData(tierStartPrice, uint8(discountPercent)); - uint256 projectId = deployer.launchProjectFor(projectOwner, tiersHookConfig, launchProjectConfig, jbController); + (uint256 projectId, IJB721TiersHook _hook) = + deployer.launchProjectFor(projectOwner, tiersHookConfig, launchProjectConfig, jbController); // Crafting the payment metadata: add the highest tier ID. uint16[] memory rawMetadata = new uint16[](1); @@ -176,13 +180,16 @@ contract Test_TiersHook_E2E is TestBaseWorkflow { data[0] = abi.encode(true, rawMetadata); address dataHook = jbRulesets.currentOf(projectId).dataHook(); + assertEq(address(_hook), dataHook); + bytes memory hookMetadata; + { + // Pass the hook ID. + bytes4[] memory ids = new bytes4[](1); + ids[0] = JBMetadataResolver.getId("pay", address(hook)); - // Pass the hook ID. - bytes4[] memory ids = new bytes4[](1); - ids[0] = JBMetadataResolver.getId("pay", address(hook)); - - // Generate the metadata. - bytes memory hookMetadata = metadataHelper.createMetadata(ids, data); + // Generate the metadata. + hookMetadata = metadataHelper.createMetadata(ids, data); + } /* // Check: was an NFT with the correct tier ID and token ID minted? vm.expectEmit(true, true, true, true); @@ -195,7 +202,9 @@ contract Test_TiersHook_E2E is TestBaseWorkflow { ); */ if (totalSupplyAfterPay > type(uint208).max) { - vm.expectPartialRevert(JBTokens.JBTokens_OverflowAlert.selector); + vm.expectRevert( + abi.encodeWithSelector(JBTokens.JBTokens_OverflowAlert.selector, totalSupplyAfterPay, type(uint208).max) + ); } // Pay the terminal to mint the NFTs. @@ -252,7 +261,8 @@ contract Test_TiersHook_E2E is TestBaseWorkflow { function testMintOnPayIfMultipleTiersArePassed() external { (JBDeploy721TiersHookConfig memory tiersHookConfig, JBLaunchProjectConfig memory launchProjectConfig) = createData(); - uint256 projectId = deployer.launchProjectFor(projectOwner, tiersHookConfig, launchProjectConfig, jbController); + (uint256 projectId, IJB721TiersHook _hook) = + deployer.launchProjectFor(projectOwner, tiersHookConfig, launchProjectConfig, jbController); // Prices of the first 5 tiers (10 * `tierId`) uint256 amountNeeded = 50 + 40 + 30 + 20 + 10; @@ -277,6 +287,7 @@ contract Test_TiersHook_E2E is TestBaseWorkflow { data[0] = abi.encode(true, rawMetadata); address dataHook = jbRulesets.currentOf(projectId).dataHook(); + assertEq(address(_hook), dataHook); // Pass the hook ID. bytes4[] memory ids = new bytes4[](1); @@ -314,9 +325,11 @@ contract Test_TiersHook_E2E is TestBaseWorkflow { valueSent = bound(valueSent, 10, 2000); (JBDeploy721TiersHookConfig memory tiersHookConfig, JBLaunchProjectConfig memory launchProjectConfig) = createData(); - uint256 projectId = deployer.launchProjectFor(projectOwner, tiersHookConfig, launchProjectConfig, jbController); + (uint256 projectId, IJB721TiersHook _hook) = + deployer.launchProjectFor(projectOwner, tiersHookConfig, launchProjectConfig, jbController); address dataHook = jbRulesets.currentOf(projectId).dataHook(); + assertEq(address(_hook), dataHook); // Build the metadata with no tiers specified and the overspending flag. bool allowOverspending = true; @@ -347,8 +360,11 @@ contract Test_TiersHook_E2E is TestBaseWorkflow { valueSent = bound(valueSent, 10, 2000); (JBDeploy721TiersHookConfig memory tiersHookConfig, JBLaunchProjectConfig memory launchProjectConfig) = createData(); - uint256 projectId = deployer.launchProjectFor(projectOwner, tiersHookConfig, launchProjectConfig, jbController); + (uint256 projectId, IJB721TiersHook _hook) = + deployer.launchProjectFor(projectOwner, tiersHookConfig, launchProjectConfig, jbController); + address dataHook = jbRulesets.currentOf(projectId).dataHook(); + assertEq(address(_hook), dataHook); // Pay the terminal with empty metadata (`bytes(0)`). vm.prank(caller); @@ -378,8 +394,10 @@ contract Test_TiersHook_E2E is TestBaseWorkflow { (JBDeploy721TiersHookConfig memory tiersHookConfig, JBLaunchProjectConfig memory launchProjectConfig) = createData(); - uint256 projectId = deployer.launchProjectFor(projectOwner, tiersHookConfig, launchProjectConfig, jbController); + (uint256 projectId, IJB721TiersHook _hook) = + deployer.launchProjectFor(projectOwner, tiersHookConfig, launchProjectConfig, jbController); address dataHook = jbRulesets.currentOf(projectId).dataHook(); + assertEq(address(_hook), dataHook); // Check: Ensure no pending reserves at start (since no minting has happened). assertEq(IJB721TiersHook(dataHook).STORE().numberOfPendingReservesFor(dataHook, highestTier), 0); @@ -468,13 +486,15 @@ contract Test_TiersHook_E2E is TestBaseWorkflow { uint256 highestTier = valueSent <= 100 ? (valueSent / 10) : 10; (JBDeploy721TiersHookConfig memory tiersHookConfig, JBLaunchProjectConfig memory launchProjectConfig) = createData(); - uint256 projectId = deployer.launchProjectFor(projectOwner, tiersHookConfig, launchProjectConfig, jbController); + (uint256 projectId, IJB721TiersHook _hook) = + deployer.launchProjectFor(projectOwner, tiersHookConfig, launchProjectConfig, jbController); // Craft the metadata: buy 1 NFT from the highest tier. bytes memory hookMetadata; bytes[] memory data; bytes4[] memory ids; address dataHook = jbRulesets.currentOf(projectId).dataHook(); + assertEq(address(_hook), dataHook); { uint16[] memory rawMetadata = new uint16[](1); rawMetadata[0] = uint16(highestTier); @@ -566,7 +586,8 @@ contract Test_TiersHook_E2E is TestBaseWorkflow { createData(); uint256 tier = 10; uint256 tierPrice = tiersHookConfig.tiersConfig.tiers[tier - 1].price; - uint256 projectId = deployer.launchProjectFor(projectOwner, tiersHookConfig, launchProjectConfig, jbController); + (uint256 projectId, IJB721TiersHook _hook) = + deployer.launchProjectFor(projectOwner, tiersHookConfig, launchProjectConfig, jbController); // Craft the metadata: buy 5 NFTs from tier 10. uint16[] memory rawMetadata = new uint16[](5); @@ -579,6 +600,7 @@ contract Test_TiersHook_E2E is TestBaseWorkflow { data[0] = abi.encode(true, rawMetadata); address dataHook = jbRulesets.currentOf(projectId).dataHook(); + assertEq(address(_hook), dataHook); // Pass the hook ID. bytes4[] memory ids = new bytes4[](1); diff --git a/test/unit/deployer_Unit.t.sol b/test/unit/deployer_Unit.t.sol index e816ffe3..635ee7e6 100644 --- a/test/unit/deployer_Unit.t.sol +++ b/test/unit/deployer_Unit.t.sol @@ -46,7 +46,7 @@ contract Test_ProjectDeployer_Unit is UnitTestSetup { ); // Launch the project. - uint256 projectId = deployer.launchProjectFor( + (uint256 projectId,) = deployer.launchProjectFor( owner, deploy721TiersHookConfig, launchProjectConfig, IJBController(mockJBController) ); From f88ccc351357d53284ee5bd0d873930f9cd4d42d Mon Sep 17 00:00:00 2001 From: 0xBA5ED <83727748+xBA5ED@users.noreply.github.com> Date: Thu, 19 Sep 2024 23:43:43 +0200 Subject: [PATCH 2/3] ci: re-deploy `JB721TiersHookProjectDeployer`, added new artifacts --- .../2fd444c97aa0fa789adae5192c86e854.json | 1057 +++++++++++++++++ .../JB721TiersHookProjectDeployer.json | 76 +- ...95c6dc7668514963a865e35ad1d0fc4e44ab8.json | 221 ++++ .../JB721TiersHookProjectDeployer.json | 186 +-- ...95c6dc7668514963a865e35ad1d0fc4e44ab8.json | 221 ++++ .../JB721TiersHookProjectDeployer.json | 96 +- ...95c6dc7668514963a865e35ad1d0fc4e44ab8.json | 221 ++++ .../JB721TiersHookProjectDeployer.json | 96 +- ...95c6dc7668514963a865e35ad1d0fc4e44ab8.json | 221 ++++ lib/forge-std | 2 +- lib/sphinx | 2 +- 11 files changed, 2160 insertions(+), 239 deletions(-) create mode 100644 deployments/compiler-inputs/2fd444c97aa0fa789adae5192c86e854.json create mode 100644 deployments/nana-721-hook-testnet/arbitrum_sepolia/execution/371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8.json create mode 100644 deployments/nana-721-hook-testnet/base_sepolia/execution/371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8.json create mode 100644 deployments/nana-721-hook-testnet/optimism_sepolia/execution/371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8.json create mode 100644 deployments/nana-721-hook-testnet/sepolia/execution/371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8.json diff --git a/deployments/compiler-inputs/2fd444c97aa0fa789adae5192c86e854.json b/deployments/compiler-inputs/2fd444c97aa0fa789adae5192c86e854.json new file mode 100644 index 00000000..560d9390 --- /dev/null +++ b/deployments/compiler-inputs/2fd444c97aa0fa789adae5192c86e854.json @@ -0,0 +1,1057 @@ +{ + "solcVersion": "0.8.23", + "solcLongVersion": "0.8.23", + "id": "2fd444c97aa0fa789adae5192c86e854", + "input": { + "language": "Solidity", + "settings": { + "viaIR": false, + "optimizer": { + "runs": 800, + "enabled": true + }, + "metadata": { + "useLiteralContent": false, + "bytecodeHash": "ipfs", + "appendCBOR": true + }, + "outputSelection": { + "lib/forge-std/src/Base.sol": { + "*": [] + }, + "lib/forge-std/src/Script.sol": { + "*": [] + }, + "lib/forge-std/src/StdAssertions.sol": { + "*": [] + }, + "lib/forge-std/src/StdChains.sol": { + "*": [] + }, + "lib/forge-std/src/StdCheats.sol": { + "*": [] + }, + "lib/forge-std/src/StdError.sol": { + "*": [] + }, + "lib/forge-std/src/StdInvariant.sol": { + "*": [] + }, + "lib/forge-std/src/StdJson.sol": { + "*": [] + }, + "lib/forge-std/src/StdMath.sol": { + "*": [] + }, + "lib/forge-std/src/StdStorage.sol": { + "*": [] + }, + "lib/forge-std/src/StdStyle.sol": { + "*": [] + }, + "lib/forge-std/src/StdToml.sol": { + "*": [] + }, + "lib/forge-std/src/StdUtils.sol": { + "*": [] + }, + "lib/forge-std/src/Test.sol": { + "*": [] + }, + "lib/forge-std/src/Vm.sol": { + "*": [] + }, + "lib/forge-std/src/console.sol": { + "*": [] + }, + "lib/forge-std/src/console2.sol": { + "*": [] + }, + "lib/forge-std/src/interfaces/IERC165.sol": { + "*": [] + }, + "lib/forge-std/src/interfaces/IERC20.sol": { + "*": [] + }, + "lib/forge-std/src/interfaces/IERC721.sol": { + "*": [] + }, + "lib/forge-std/src/interfaces/IMulticall3.sol": { + "*": [] + }, + "lib/forge-std/src/mocks/MockERC20.sol": { + "*": [] + }, + "lib/forge-std/src/mocks/MockERC721.sol": { + "*": [] + }, + "lib/forge-std/src/safeconsole.sol": { + "*": [] + }, + "node_modules/@bananapus/address-registry/script/helpers/AddressRegistryDeploymentLib.sol": { + "*": [] + }, + "node_modules/@bananapus/address-registry/src/JBAddressRegistry.sol": { + "*": [] + }, + "node_modules/@bananapus/address-registry/src/interfaces/IJBAddressRegistry.sol": { + "*": [] + }, + "node_modules/@bananapus/core/script/helpers/CoreDeploymentLib.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/JBController.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/JBDirectory.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/JBERC20.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/JBFeelessAddresses.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/JBFundAccessLimits.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/JBMultiTerminal.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/JBPermissions.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/JBPrices.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/JBProjects.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/JBRulesets.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/JBSplits.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/JBTerminalStore.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/JBTokens.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/abstract/JBControlled.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/abstract/JBPermissioned.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/enums/JBApprovalStatus.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBControlled.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBController.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBDirectory.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBDirectoryAccessControl.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBFeeTerminal.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBFeelessAddresses.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBFundAccessLimits.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBMigratable.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBMultiTerminal.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBPayHook.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBPayoutTerminal.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBPermissioned.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBPermissions.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBPermitTerminal.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBPriceFeed.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBPrices.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBProjectUriRegistry.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBProjects.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBRedeemHook.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBRedeemTerminal.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBRulesetApprovalHook.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBRulesetDataHook.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBRulesets.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBSplitHook.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBSplits.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBTerminal.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBTerminalStore.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBToken.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBTokenUriResolver.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/interfaces/IJBTokens.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/libraries/JBConstants.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/libraries/JBCurrencyIds.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/libraries/JBFees.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/libraries/JBFixedPointNumber.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/libraries/JBMetadataResolver.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/libraries/JBRedemptions.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/libraries/JBRulesetMetadataResolver.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/libraries/JBSplitGroupIds.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/libraries/JBSurplus.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/structs/JBAccountingContext.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/structs/JBAfterPayRecordedContext.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/structs/JBAfterRedeemRecordedContext.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/structs/JBBeforePayRecordedContext.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/structs/JBBeforeRedeemRecordedContext.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/structs/JBCurrencyAmount.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/structs/JBFee.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/structs/JBFundAccessLimitGroup.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/structs/JBPayHookSpecification.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/structs/JBPermissionsData.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/structs/JBRedeemHookSpecification.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/structs/JBRuleset.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/structs/JBRulesetConfig.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/structs/JBRulesetMetadata.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/structs/JBRulesetWeightCache.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/structs/JBRulesetWithMetadata.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/structs/JBSingleAllowance.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/structs/JBSplit.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/structs/JBSplitGroup.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/structs/JBSplitHookContext.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/structs/JBTerminalConfig.sol": { + "*": [] + }, + "node_modules/@bananapus/core/src/structs/JBTokenAmount.sol": { + "*": [] + }, + "node_modules/@bananapus/core/test/helpers/MetadataResolverHelper.sol": { + "*": [] + }, + "node_modules/@bananapus/ownable/src/JBOwnable.sol": { + "*": [] + }, + "node_modules/@bananapus/ownable/src/JBOwnableOverrides.sol": { + "*": [] + }, + "node_modules/@bananapus/ownable/src/interfaces/IJBOwnable.sol": { + "*": [] + }, + "node_modules/@bananapus/ownable/src/struct/JBOwner.sol": { + "*": [] + }, + "node_modules/@bananapus/permission-ids/src/JBPermissionIds.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/access/Ownable.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/governance/utils/IVotes.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/governance/utils/Votes.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/interfaces/IERC2981.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/interfaces/IERC5267.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/interfaces/IERC5805.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/interfaces/IERC6372.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/metatx/ERC2771Context.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/proxy/Clones.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/utils/Address.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/utils/Context.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/utils/Nonces.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/utils/ShortStrings.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/utils/Strings.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/utils/math/Math.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/utils/structs/Checkpoints.sol": { + "*": [] + }, + "node_modules/@openzeppelin/contracts/utils/types/Time.sol": { + "*": [] + }, + "node_modules/@prb/math/src/Common.sol": { + "*": [] + }, + "node_modules/@sphinx-labs/contracts/contracts/core/SphinxDataTypes.sol": { + "*": [] + }, + "node_modules/@sphinx-labs/contracts/contracts/core/interfaces/ISphinxModule.sol": { + "*": [] + }, + "node_modules/@sphinx-labs/contracts/contracts/core/interfaces/ISphinxModuleProxyFactory.sol": { + "*": [] + }, + "node_modules/@sphinx-labs/contracts/contracts/forge-std/src/StdUtils.sol": { + "*": [] + }, + "node_modules/@sphinx-labs/contracts/contracts/forge-std/src/Vm.sol": { + "*": [] + }, + "node_modules/@sphinx-labs/contracts/contracts/forge-std/src/interfaces/IERC165.sol": { + "*": [] + }, + "node_modules/@sphinx-labs/contracts/contracts/forge-std/src/interfaces/IERC20.sol": { + "*": [] + }, + "node_modules/@sphinx-labs/contracts/contracts/forge-std/src/interfaces/IERC721.sol": { + "*": [] + }, + "node_modules/@sphinx-labs/contracts/contracts/forge-std/src/interfaces/IMulticall3.sol": { + "*": [] + }, + "node_modules/@sphinx-labs/contracts/contracts/forge-std/src/mocks/MockERC20.sol": { + "*": [] + }, + "node_modules/@sphinx-labs/contracts/contracts/forge-std/src/mocks/MockERC721.sol": { + "*": [] + }, + "node_modules/@sphinx-labs/contracts/contracts/foundry/Sphinx.sol": { + "*": [] + }, + "node_modules/@sphinx-labs/contracts/contracts/foundry/SphinxConstants.sol": { + "*": [] + }, + "node_modules/@sphinx-labs/contracts/contracts/foundry/SphinxForkCheck.sol": { + "*": [] + }, + "node_modules/@sphinx-labs/contracts/contracts/foundry/SphinxPlugin.sol": { + "*": [] + }, + "node_modules/@sphinx-labs/contracts/contracts/foundry/SphinxPluginTypes.sol": { + "*": [] + }, + "node_modules/@sphinx-labs/contracts/contracts/foundry/SphinxUtils.sol": { + "*": [] + }, + "node_modules/@sphinx-labs/contracts/contracts/foundry/interfaces/ICreateCall.sol": { + "*": [] + }, + "node_modules/@sphinx-labs/contracts/contracts/foundry/interfaces/IEnum.sol": { + "*": [] + }, + "node_modules/@sphinx-labs/contracts/contracts/foundry/interfaces/IGnosisSafe.sol": { + "*": [] + }, + "node_modules/@sphinx-labs/contracts/contracts/foundry/interfaces/IGnosisSafeProxy.sol": { + "*": [] + }, + "node_modules/@sphinx-labs/contracts/contracts/foundry/interfaces/IGnosisSafeProxyFactory.sol": { + "*": [] + }, + "node_modules/@sphinx-labs/contracts/contracts/foundry/interfaces/IMultiSend.sol": { + "*": [] + }, + "node_modules/@uniswap/permit2/src/interfaces/IAllowanceTransfer.sol": { + "*": [] + }, + "node_modules/@uniswap/permit2/src/interfaces/IEIP712.sol": { + "*": [] + }, + "node_modules/@uniswap/permit2/src/interfaces/IPermit2.sol": { + "*": [] + }, + "node_modules/@uniswap/permit2/src/interfaces/ISignatureTransfer.sol": { + "*": [] + }, + "script/Deploy.s.sol": { + "": [ + "ast" + ], + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata", + "storageLayout" + ] + }, + "script/helpers/Hook721DeploymentLib.sol": { + "": [ + "ast" + ], + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata", + "storageLayout" + ] + }, + "src/JB721TiersHook.sol": { + "": [ + "ast" + ], + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata", + "storageLayout" + ] + }, + "src/JB721TiersHookDeployer.sol": { + "": [ + "ast" + ], + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata", + "storageLayout" + ] + }, + "src/JB721TiersHookProjectDeployer.sol": { + "": [ + "ast" + ], + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata", + "storageLayout" + ] + }, + "src/JB721TiersHookStore.sol": { + "*": [] + }, + "src/abstract/ERC721.sol": { + "*": [] + }, + "src/abstract/JB721Hook.sol": { + "": [ + "ast" + ], + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata", + "storageLayout" + ] + }, + "src/interfaces/IJB721Hook.sol": { + "*": [] + }, + "src/interfaces/IJB721TiersHook.sol": { + "*": [] + }, + "src/interfaces/IJB721TiersHookDeployer.sol": { + "*": [] + }, + "src/interfaces/IJB721TiersHookProjectDeployer.sol": { + "": [ + "ast" + ], + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata", + "storageLayout" + ] + }, + "src/interfaces/IJB721TiersHookStore.sol": { + "*": [] + }, + "src/interfaces/IJB721TokenUriResolver.sol": { + "*": [] + }, + "src/libraries/JB721Constants.sol": { + "*": [] + }, + "src/libraries/JB721TiersRulesetMetadataResolver.sol": { + "": [ + "ast" + ], + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata", + "storageLayout" + ] + }, + "src/libraries/JBBitmap.sol": { + "*": [] + }, + "src/libraries/JBIpfsDecoder.sol": { + "*": [] + }, + "src/structs/JB721InitTiersConfig.sol": { + "*": [] + }, + "src/structs/JB721Tier.sol": { + "*": [] + }, + "src/structs/JB721TierConfig.sol": { + "*": [] + }, + "src/structs/JB721TiersHookFlags.sol": { + "*": [] + }, + "src/structs/JB721TiersMintReservesConfig.sol": { + "*": [] + }, + "src/structs/JB721TiersRulesetMetadata.sol": { + "*": [] + }, + "src/structs/JB721TiersSetDiscountPercentConfig.sol": { + "*": [] + }, + "src/structs/JBBitmapWord.sol": { + "*": [] + }, + "src/structs/JBDeploy721TiersHookConfig.sol": { + "*": [] + }, + "src/structs/JBLaunchProjectConfig.sol": { + "*": [] + }, + "src/structs/JBLaunchRulesetsConfig.sol": { + "*": [] + }, + "src/structs/JBPayDataHookRulesetConfig.sol": { + "*": [] + }, + "src/structs/JBPayDataHookRulesetMetadata.sol": { + "*": [] + }, + "src/structs/JBQueueRulesetsConfig.sol": { + "*": [] + }, + "src/structs/JBStored721Tier.sol": { + "*": [] + }, + "test/E2E/Pay_Mint_Redeem_E2E.t.sol": { + "": [ + "ast" + ], + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata", + "storageLayout" + ] + }, + "test/unit/adjustTier_Unit.t.sol": { + "": [ + "ast" + ], + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata", + "storageLayout" + ] + }, + "test/unit/deployer_Unit.t.sol": { + "": [ + "ast" + ], + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata", + "storageLayout" + ] + }, + "test/unit/getters_constructor_Unit.t.sol": { + "": [ + "ast" + ], + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata", + "storageLayout" + ] + }, + "test/unit/mintFor_mintReservesFor_Unit.t.sol": { + "": [ + "ast" + ], + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata", + "storageLayout" + ] + }, + "test/unit/pay_Unit.t.sol": { + "": [ + "ast" + ], + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata", + "storageLayout" + ] + }, + "test/unit/redeem_Unit.t.sol": { + "": [ + "ast" + ], + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata", + "storageLayout" + ] + }, + "test/utils/AccessJBLib.sol": { + "*": [] + }, + "test/utils/ForTest_JB721TiersHook.sol": { + "": [ + "ast" + ], + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata", + "storageLayout" + ] + }, + "test/utils/TestBaseWorkflow.sol": { + "*": [] + }, + "test/utils/UnitTestSetup.sol": { + "": [ + "ast" + ], + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata", + "storageLayout" + ] + } + }, + "evmVersion": "paris", + "libraries": {}, + "remappings": [ + "@sphinx-labs/contracts/=node_modules/@sphinx-labs/contracts/contracts/foundry/", + "@bananapus/=node_modules/@bananapus/", + "@chainlink/=node_modules/@chainlink/", + "@eth-optimism/=node_modules/@eth-optimism/", + "@openzeppelin/=node_modules/@openzeppelin/", + "@prb/=node_modules/@prb/", + "@scroll-tech/=node_modules/@scroll-tech/", + "@uniswap/=node_modules/@uniswap/", + "ds-test/=lib/forge-std/lib/ds-test/src/", + "forge-std/=lib/forge-std/src/", + "hardhat/=node_modules/hardhat/", + "solmate/=node_modules/solmate/", + "sphinx/=lib/sphinx/packages/contracts/contracts/forge-std/src/" + ] + }, + "sources": { + "node_modules/@bananapus/core/src/abstract/JBPermissioned.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {Context} from \"@openzeppelin/contracts/utils/Context.sol\";\n\nimport {IJBPermissioned} from \"./../interfaces/IJBPermissioned.sol\";\nimport {IJBPermissions} from \"./../interfaces/IJBPermissions.sol\";\n\n/// @notice Modifiers to allow access to transactions based on which permissions the message's sender has.\nabstract contract JBPermissioned is Context, IJBPermissioned {\n //*********************************************************************//\n // --------------------------- custom errors -------------------------- //\n //*********************************************************************//\n\n error JBPermissioned_Unauthorized(address account, address sender, uint256 projectId, uint256 permissionId);\n\n //*********************************************************************//\n // ---------------- public immutable stored properties --------------- //\n //*********************************************************************//\n\n /// @notice A contract storing permissions.\n IJBPermissions public immutable override PERMISSIONS;\n\n //*********************************************************************//\n // -------------------------- constructor ---------------------------- //\n //*********************************************************************//\n\n /// @param permissions A contract storing permissions.\n constructor(IJBPermissions permissions) {\n PERMISSIONS = permissions;\n }\n\n //*********************************************************************//\n // -------------------------- internal views ------------------------- //\n //*********************************************************************//\n\n /// @notice Require the message sender to be the account or have the relevant permission.\n /// @param account The account to allow.\n /// @param projectId The project ID to check the permission under.\n /// @param permissionId The required permission ID. The operator must have this permission within the specified\n /// project ID.\n function _requirePermissionFrom(address account, uint256 projectId, uint256 permissionId) internal view {\n address sender = _msgSender();\n if (\n sender != account\n && !PERMISSIONS.hasPermission({\n operator: sender,\n account: account,\n projectId: projectId,\n permissionId: permissionId,\n includeRoot: true,\n includeWildcardProjectId: true\n })\n ) revert JBPermissioned_Unauthorized(account, sender, projectId, permissionId);\n }\n\n /// @notice If the 'alsoGrantAccessIf' condition is truthy, proceed. Otherwise, require the message sender to be the\n /// account or\n /// have the relevant permission.\n /// @param account The account to allow.\n /// @param projectId The project ID to check the permission under.\n /// @param permissionId The required permission ID. The operator must have this permission within the specified\n /// project ID.\n /// @param alsoGrantAccessIf An override condition which will allow access regardless of permissions.\n function _requirePermissionAllowingOverrideFrom(\n address account,\n uint256 projectId,\n uint256 permissionId,\n bool alsoGrantAccessIf\n )\n internal\n view\n {\n if (alsoGrantAccessIf) return;\n _requirePermissionFrom(account, projectId, permissionId);\n }\n}\n" + }, + "node_modules/@bananapus/core/src/enums/JBApprovalStatus.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\n/// @notice A ruleset's approval status in a ruleset approval hook.\nenum JBApprovalStatus {\n Empty,\n Upcoming,\n Active,\n ApprovalExpected,\n Approved,\n Failed\n}\n" + }, + "node_modules/@bananapus/core/src/interfaces/IJBController.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IERC165} from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\n\nimport {IJBDirectory} from \"./IJBDirectory.sol\";\nimport {IJBDirectoryAccessControl} from \"./IJBDirectoryAccessControl.sol\";\nimport {IJBFundAccessLimits} from \"./IJBFundAccessLimits.sol\";\nimport {IJBPriceFeed} from \"./IJBPriceFeed.sol\";\nimport {IJBPrices} from \"./IJBPrices.sol\";\nimport {IJBProjects} from \"./IJBProjects.sol\";\nimport {IJBProjectUriRegistry} from \"./IJBProjectUriRegistry.sol\";\nimport {IJBRulesets} from \"./IJBRulesets.sol\";\nimport {IJBSplits} from \"./IJBSplits.sol\";\nimport {IJBTerminal} from \"./IJBTerminal.sol\";\nimport {IJBToken} from \"./IJBToken.sol\";\nimport {IJBTokens} from \"./IJBTokens.sol\";\nimport {JBApprovalStatus} from \"./../enums/JBApprovalStatus.sol\";\nimport {JBRuleset} from \"./../structs/JBRuleset.sol\";\nimport {JBRulesetConfig} from \"./../structs/JBRulesetConfig.sol\";\nimport {JBRulesetMetadata} from \"./../structs/JBRulesetMetadata.sol\";\nimport {JBRulesetWithMetadata} from \"./../structs/JBRulesetWithMetadata.sol\";\nimport {JBSplit} from \"./../structs/JBSplit.sol\";\nimport {JBSplitGroup} from \"./../structs/JBSplitGroup.sol\";\nimport {JBTerminalConfig} from \"./../structs/JBTerminalConfig.sol\";\n\ninterface IJBController is IERC165, IJBProjectUriRegistry, IJBDirectoryAccessControl {\n event BurnTokens(\n address indexed holder, uint256 indexed projectId, uint256 tokenCount, string memo, address caller\n );\n event LaunchProject(uint256 rulesetId, uint256 projectId, string projectUri, string memo, address caller);\n event LaunchRulesets(uint256 rulesetId, uint256 projectId, string memo, address caller);\n event MintTokens(\n address indexed beneficiary,\n uint256 indexed projectId,\n uint256 tokenCount,\n uint256 beneficiaryTokenCount,\n string memo,\n uint256 reservedPercent,\n address caller\n );\n event PrepMigration(uint256 indexed projectId, address from, address caller);\n event QueueRulesets(uint256 rulesetId, uint256 projectId, string memo, address caller);\n event ReservedDistributionReverted(\n uint256 indexed projectId, JBSplit split, uint256 tokenCount, bytes reason, address caller\n );\n event SendReservedTokensToSplit(\n uint256 indexed projectId,\n uint256 indexed rulesetId,\n uint256 indexed groupId,\n JBSplit split,\n uint256 tokenCount,\n address caller\n );\n event SendReservedTokensToSplits(\n uint256 indexed rulesetId,\n uint256 indexed rulesetCycleNumber,\n uint256 indexed projectId,\n address owner,\n uint256 tokenCount,\n uint256 leftoverAmount,\n address caller\n );\n event SetUri(uint256 indexed projectId, string uri, address caller);\n\n function DIRECTORY() external view returns (IJBDirectory);\n function FUND_ACCESS_LIMITS() external view returns (IJBFundAccessLimits);\n function PRICES() external view returns (IJBPrices);\n function PROJECTS() external view returns (IJBProjects);\n function RULESETS() external view returns (IJBRulesets);\n function SPLITS() external view returns (IJBSplits);\n function TOKENS() external view returns (IJBTokens);\n\n function allRulesetsOf(\n uint256 projectId,\n uint256 startingId,\n uint256 size\n )\n external\n view\n returns (JBRulesetWithMetadata[] memory rulesets);\n function currentRulesetOf(uint256 projectId)\n external\n view\n returns (JBRuleset memory ruleset, JBRulesetMetadata memory metadata);\n function getRulesetOf(\n uint256 projectId,\n uint256 rulesetId\n )\n external\n view\n returns (JBRuleset memory ruleset, JBRulesetMetadata memory metadata);\n function latestQueuedRulesetOf(uint256 projectId)\n external\n view\n returns (JBRuleset memory, JBRulesetMetadata memory metadata, JBApprovalStatus);\n function pendingReservedTokenBalanceOf(uint256 projectId) external view returns (uint256);\n function totalTokenSupplyWithReservedTokensOf(uint256 projectId) external view returns (uint256);\n function upcomingRulesetOf(uint256 projectId)\n external\n view\n returns (JBRuleset memory ruleset, JBRulesetMetadata memory metadata);\n\n function addPriceFeed(\n uint256 projectId,\n uint256 pricingCurrency,\n uint256 unitCurrency,\n IJBPriceFeed feed\n )\n external;\n function burnTokensOf(address holder, uint256 projectId, uint256 tokenCount, string calldata memo) external;\n function claimTokensFor(address holder, uint256 projectId, uint256 tokenCount, address beneficiary) external;\n function deployERC20For(\n uint256 projectId,\n string calldata name,\n string calldata symbol,\n bytes32 salt\n )\n external\n returns (IJBToken token);\n function launchProjectFor(\n address owner,\n string calldata projectUri,\n JBRulesetConfig[] calldata rulesetConfigurations,\n JBTerminalConfig[] memory terminalConfigurations,\n string calldata memo\n )\n external\n returns (uint256 projectId);\n function launchRulesetsFor(\n uint256 projectId,\n JBRulesetConfig[] calldata rulesetConfigurations,\n JBTerminalConfig[] memory terminalConfigurations,\n string calldata memo\n )\n external\n returns (uint256 rulesetId);\n function mintTokensOf(\n uint256 projectId,\n uint256 tokenCount,\n address beneficiary,\n string calldata memo,\n bool useReservedPercent\n )\n external\n returns (uint256 beneficiaryTokenCount);\n function queueRulesetsOf(\n uint256 projectId,\n JBRulesetConfig[] calldata rulesetConfigurations,\n string calldata memo\n )\n external\n returns (uint256 rulesetId);\n function sendReservedTokensToSplitsOf(uint256 projectId) external returns (uint256);\n function setSplitGroupsOf(uint256 projectId, uint256 rulesetId, JBSplitGroup[] calldata splitGroups) external;\n function setTokenFor(uint256 projectId, IJBToken token) external;\n function transferCreditsFrom(address holder, uint256 projectId, address recipient, uint256 creditCount) external;\n}\n" + }, + "node_modules/@bananapus/core/src/interfaces/IJBDirectory.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IERC165} from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\n\nimport {IJBProjects} from \"./IJBProjects.sol\";\nimport {IJBTerminal} from \"./IJBTerminal.sol\";\n\ninterface IJBDirectory {\n event AddTerminal(uint256 indexed projectId, IJBTerminal indexed terminal, address caller);\n event SetController(uint256 indexed projectId, IERC165 indexed controller, address caller);\n event SetIsAllowedToSetFirstController(address indexed addr, bool indexed isAllowed, address caller);\n event SetPrimaryTerminal(\n uint256 indexed projectId, address indexed token, IJBTerminal indexed terminal, address caller\n );\n event SetTerminals(uint256 indexed projectId, IJBTerminal[] terminals, address caller);\n\n function PROJECTS() external view returns (IJBProjects);\n\n function controllerOf(uint256 projectId) external view returns (IERC165);\n function isAllowedToSetFirstController(address account) external view returns (bool);\n function isTerminalOf(uint256 projectId, IJBTerminal terminal) external view returns (bool);\n function primaryTerminalOf(uint256 projectId, address token) external view returns (IJBTerminal);\n function terminalsOf(uint256 projectId) external view returns (IJBTerminal[] memory);\n\n function setControllerOf(uint256 projectId, IERC165 controller) external;\n function setIsAllowedToSetFirstController(address account, bool flag) external;\n function setPrimaryTerminalOf(uint256 projectId, address token, IJBTerminal terminal) external;\n function setTerminalsOf(uint256 projectId, IJBTerminal[] calldata terminals) external;\n}\n" + }, + "node_modules/@bananapus/core/src/interfaces/IJBDirectoryAccessControl.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface IJBDirectoryAccessControl {\n function setControllerAllowed(uint256 projectId) external view returns (bool);\n function setTerminalsAllowed(uint256 projectId) external view returns (bool);\n}\n" + }, + "node_modules/@bananapus/core/src/interfaces/IJBFundAccessLimits.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {JBCurrencyAmount} from \"./../structs/JBCurrencyAmount.sol\";\nimport {JBFundAccessLimitGroup} from \"./../structs/JBFundAccessLimitGroup.sol\";\n\ninterface IJBFundAccessLimits {\n event SetFundAccessLimits(\n uint256 indexed rulesetId,\n uint256 indexed projectId,\n JBFundAccessLimitGroup fundAccessLimitGroup,\n address caller\n );\n\n function payoutLimitOf(\n uint256 projectId,\n uint256 rulesetId,\n address terminal,\n address token,\n uint256 currency\n )\n external\n view\n returns (uint256 payoutLimit);\n function payoutLimitsOf(\n uint256 projectId,\n uint256 rulesetId,\n address terminal,\n address token\n )\n external\n view\n returns (JBCurrencyAmount[] memory payoutLimits);\n function surplusAllowanceOf(\n uint256 projectId,\n uint256 rulesetId,\n address terminal,\n address token,\n uint256 currency\n )\n external\n view\n returns (uint256 surplusAllowance);\n function surplusAllowancesOf(\n uint256 projectId,\n uint256 rulesetId,\n address terminal,\n address token\n )\n external\n view\n returns (JBCurrencyAmount[] memory surplusAllowances);\n\n function setFundAccessLimitsFor(\n uint256 projectId,\n uint256 rulesetId,\n JBFundAccessLimitGroup[] memory fundAccessLimitGroups\n )\n external;\n}\n" + }, + "node_modules/@bananapus/core/src/interfaces/IJBPayHook.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IERC165} from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\n\nimport {JBAfterPayRecordedContext} from \"./../structs/JBAfterPayRecordedContext.sol\";\n\n/// @notice Hook called after a terminal's `pay(...)` logic completes (if passed by the ruleset's data hook).\ninterface IJBPayHook is IERC165 {\n /// @notice This function is called by the terminal's `pay(...)` function after the payment has been recorded in the\n /// terminal store.\n /// @dev Critical business logic should be protected by appropriate access control.\n /// @param context The context passed in by the terminal, as a `JBAfterPayRecordedContext` struct.\n function afterPayRecordedWith(JBAfterPayRecordedContext calldata context) external payable;\n}\n" + }, + "node_modules/@bananapus/core/src/interfaces/IJBPermissioned.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IJBPermissions} from \"./IJBPermissions.sol\";\n\ninterface IJBPermissioned {\n function PERMISSIONS() external view returns (IJBPermissions);\n}\n" + }, + "node_modules/@bananapus/core/src/interfaces/IJBPermissions.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {JBPermissionsData} from \"./../structs/JBPermissionsData.sol\";\n\ninterface IJBPermissions {\n event OperatorPermissionsSet(\n address indexed operator,\n address indexed account,\n uint256 indexed projectId,\n uint8[] permissionIds,\n uint256 packed,\n address caller\n );\n\n function WILDCARD_PROJECT_ID() external view returns (uint256);\n\n function permissionsOf(address operator, address account, uint256 projectId) external view returns (uint256);\n\n function hasPermission(\n address operator,\n address account,\n uint256 projectId,\n uint256 permissionId,\n bool includeRoot,\n bool includeWildcardProjectId\n )\n external\n view\n returns (bool);\n\n function hasPermissions(\n address operator,\n address account,\n uint256 projectId,\n uint256[] calldata permissionIds,\n bool includeRoot,\n bool includeWildcardProjectId\n )\n external\n view\n returns (bool);\n\n function setPermissionsFor(address account, JBPermissionsData calldata permissionsData) external;\n}\n" + }, + "node_modules/@bananapus/core/src/interfaces/IJBPriceFeed.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface IJBPriceFeed {\n function currentUnitPrice(uint256 targetDecimals) external view returns (uint256);\n}\n" + }, + "node_modules/@bananapus/core/src/interfaces/IJBPrices.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IJBPriceFeed} from \"./IJBPriceFeed.sol\";\nimport {IJBProjects} from \"./IJBProjects.sol\";\n\ninterface IJBPrices {\n event AddPriceFeed(\n uint256 indexed projectId,\n uint256 indexed pricingCurrency,\n uint256 indexed unitCurrency,\n IJBPriceFeed feed,\n address caller\n );\n\n function DEFAULT_PROJECT_ID() external view returns (uint256);\n function PROJECTS() external view returns (IJBProjects);\n\n function priceFeedFor(\n uint256 projectId,\n uint256 pricingCurrency,\n uint256 unitCurrency\n )\n external\n view\n returns (IJBPriceFeed);\n function pricePerUnitOf(\n uint256 projectId,\n uint256 pricingCurrency,\n uint256 unitCurrency,\n uint256 decimals\n )\n external\n view\n returns (uint256);\n\n function addPriceFeedFor(\n uint256 projectId,\n uint256 pricingCurrency,\n uint256 unitCurrency,\n IJBPriceFeed feed\n )\n external;\n}\n" + }, + "node_modules/@bananapus/core/src/interfaces/IJBProjectUriRegistry.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface IJBProjectUriRegistry {\n function uriOf(uint256 projectId) external view returns (string memory);\n function setUriOf(uint256 projectId, string calldata uri) external;\n}\n" + }, + "node_modules/@bananapus/core/src/interfaces/IJBProjects.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IERC721} from \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\n\nimport {IJBTokenUriResolver} from \"./IJBTokenUriResolver.sol\";\n\ninterface IJBProjects is IERC721 {\n event Create(uint256 indexed projectId, address indexed owner, address caller);\n event SetTokenUriResolver(IJBTokenUriResolver indexed resolver, address caller);\n\n function count() external view returns (uint256);\n function tokenUriResolver() external view returns (IJBTokenUriResolver);\n\n function createFor(address owner) external returns (uint256 projectId);\n function setTokenUriResolver(IJBTokenUriResolver resolver) external;\n}\n" + }, + "node_modules/@bananapus/core/src/interfaces/IJBRulesetApprovalHook.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IERC165} from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\n\nimport {JBApprovalStatus} from \"./../enums/JBApprovalStatus.sol\";\n\n/// @notice `IJBRulesetApprovalHook`s are used to determine whether the next ruleset in the ruleset queue is approved or\n/// rejected.\n/// @dev Project rulesets are stored in a queue. Rulesets take effect after the previous ruleset in the queue ends, and\n/// only if they are approved by the previous ruleset's approval hook.\ninterface IJBRulesetApprovalHook is IERC165 {\n function DURATION() external view returns (uint256);\n\n function approvalStatusOf(\n uint256 projectId,\n uint256 rulesetId,\n uint256 start\n )\n external\n view\n returns (JBApprovalStatus);\n}\n" + }, + "node_modules/@bananapus/core/src/interfaces/IJBRulesets.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {JBApprovalStatus} from \"./../enums/JBApprovalStatus.sol\";\nimport {JBRuleset} from \"./../structs/JBRuleset.sol\";\nimport {IJBRulesetApprovalHook} from \"./IJBRulesetApprovalHook.sol\";\n\ninterface IJBRulesets {\n event RulesetInitialized(\n uint256 indexed rulesetId, uint256 indexed projectId, uint256 indexed basedOnId, address caller\n );\n event RulesetQueued(\n uint256 indexed rulesetId,\n uint256 indexed projectId,\n uint256 duration,\n uint256 weight,\n uint256 decayPercent,\n IJBRulesetApprovalHook approvalHook,\n uint256 metadata,\n uint256 mustStartAtOrAfter,\n address caller\n );\n\n function latestRulesetIdOf(uint256 projectId) external view returns (uint256);\n\n function currentApprovalStatusForLatestRulesetOf(uint256 projectId) external view returns (JBApprovalStatus);\n function currentOf(uint256 projectId) external view returns (JBRuleset memory ruleset);\n function getRulesetOf(uint256 projectId, uint256 rulesetId) external view returns (JBRuleset memory);\n function latestQueuedOf(uint256 projectId)\n external\n view\n returns (JBRuleset memory ruleset, JBApprovalStatus approvalStatus);\n function allOf(\n uint256 projectId,\n uint256 startingId,\n uint256 size\n )\n external\n view\n returns (JBRuleset[] memory rulesets);\n function upcomingOf(uint256 projectId) external view returns (JBRuleset memory ruleset);\n\n function queueFor(\n uint256 projectId,\n uint256 duration,\n uint256 weight,\n uint256 decayPercent,\n IJBRulesetApprovalHook approvalHook,\n uint256 metadata,\n uint256 mustStartAtOrAfter\n )\n external\n returns (JBRuleset memory ruleset);\n function updateRulesetWeightCache(uint256 projectId) external;\n}\n" + }, + "node_modules/@bananapus/core/src/interfaces/IJBSplitHook.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IERC165} from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\n\nimport {JBSplitHookContext} from \"../structs/JBSplitHookContext.sol\";\n\n/// @title Split hook\n/// @notice Allows processing a single split with custom logic.\n/// @dev The split hook's address should be set as the `hook` in the relevant split.\ninterface IJBSplitHook is IERC165 {\n /// @notice If a split has a split hook, payment terminals and controllers call this function while processing the\n /// split.\n /// @dev Critical business logic should be protected by appropriate access control. The tokens and/or native tokens\n /// are optimistically transferred to the split hook when this function is called.\n /// @param context The context passed by the terminal/controller to the split hook as a `JBSplitHookContext` struct:\n function processSplitWith(JBSplitHookContext calldata context) external payable;\n}\n" + }, + "node_modules/@bananapus/core/src/interfaces/IJBSplits.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {JBSplit} from \"./../structs/JBSplit.sol\";\nimport {JBSplitGroup} from \"./../structs/JBSplitGroup.sol\";\n\ninterface IJBSplits {\n event SetSplit(\n uint256 indexed projectId, uint256 indexed rulesetId, uint256 indexed groupId, JBSplit split, address caller\n );\n\n function FALLBACK_RULESET_ID() external view returns (uint256);\n\n function splitsOf(uint256 projectId, uint256 rulesetId, uint256 groupId) external view returns (JBSplit[] memory);\n\n function setSplitGroupsOf(uint256 projectId, uint256 rulesetId, JBSplitGroup[] memory splitGroups) external;\n}\n" + }, + "node_modules/@bananapus/core/src/interfaces/IJBTerminal.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IERC165} from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\n\nimport {IJBPayHook} from \"./IJBPayHook.sol\";\nimport {JBAccountingContext} from \"../structs/JBAccountingContext.sol\";\nimport {JBAfterPayRecordedContext} from \"../structs/JBAfterPayRecordedContext.sol\";\n\n/// @notice A terminal that accepts payments and can be migrated.\ninterface IJBTerminal is IERC165 {\n event AddToBalance(\n uint256 indexed projectId, uint256 amount, uint256 returnedFees, string memo, bytes metadata, address caller\n );\n event HookAfterRecordPay(\n IJBPayHook indexed hook, JBAfterPayRecordedContext context, uint256 specificationAmount, address caller\n );\n\n event MigrateTerminal(\n uint256 indexed projectId, address indexed token, IJBTerminal indexed to, uint256 amount, address caller\n );\n event Pay(\n uint256 indexed rulesetId,\n uint256 indexed rulesetCycleNumber,\n uint256 indexed projectId,\n address payer,\n address beneficiary,\n uint256 amount,\n uint256 beneficiaryTokenCount,\n string memo,\n bytes metadata,\n address caller\n );\n event SetAccountingContext(uint256 indexed projectId, JBAccountingContext context, address caller);\n\n function accountingContextForTokenOf(\n uint256 projectId,\n address token\n )\n external\n view\n returns (JBAccountingContext memory);\n function accountingContextsOf(uint256 projectId) external view returns (JBAccountingContext[] memory);\n function currentSurplusOf(uint256 projectId, uint256 decimals, uint256 currency) external view returns (uint256);\n\n function addAccountingContextsFor(uint256 projectId, JBAccountingContext[] calldata accountingContexts) external;\n function addToBalanceOf(\n uint256 projectId,\n address token,\n uint256 amount,\n bool shouldReturnHeldFees,\n string calldata memo,\n bytes calldata metadata\n )\n external\n payable;\n function migrateBalanceOf(uint256 projectId, address token, IJBTerminal to) external returns (uint256 balance);\n function pay(\n uint256 projectId,\n address token,\n uint256 amount,\n address beneficiary,\n uint256 minReturnedTokens,\n string calldata memo,\n bytes calldata metadata\n )\n external\n payable\n returns (uint256 beneficiaryTokenCount);\n}\n" + }, + "node_modules/@bananapus/core/src/interfaces/IJBToken.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface IJBToken {\n function balanceOf(address account) external view returns (uint256);\n function decimals() external view returns (uint8);\n function totalSupply() external view returns (uint256);\n\n function initialize(string memory name, string memory symbol, address owner) external;\n function burn(address account, uint256 amount) external;\n function mint(address account, uint256 amount) external;\n}\n" + }, + "node_modules/@bananapus/core/src/interfaces/IJBTokenUriResolver.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface IJBTokenUriResolver {\n function getUri(uint256 projectId) external view returns (string memory tokenUri);\n}\n" + }, + "node_modules/@bananapus/core/src/interfaces/IJBTokens.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IJBToken} from \"./IJBToken.sol\";\n\ninterface IJBTokens {\n event DeployERC20(\n uint256 indexed projectId, IJBToken indexed token, string name, string symbol, bytes32 salt, address caller\n );\n event Burn(\n address indexed holder,\n uint256 indexed projectId,\n uint256 count,\n uint256 creditBalance,\n uint256 tokenBalance,\n address caller\n );\n event ClaimTokens(\n address indexed holder,\n uint256 indexed projectId,\n uint256 creditBalance,\n uint256 count,\n address beneficiary,\n address caller\n );\n event Mint(\n address indexed holder, uint256 indexed projectId, uint256 count, bool shouldClaimTokens, address caller\n );\n event SetToken(uint256 indexed projectId, IJBToken indexed token, address caller);\n event TransferCredits(\n address indexed holder, uint256 indexed projectId, address indexed recipient, uint256 count, address caller\n );\n\n function creditBalanceOf(address holder, uint256 projectId) external view returns (uint256);\n function projectIdOf(IJBToken token) external view returns (uint256);\n function tokenOf(uint256 projectId) external view returns (IJBToken);\n function totalCreditSupplyOf(uint256 projectId) external view returns (uint256);\n\n function totalBalanceOf(address holder, uint256 projectId) external view returns (uint256 result);\n function totalSupplyOf(uint256 projectId) external view returns (uint256);\n\n function burnFrom(address holder, uint256 projectId, uint256 count) external;\n function claimTokensFor(address holder, uint256 projectId, uint256 count, address beneficiary) external;\n function deployERC20For(\n uint256 projectId,\n string calldata name,\n string calldata symbol,\n bytes32 salt\n )\n external\n returns (IJBToken token);\n function mintFor(address holder, uint256 projectId, uint256 count) external;\n function setTokenFor(uint256 projectId, IJBToken token) external;\n function transferCreditsFrom(address holder, uint256 projectId, address recipient, uint256 count) external;\n}\n" + }, + "node_modules/@bananapus/core/src/structs/JBAccountingContext.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\n/// @custom:member token The address of the token that accounting is being done with.\n/// @custom:member decimals The number of decimals expected in that token's fixed point accounting.\n/// @custom:member currency The currency that the token is priced in terms of. By convention, this is\n/// `uint32(uint160(tokenAddress))` for tokens, or a constant ID from e.g. `JBCurrencyIds` for other currencies.\nstruct JBAccountingContext {\n address token;\n uint8 decimals;\n uint32 currency;\n}\n" + }, + "node_modules/@bananapus/core/src/structs/JBAfterPayRecordedContext.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {JBTokenAmount} from \"./JBTokenAmount.sol\";\n\n/// @custom:member payer The address the payment originated from.\n/// @custom:member projectId The ID of the project being paid.\n/// @custom:member rulesetId The ID of the ruleset the payment is being made during.\n/// @custom:member amount The payment's token amount. Includes the token being paid, the value, the number of decimals\n/// included, and the currency of the amount.\n/// @custom:member forwardedAmount The token amount being forwarded to the pay hook. Includes the token\n/// being paid, the value, the number of decimals included, and the currency of the amount.\n/// @custom:member weight The current ruleset's weight (used to determine how many tokens should be minted).\n/// @custom:member projectTokenCount The number of project tokens minted for the beneficiary.\n/// @custom:member beneficiary The address which receives any tokens this payment yields.\n/// @custom:member hookMetadata Extra data specified by the data hook, which is sent to the pay hook.\n/// @custom:member payerMetadata Extra data specified by the payer, which is sent to the pay hook.\nstruct JBAfterPayRecordedContext {\n address payer;\n uint256 projectId;\n uint256 rulesetId;\n JBTokenAmount amount;\n JBTokenAmount forwardedAmount;\n uint256 weight;\n uint256 projectTokenCount;\n address beneficiary;\n bytes hookMetadata;\n bytes payerMetadata;\n}\n" + }, + "node_modules/@bananapus/core/src/structs/JBCurrencyAmount.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\n/// @custom:member amount The amount of the currency.\n/// @custom:member currency The currency. By convention, this is `uint32(uint160(tokenAddress))` for tokens, or a\n/// constant ID from e.g. `JBCurrencyIds` for other currencies.\nstruct JBCurrencyAmount {\n uint224 amount;\n uint32 currency;\n}\n" + }, + "node_modules/@bananapus/core/src/structs/JBFundAccessLimitGroup.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {JBCurrencyAmount} from \"./JBCurrencyAmount.sol\";\n\n/// @dev Payout limit example: if the `amount` is 5, the `currency` is 1 (USD), and the terminal's token is ETH, then\n/// the project can pay out 5 USD worth of ETH during a ruleset.\n/// @dev Surplus allowance example: if the `amount` is 5, the `currency` is 1 (USD), and the terminal's token is ETH,\n/// then the project can pay out 5 USD worth of ETH from its surplus during a ruleset. A project's surplus is its\n/// balance minus its current combined payout limit.\n/// @dev If a project has multiple payout limits or surplus allowances, they are all available. They can all be used\n/// during a single ruleset.\n/// @dev The payout limits' and surplus allowances' fixed point amounts have the same number of decimals as the\n/// terminal.\n/// @custom:member terminal The terminal that the payout limits and surplus allowances apply to.\n/// @custom:member token The token that the payout limits and surplus allowances apply to within the `terminal`.\n/// @custom:member payoutLimits An array of payout limits. The payout limits cumulatively dictate the maximum value of\n/// `token`s a project can pay out from its balance in a terminal during a ruleset. Each payout limit can have a unique\n/// currency and amount.\n/// @custom:member surplusAllowances An array of surplus allowances. The surplus allowances cumulatively dictates the\n/// maximum value of `token`s a project can pay out from its surplus (balance less payouts) in a terminal during a\n/// ruleset. Each surplus allowance can have a unique currency and amount.\nstruct JBFundAccessLimitGroup {\n address terminal;\n address token;\n JBCurrencyAmount[] payoutLimits;\n JBCurrencyAmount[] surplusAllowances;\n}\n" + }, + "node_modules/@bananapus/core/src/structs/JBPermissionsData.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\n/// @custom:member operator The address that permissions are being given to.\n/// @custom:member projectId The ID of the project the operator is being given permissions for. Operators only have\n/// permissions under this project's scope. An ID of 0 is a wildcard, which gives an operator permissions across all\n/// projects.\n/// @custom:member permissionIds The IDs of the permissions being given. See the `JBPermissionIds` library.\nstruct JBPermissionsData {\n address operator;\n uint56 projectId;\n uint8[] permissionIds;\n}\n" + }, + "node_modules/@bananapus/core/src/structs/JBRuleset.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IJBRulesetApprovalHook} from \"./../interfaces/IJBRulesetApprovalHook.sol\";\n\n/// @dev `JBRuleset` timestamps are unix timestamps (seconds since 00:00 January 1st, 1970 UTC).\n/// @custom:member cycleNumber The ruleset's cycle number. Each ruleset's `cycleNumber` is the previous ruleset's\n/// `cycleNumber` plus one. Each project's first ruleset has a `cycleNumber` of 1.\n/// @custom:member id The ruleset's ID, which is a timestamp of when this ruleset's rules were initialized. The\n/// `rulesetId` stays the same for rulesets that automatically cycle over from a manually queued ruleset.\n/// @custom:member basedOnId The `rulesetId` of the ruleset which was active when this ruleset was created.\n/// @custom:member start The timestamp from which this ruleset is considered active.\n/// @custom:member duration The number of seconds the ruleset lasts for. After this duration, a new ruleset will start.\n/// The project owner can queue new rulesets at any time, which will take effect once the current ruleset's duration is\n/// over. If the `duration` is 0, newly queued rulesets will take effect immediately. If a ruleset ends and there are no\n/// new rulesets queued, the current ruleset cycles over to another one with the same properties but a new `start`\n/// timestamp and a `weight` reduced by the ruleset's `decayPercent`.\n/// @custom:member weight A fixed point number with 18 decimals which is typically used by payment terminals to\n/// determine how many tokens should be minted when a payment is received. This can be used by other contracts for\n/// arbitrary calculations.\n/// @custom:member decayPercent The percentage by which to reduce the `weight` each time a new ruleset starts. `weight`\n/// is\n/// a percentage out of `JBConstants.MAX_DECAY_PERCENT`. If it's 0, the next ruleset will have the same `weight` by\n/// default. If it's 90%, the next ruleset's `weight` will be 10% smaller. If a ruleset explicitly sets a new `weight`,\n/// the `decayPercent` doesn't apply.\n/// @custom:member approvalHook An address of a contract that says whether a queued ruleset should be approved or\n/// rejected. If a\n/// ruleset is rejected, it won't go into effect. An approval hook can be used to create rules which dictate how a\n/// project owner can change their ruleset over time.\n/// @custom:member metadata Extra data associated with a ruleset which can be used by other contracts.\nstruct JBRuleset {\n uint48 cycleNumber;\n uint48 id;\n uint48 basedOnId;\n uint48 start;\n uint32 duration;\n uint112 weight;\n uint32 decayPercent;\n IJBRulesetApprovalHook approvalHook;\n uint256 metadata;\n}\n" + }, + "node_modules/@bananapus/core/src/structs/JBRulesetConfig.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IJBRulesetApprovalHook} from \"../interfaces/IJBRulesetApprovalHook.sol\";\nimport {JBFundAccessLimitGroup} from \"./JBFundAccessLimitGroup.sol\";\nimport {JBRulesetMetadata} from \"./JBRulesetMetadata.sol\";\nimport {JBSplitGroup} from \"./JBSplitGroup.sol\";\n\n/// @custom:member mustStartAtOrAfter The earliest time the ruleset can start.\n/// @custom:member duration The number of seconds the ruleset lasts for, after which a new ruleset will start. A\n/// duration of 0 means that the ruleset will stay active until the project owner explicitly issues a reconfiguration,\n/// at which point a new ruleset will immediately start with the updated properties. If the duration is greater than 0,\n/// a project owner cannot make changes to a ruleset's parameters while it is active – any proposed changes will apply\n/// to the subsequent ruleset. If no changes are proposed, a ruleset rolls over to another one with the same properties\n/// but new `start` timestamp and a decayed `weight`.\n/// @custom:member weight A fixed point number with 18 decimals that contracts can use to base arbitrary calculations\n/// on. For example, payment terminals can use this to determine how many tokens should be minted when a payment is\n/// received.\n/// @custom:member decayPercent A percent by how much the `weight` of the subsequent ruleset should be reduced, if the\n/// project owner hasn't queued the subsequent ruleset with an explicit `weight`. If it's 0, each ruleset will have\n/// equal weight. If the number is 90%, the next ruleset will have a 10% smaller weight. This weight is out of\n/// `JBConstants.MAX_DECAY_PERCENT`.\n/// @custom:member approvalHook An address of a contract that says whether a proposed ruleset should be accepted or\n/// rejected. It\n/// can be used to create rules around how a project owner can change ruleset parameters over time.\n/// @custom:member metadata Metadata specifying the controller-specific parameters that a ruleset can have. These\n/// properties cannot change until the next ruleset starts.\n/// @custom:member splitGroups An array of splits to use for any number of groups while the ruleset is active.\n/// @custom:member fundAccessLimitGroups An array of structs which dictate the amount of funds a project can access from\n/// its balance in each payment terminal while the ruleset is active. Amounts are fixed point numbers using the same\n/// number of decimals as the corresponding terminal. The `_payoutLimit` and `_surplusAllowance` parameters must fit in\n/// a `uint232`.\nstruct JBRulesetConfig {\n uint48 mustStartAtOrAfter;\n uint32 duration;\n uint112 weight;\n uint32 decayPercent;\n IJBRulesetApprovalHook approvalHook;\n JBRulesetMetadata metadata;\n JBSplitGroup[] splitGroups;\n JBFundAccessLimitGroup[] fundAccessLimitGroups;\n}\n" + }, + "node_modules/@bananapus/core/src/structs/JBRulesetMetadata.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\n/// @custom:member reservedPercent The reserved percent of the ruleset. This number is a percentage calculated out of\n/// `JBConstants.MAX_RESERVED_PERCENT`.\n/// @custom:member redemptionRate The redemption rate of the ruleset. This number is a percentage calculated out of\n/// `JBConstants.MAX_REDEMPTION_RATE`.\n/// @custom:member baseCurrency The currency on which to base the ruleset's weight. By convention, this is\n/// `uint32(uint160(tokenAddress))` for tokens, or a constant ID from e.g. `JBCurrencyIds` for other currencies.\n/// @custom:member pausePay A flag indicating if the pay functionality should be paused during the ruleset.\n/// @custom:member pauseCreditTransfers A flag indicating if the project token transfer functionality should be paused\n/// during the funding cycle.\n/// @custom:member allowOwnerMinting A flag indicating if the project owner or an operator with the `MINT_TOKENS`\n/// permission from the owner should be allowed to mint project tokens on demand during this ruleset.\n/// @custom:member allowTerminalMigration A flag indicating if migrating terminals should be allowed during this\n/// ruleset.\n/// @custom:member allowSetTerminals A flag indicating if a project's terminals can be added or removed.\n/// @custom:member allowSetController A flag indicating if a project's controller can be changed.\n/// @custom:member allowAddAccountingContext A flag indicating if a project can add new accounting contexts for its\n/// terminals to use.\n/// @custom:member allowAddPriceFeed A flag indicating if a project can add new price feeds to calculate exchange rates\n/// between its tokens.\n/// @custom:member allowCrosschainSuckerExtension A flag indicating if the crosschain sucker extension should be\n/// allowed during this ruleset.\n/// @custom:member ownerMustSendPayouts A flag indicating if privileged payout distribution should be\n/// enforced, otherwise payouts can be distributed by anyone.\n/// @custom:member holdFees A flag indicating if fees should be held during this ruleset.\n/// @custom:member useTotalSurplusForRedemptions A flag indicating if redemptions should use the project's balance held\n/// in all terminals instead of the project's local terminal balance from which the redemption is being fulfilled.\n/// @custom:member useDataHookForPay A flag indicating if the data hook should be used for pay transactions during this\n/// ruleset.\n/// @custom:member useDataHookForRedeem A flag indicating if the data hook should be used for redeem transactions during\n/// this ruleset.\n/// @custom:member dataHook The data hook to use during this ruleset.\n/// @custom:member metadata Metadata of the metadata, up to uint16 in size though only the first 14 bits can be used.\nstruct JBRulesetMetadata {\n uint16 reservedPercent;\n uint16 redemptionRate;\n uint32 baseCurrency;\n bool pausePay;\n bool pauseCreditTransfers;\n bool allowOwnerMinting;\n bool allowSetCustomToken;\n bool allowTerminalMigration;\n bool allowSetTerminals;\n bool allowSetController;\n bool allowAddAccountingContext;\n bool allowAddPriceFeed;\n bool allowCrosschainSuckerExtension;\n bool ownerMustSendPayouts;\n bool holdFees;\n bool useTotalSurplusForRedemptions;\n bool useDataHookForPay;\n bool useDataHookForRedeem;\n address dataHook;\n uint16 metadata;\n}\n" + }, + "node_modules/@bananapus/core/src/structs/JBRulesetWithMetadata.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {JBRuleset} from \"./JBRuleset.sol\";\nimport {JBRulesetMetadata} from \"./JBRulesetMetadata.sol\";\n\n/// @custom:member ruleset The ruleset.\n/// @custom:member metadata The ruleset's metadata.\nstruct JBRulesetWithMetadata {\n JBRuleset ruleset;\n JBRulesetMetadata metadata;\n}\n" + }, + "node_modules/@bananapus/core/src/structs/JBSplit.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IJBSplitHook} from \"./../interfaces/IJBSplitHook.sol\";\n\n/// @notice Splits are used to send a percentage of a total token amount to a specific contract, project, or address.\n/// Splits are used to send payouts and reserved tokens.\n/// @dev 1. If a non-zero split hook contract is specified, this split's tokens are sent there along with this split's\n/// properties.\n/// @dev 2. Otherwise, if a non-zero project ID is specified, this split's tokens are used to `pay` it through its\n/// terminal if possible, or sent to the project's owner if not. If this payment yields tokens, those go to the split's\n/// `beneficiary`.\n/// @dev 3. Otherwise, this split's tokens are sent directly to the `beneficiary`.\n/// @dev To summarize, this split's tokens are sent according to the following priority: `split hook` > `projectId` >\n/// `beneficiary`.\n/// @custom:member preferAddToBalance If this split were to `pay` a project through its terminal, this flag indicates\n/// whether it should prefer using the terminal's `addToBalance` function instead.\n/// @custom:member percent The percent of the total token amount that this split sends. This number is out of\n/// `JBConstants.SPLITS_TOTAL_PERCENT`.\n/// @custom:member projectId The ID of a project to `pay`, if applicable. Resulting tokens will be routed to the\n/// `beneficiary`.\n/// @custom:member beneficiary Receives this split's tokens if the `hook` and `projectId` are zero. If the `projectId`\n/// is specified, the `beneficiary` receives any project tokens minted by this split.\n/// @custom:member lockedUntil The split cannot be changed until this timestamp. The `lockedUntil` timestamp can be\n/// increased while a split is locked. If `lockedUntil` is zero, this split can be changed at any time.\n/// @custom:member hook A contract which will receive this split's tokens and properties, and can define custom\n/// behavior.\nstruct JBSplit {\n bool preferAddToBalance;\n uint32 percent;\n uint56 projectId;\n address payable beneficiary;\n uint48 lockedUntil;\n IJBSplitHook hook;\n}\n" + }, + "node_modules/@bananapus/core/src/structs/JBSplitGroup.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {JBSplit} from \"./JBSplit.sol\";\n\n/// @custom:member groupId An identifier for the group. By convention, this ID is `uint256(uint160(tokenAddress))` for\n/// payouts and `1` for reserved tokens.\n/// @custom:member splits The splits in the group.\nstruct JBSplitGroup {\n uint256 groupId;\n JBSplit[] splits;\n}\n" + }, + "node_modules/@bananapus/core/src/structs/JBSplitHookContext.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {JBSplit} from \"./JBSplit.sol\";\n\n/// @custom:member token The token being sent to the split hook.\n/// @custom:member amount The amount being sent to the split hook, as a fixed point number.\n/// @custom:member decimals The number of decimals in the amount.\n/// @custom:member projectId The project the split belongs to.\n/// @custom:member groupId The group the split belongs to. By convention, this ID is `uint256(uint160(tokenAddress))`\n/// for payouts and `1` for reserved tokens.\n/// @custom:member split The split which specified the hook.\nstruct JBSplitHookContext {\n address token;\n uint256 amount;\n uint256 decimals;\n uint256 projectId;\n uint256 groupId;\n JBSplit split;\n}\n" + }, + "node_modules/@bananapus/core/src/structs/JBTerminalConfig.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {JBAccountingContext} from \"./JBAccountingContext.sol\";\nimport {IJBTerminal} from \"./../interfaces/IJBTerminal.sol\";\n\n/// @custom:member terminal The terminal to configure.\n/// @custom:member accountingContextsToAccept The accounting contexts to accept from the terminal.\nstruct JBTerminalConfig {\n IJBTerminal terminal;\n JBAccountingContext[] accountingContextsToAccept;\n}\n" + }, + "node_modules/@bananapus/core/src/structs/JBTokenAmount.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\n/// @custom:member token The token the payment was made in.\n/// @custom:member decimals The number of decimals included in the value fixed point number.\n/// @custom:member currency The currency. By convention, this is `uint32(uint160(tokenAddress))` for tokens, or a\n/// constant ID from e.g. `JBCurrencyIds` for other currencies.\n/// @custom:member value The amount of tokens that was paid, as a fixed point number.\nstruct JBTokenAmount {\n address token;\n uint8 decimals;\n uint32 currency;\n uint256 value;\n}\n" + }, + "node_modules/@bananapus/ownable/src/JBOwnable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// Juicebox variation on OpenZeppelin Ownable\npragma solidity ^0.8.23;\n\nimport {IJBProjects} from \"@bananapus/core/src/interfaces/IJBProjects.sol\";\nimport {IJBPermissions} from \"@bananapus/core/src/interfaces/IJBPermissions.sol\";\n\nimport {JBOwnableOverrides} from \"./JBOwnableOverrides.sol\";\n\ncontract JBOwnable is JBOwnableOverrides {\n //*********************************************************************//\n // -------------------------- constructor ---------------------------- //\n //*********************************************************************//\n\n /// @param permissions The `IJBPermissions` to use for managing permissions.\n /// @param projects The `IJBProjects` to use for tracking project ownership.\n /// @param initialOwner The initial owner of the contract.\n /// @param initialProjectIdOwner The initial project id that owns this contract.\n constructor(\n IJBPermissions permissions,\n IJBProjects projects,\n address initialOwner,\n uint88 initialProjectIdOwner\n )\n JBOwnableOverrides(permissions, projects, initialOwner, initialProjectIdOwner)\n {}\n\n //*********************************************************************//\n // --------------------------- modifiers ----------------------------- //\n //*********************************************************************//\n\n /// @notice Reverts if called by an address that is not the owner and does not have permission from the owner.\n modifier onlyOwner() virtual {\n _checkOwner();\n _;\n }\n\n //*********************************************************************//\n // ------------------------ internal functions ----------------------- //\n //*********************************************************************//\n\n /// @notice Either `newOwner` or `newProjectId` is non-zero or both are zero. But they can never both be non-zero.\n /// @dev This function exists because some contracts will try to deploy contracts for a project before\n function _emitTransferEvent(\n address previousOwner,\n address newOwner,\n uint88 newProjectId\n )\n internal\n virtual\n override\n {\n emit OwnershipTransferred({\n previousOwner: previousOwner,\n newOwner: newProjectId == 0 ? newOwner : PROJECTS.ownerOf(newProjectId),\n caller: msg.sender\n });\n }\n}\n" + }, + "node_modules/@bananapus/ownable/src/JBOwnableOverrides.sol": { + "content": "// SPDX-License-Identifier: MIT\n// Juicebox variation on OpenZeppelin Ownable\npragma solidity ^0.8.23;\n\nimport {JBPermissioned} from \"@bananapus/core/src/abstract/JBPermissioned.sol\";\nimport {IJBPermissions} from \"@bananapus/core/src/interfaces/IJBPermissions.sol\";\nimport {IJBProjects} from \"@bananapus/core/src/interfaces/IJBProjects.sol\";\nimport {Context} from \"@openzeppelin/contracts/utils/Context.sol\";\n\nimport {IJBOwnable} from \"./interfaces/IJBOwnable.sol\";\nimport {JBOwner} from \"./struct/JBOwner.sol\";\n\n/// @notice Access control module to grant exclusive access to a specified address (the owner) for specific functions.\n/// The owner can also grant access permissions to other addresses via `JBPermissions`.\n/// @dev Inherit this contract to make the `onlyOwner` modifier available. When applied to a function, this modifier\n/// restricts use to the owner and addresses with the appropriate permission from the owner.\nabstract contract JBOwnableOverrides is Context, JBPermissioned, IJBOwnable {\n //*********************************************************************//\n // --------------------------- custom errors --------------------------//\n //*********************************************************************//b\n\n error JBOwnableOverrides_InvalidNewOwner();\n\n //*********************************************************************//\n // ---------------- public immutable stored properties --------------- //\n //*********************************************************************//\n\n /// @notice Mints ERC-721s that represent project ownership and transfers.\n IJBProjects public immutable override PROJECTS;\n\n //*********************************************************************//\n // --------------------- public stored properties -------------------- //\n //*********************************************************************//\n\n /// @notice This contract's owner information.\n JBOwner public override jbOwner;\n\n //*********************************************************************//\n // -------------------------- constructor ---------------------------- //\n //*********************************************************************//\n\n /// @param permissions The `IJBPermissions` to use for managing permissions.\n /// @param projects The `IJBProjects` to use for tracking project ownership.\n /// @param initialOwner The initial owner of the contract.\n /// @param initialProjectIdOwner The initial project id that owns this contract.\n constructor(\n IJBPermissions permissions,\n IJBProjects projects,\n address initialOwner,\n uint88 initialProjectIdOwner\n )\n JBPermissioned(permissions)\n {\n PROJECTS = projects;\n\n // We force the inheriting contract to set an owner, as there is a\n // low chance someone will use `JBOwnable` to create an unowned contract.\n // But a higher chance that both are accidentally set to be `0`.\n // If you really want an unowned contract, set the owner to any address then renounce in the constructor body.\n if (initialProjectIdOwner == 0 && initialOwner == address(0)) {\n revert JBOwnableOverrides_InvalidNewOwner();\n }\n\n _transferOwnership(initialOwner, initialProjectIdOwner);\n }\n\n //*********************************************************************//\n // -------------------------- public views --------------------------- //\n //*********************************************************************//\n\n /// @notice Returns the owner's address based on this contract's `JBOwner` owner information.\n /// @return owner The owner's address.\n function owner() public view virtual returns (address) {\n JBOwner memory ownerInfo = jbOwner;\n\n if (ownerInfo.projectId == 0) {\n return ownerInfo.owner;\n }\n\n return PROJECTS.ownerOf(ownerInfo.projectId);\n }\n\n //*********************************************************************//\n // -------------------------- internal views ------------------------- //\n //*********************************************************************//\n\n /// @notice Reverts if the sender is not the owner.\n function _checkOwner() internal view virtual {\n JBOwner memory ownerInfo = jbOwner;\n\n _requirePermissionFrom({\n account: ownerInfo.projectId == 0 ? ownerInfo.owner : PROJECTS.ownerOf(ownerInfo.projectId),\n projectId: ownerInfo.projectId,\n permissionId: ownerInfo.permissionId\n });\n }\n\n //*********************************************************************//\n // ---------------------- public transactions ------------------------ //\n //*********************************************************************//\n\n /// @notice Gives up ownership of this contract, making it impossible to call `onlyOwner`/`_checkOwner` functions.\n /// Can only be called by the current owner.\n function renounceOwnership() public virtual override {\n _checkOwner();\n _transferOwnership(address(0), 0);\n }\n\n /// @notice Sets the permission ID which, when granted from the owner, allows other addresses to perform operations\n /// on their behalf.\n /// @param permissionId The ID of the permission to use for `onlyOwner`.\n function setPermissionId(uint8 permissionId) public virtual override {\n _checkOwner();\n _setPermissionId(permissionId);\n }\n\n /// @notice Transfers ownership of this contract to a new account (the `newOwner`). Can only be called by the\n /// current owner.\n /// @param newOwner The address that should receive ownership of this contract.\n function transferOwnership(address newOwner) public virtual override {\n _checkOwner();\n if (newOwner == address(0)) {\n revert JBOwnableOverrides_InvalidNewOwner();\n }\n\n _transferOwnership(newOwner, 0);\n }\n\n /// @notice Transfer ownership of this contract to a new Juicebox project.\n /// @dev The `projectId` must fit within a `uint88`.\n /// @param projectId The ID of the project that should receive ownership of this contract.\n function transferOwnershipToProject(uint256 projectId) public virtual override {\n _checkOwner();\n if (projectId == 0 || projectId > type(uint88).max) {\n revert JBOwnableOverrides_InvalidNewOwner();\n }\n\n _transferOwnership(address(0), uint88(projectId));\n }\n\n //*********************************************************************//\n // ------------------------ internal functions ----------------------- //\n //*********************************************************************//\n\n /// @notice Either `newOwner` or `newProjectId` is non-zero or both are zero. But they can never both be non-zero.\n /// @dev This function exists because some contracts will try to deploy contracts for a project before\n function _emitTransferEvent(address previousOwner, address newOwner, uint88 newProjectId) internal virtual;\n\n /// @notice Sets the permission ID which, when granted from the owner, allows other addresses to perform operations\n /// on their behalf.\n /// @dev Internal function without access restriction.\n /// @param permissionId The ID of the permission to use for `onlyOwner`.\n function _setPermissionId(uint8 permissionId) internal virtual {\n jbOwner.permissionId = permissionId;\n emit PermissionIdChanged({newId: permissionId, caller: msg.sender});\n }\n\n /// @notice Helper to allow for drop-in replacement of OpenZeppelin.\n /// @param newOwner The address that should receive ownership of this contract.\n function _transferOwnership(address newOwner) internal virtual {\n _transferOwnership(newOwner, 0);\n }\n\n /// @notice Transfers this contract's ownership to an address (`newOwner`) OR a Juicebox project (`projectId`).\n /// @dev Updates this contract's `JBOwner` owner information.\n /// @dev If both `newOwner` and `projectId` are set, this will revert.\n /// @dev Internal function without access restriction.\n /// @param newOwner The address that should receive ownership of this contract.\n /// @param projectId The ID of the project that this contract should respect the ownership of.\n function _transferOwnership(address newOwner, uint88 projectId) internal virtual {\n // Can't set both a new owner and a new project ID.\n if (projectId != 0 && newOwner != address(0)) {\n revert JBOwnableOverrides_InvalidNewOwner();\n }\n // Load the owner information from storage.\n JBOwner memory ownerInfo = jbOwner;\n // Get the address of the old owner.\n address oldOwner = ownerInfo.projectId == 0 ? ownerInfo.owner : PROJECTS.ownerOf(ownerInfo.projectId);\n // Update the stored owner information to the new owner and reset the `permissionId`.\n // This is to prevent permissions clashes for the new user/owner.\n jbOwner = JBOwner({owner: newOwner, projectId: projectId, permissionId: 0});\n // Emit a transfer event with the new owner's address.\n _emitTransferEvent(oldOwner, newOwner, projectId);\n }\n}\n" + }, + "node_modules/@bananapus/ownable/src/interfaces/IJBOwnable.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IJBProjects} from \"@bananapus/core/src/interfaces/IJBProjects.sol\";\n\ninterface IJBOwnable {\n event PermissionIdChanged(uint8 newId, address caller);\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner, address caller);\n\n function PROJECTS() external view returns (IJBProjects);\n function jbOwner() external view returns (address owner, uint88 projectOwner, uint8 permissionId);\n function owner() external view returns (address);\n\n function renounceOwnership() external;\n function setPermissionId(uint8 permissionId) external;\n function transferOwnership(address newOwner) external;\n function transferOwnershipToProject(uint256 projectId) external;\n}\n" + }, + "node_modules/@bananapus/ownable/src/struct/JBOwner.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\n/// @notice Owner information for a given instance of `JBOwnableOverrides`.\n/// @custom:member owner If `projectId` is 0 and this is set, this static address has owner access.\n/// @custom:member projectId Unless this is 0, this project's owner has owner access.\n/// @custom:member permissionId The ID of the permission required from the project's owner to have owner access. See\n/// `JBPermissions` in `juice-contracts-v4`.\nstruct JBOwner {\n address owner;\n uint88 projectId;\n uint8 permissionId;\n}\n" + }, + "node_modules/@bananapus/permission-ids/src/JBPermissionIds.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\n/// @notice Permission IDs for `JBPermissions`, used throughout the Bananapus ecosystem. See\n/// [`JBPermissions`](https://github.com/Bananapus/nana-core/blob/main/src/JBPermissions.sol)\n/// @dev `JBPermissions` allows one address to grant another address permission to call functions in Juicebox contracts\n/// on their behalf. Each ID in `JBPermissionIds` grants access to a specific set of these functions.\nlibrary JBPermissionIds {\n uint8 internal constant ROOT = 1; // All permissions across every contract. Very dangerous. BE CAREFUL!\n\n /* Used by `nana-core`: https://github.com/Bananapus/nana-core */\n uint8 internal constant QUEUE_RULESETS = 2; // Permission to call `JBController.queueRulesetsOf` and\n // `JBController.launchRulesetsFor`.\n uint8 internal constant REDEEM_TOKENS = 3; // Permission to call `JBMultiTerminal.redeemTokensOf`.\n uint8 internal constant SEND_PAYOUTS = 4; // Permission to call `JBMultiTerminal.sendPayoutsOf`.\n uint8 internal constant MIGRATE_TERMINAL = 5; // Permission to call `JBMultiTerminal.migrateBalanceOf`.\n uint8 internal constant SET_PROJECT_URI = 6; // Permission to call `JBController.setUriOf`.\n uint8 internal constant DEPLOY_ERC20 = 7; // Permission to call `JBController.deployERC20For`.\n uint8 internal constant SET_TOKEN = 8; // Permission to call `JBController.setTokenFor`.\n uint8 internal constant MINT_TOKENS = 9; // Permission to call `JBController.mintTokensOf`.\n uint8 internal constant BURN_TOKENS = 10; // Permission to call `JBController.burnTokensOf`.\n uint8 internal constant CLAIM_TOKENS = 11; // Permission to call `JBController.claimTokensFor`.\n uint8 internal constant TRANSFER_CREDITS = 12; // Permission to call `JBController.transferCreditsFrom`.\n uint8 internal constant SET_CONTROLLER = 13; // Permission to call `JBDirectory.setControllerOf`.\n uint8 internal constant SET_TERMINALS = 14; // Permission to call `JBDirectory.setTerminalsOf`.\n // Be careful - `SET_TERMINALS` can be used to remove the primary terminal.\n uint8 internal constant SET_PRIMARY_TERMINAL = 15; // Permission to call `JBDirectory.setPrimaryTerminalOf`.\n uint8 internal constant USE_ALLOWANCE = 16; // Permission to call `JBMultiTerminal.useAllowanceOf`.\n uint8 internal constant SET_SPLIT_GROUPS = 17; // Permission to call `JBController.setSplitGroupsOf`.\n uint8 internal constant ADD_PRICE_FEED = 18; // Permission to call `JBPrices.addPriceFeedFor`.\n uint8 internal constant ADD_ACCOUNTING_CONTEXTS = 19; // Permission to call\n // `JBMultiTerminal.addAccountingContextsFor`.\n\n /* Used by `nana-721-hook`: https://github.com/Bananapus/nana-721-hook */\n uint8 internal constant ADJUST_721_TIERS = 20; // Permission to call `JB721TiersHook.adjustTiers`.\n uint8 internal constant SET_721_METADATA = 21; // Permission to call `JB721TiersHook.setMetadata`.\n uint8 internal constant MINT_721 = 22; // Permission to call `JB721TiersHook.mintFor`.\n uint8 internal constant SET_721_DISCOUNT_PERCENT = 23; // Permission to call `JB721TiersHook.setDiscountPercentOf`.\n\n /* Used by `nana-buyback-hook`: https://github.com/Bananapus/nana-buyback-hook */\n uint8 internal constant SET_BUYBACK_TWAP = 24; // Permission to call `JBBuybackHook.setTwapWindowOf` and\n // `JBBuybackHook.setTwapSlippageToleranceOf`.\n uint8 internal constant SET_BUYBACK_POOL = 25; // Permission to call `JBBuybackHook.setPoolFor`.\n\n /* Used by `nana-swap-terminal`: https://github.com/Bananapus/nana-swap-terminal */\n uint8 internal constant ADD_SWAP_TERMINAL_POOL = 26; // Permission to call `JBSwapTerminal.addDefaultPool`.\n uint8 internal constant ADD_SWAP_TERMINAL_TWAP_PARAMS = 27; // Permission to call\n // `JBSwapTerminal.addTwapParamsFor`.\n\n /* Used by `nana-suckers`: https://github.com/Bananapus/nana-suckers */\n uint8 internal constant MAP_SUCKER_TOKEN = 28; // Permission to call `BPSucker.mapToken`.\n uint8 internal constant DEPLOY_SUCKERS = 29; // Permission to call `BPSuckerRegistry.deploySuckersFor`.\n}\n" + }, + "node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n /**\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n */\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n */\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n */\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of tokens in ``owner``'s account.\n */\n function balanceOf(address owner) external view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function ownerOf(uint256 tokenId) external view returns (address owner);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n * a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or\n * {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n * a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Transfers `tokenId` token from `from` to `to`.\n *\n * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\n * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n * understand this adds an external call which potentially creates a reentrancy vulnerability.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n * The approval is cleared when the token is transferred.\n *\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n *\n * Requirements:\n *\n * - The caller must own the token or be an approved operator.\n * - `tokenId` must exist.\n *\n * Emits an {Approval} event.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * @dev Approve or remove `operator` as an operator for the caller.\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n *\n * Requirements:\n *\n * - The `operator` cannot be the address zero.\n *\n * Emits an {ApprovalForAll} event.\n */\n function setApprovalForAll(address operator, bool approved) external;\n\n /**\n * @dev Returns the account approved for `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function getApproved(uint256 tokenId) external view returns (address operator);\n\n /**\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n *\n * See {setApprovalForAll}\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n}\n" + }, + "node_modules/@openzeppelin/contracts/utils/Context.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n" + }, + "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n" + }, + "src/JB721TiersHookProjectDeployer.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity 0.8.23;\n\nimport {JBPermissioned} from \"@bananapus/core/src/abstract/JBPermissioned.sol\";\nimport {IJBController} from \"@bananapus/core/src/interfaces/IJBController.sol\";\nimport {IJBDirectory} from \"@bananapus/core/src/interfaces/IJBDirectory.sol\";\nimport {IJBPermissions} from \"@bananapus/core/src/interfaces/IJBPermissions.sol\";\nimport {JBRulesetConfig} from \"@bananapus/core/src/structs/JBRulesetConfig.sol\";\nimport {JBRulesetMetadata} from \"@bananapus/core/src/structs/JBRulesetMetadata.sol\";\nimport {JBOwnable} from \"@bananapus/ownable/src/JBOwnable.sol\";\nimport {JBPermissionIds} from \"@bananapus/permission-ids/src/JBPermissionIds.sol\";\n\nimport {IJB721TiersHookDeployer} from \"./interfaces/IJB721TiersHookDeployer.sol\";\nimport {IJB721TiersHookProjectDeployer} from \"./interfaces/IJB721TiersHookProjectDeployer.sol\";\nimport {IJB721TiersHook} from \"./interfaces/IJB721TiersHook.sol\";\nimport {JBDeploy721TiersHookConfig} from \"./structs/JBDeploy721TiersHookConfig.sol\";\nimport {JBLaunchRulesetsConfig} from \"./structs/JBLaunchRulesetsConfig.sol\";\nimport {JBQueueRulesetsConfig} from \"./structs/JBQueueRulesetsConfig.sol\";\nimport {JBLaunchProjectConfig} from \"./structs/JBLaunchProjectConfig.sol\";\nimport {JBPayDataHookRulesetConfig} from \"./structs/JBPayDataHookRulesetConfig.sol\";\n\n/// @title JB721TiersHookProjectDeployer\n/// @notice Deploys a project and a 721 tiers hook for it. Can be used to queue rulesets for the project if given\n/// `JBPermissionIds.QUEUE_RULESETS`.\ncontract JB721TiersHookProjectDeployer is JBPermissioned, IJB721TiersHookProjectDeployer {\n //*********************************************************************//\n // --------------- public immutable stored properties ---------------- //\n //*********************************************************************//\n\n /// @notice The directory of terminals and controllers for projects.\n IJBDirectory public immutable override DIRECTORY;\n\n /// @notice The 721 tiers hook deployer.\n IJB721TiersHookDeployer public immutable override HOOK_DEPLOYER;\n\n //*********************************************************************//\n // -------------------------- constructor ---------------------------- //\n //*********************************************************************//\n\n /// @param directory The directory of terminals and controllers for projects.\n /// @param permissions A contract storing permissions.\n /// @param hookDeployer The 721 tiers hook deployer.\n constructor(\n IJBDirectory directory,\n IJBPermissions permissions,\n IJB721TiersHookDeployer hookDeployer\n )\n JBPermissioned(permissions)\n {\n DIRECTORY = directory;\n HOOK_DEPLOYER = hookDeployer;\n }\n\n //*********************************************************************//\n // ---------------------- external transactions ---------------------- //\n //*********************************************************************//\n\n /// @notice Launches a new project with a 721 tiers hook attached.\n /// @param owner The address to set as the owner of the project. The ERC-721 which confers this project's ownership\n /// will be sent to this address.\n /// @param deployTiersHookConfig Configuration which dictates the behavior of the 721 tiers hook which is being\n /// deployed.\n /// @param launchProjectConfig Configuration which dictates the behavior of the project which is being launched.\n /// @param controller The controller that the project's rulesets will be queued with.\n /// @return projectId The ID of the newly launched project.\n /// @return hook The 721 tiers hook that was deployed for the project.\n function launchProjectFor(\n address owner,\n JBDeploy721TiersHookConfig calldata deployTiersHookConfig,\n JBLaunchProjectConfig calldata launchProjectConfig,\n IJBController controller\n )\n external\n override\n returns (uint256 projectId, IJB721TiersHook hook)\n {\n // Get the project's ID, optimistically knowing it will be one greater than the current number of projects.\n projectId = DIRECTORY.PROJECTS().count() + 1;\n\n // Deploy the hook.\n hook = HOOK_DEPLOYER.deployHookFor(projectId, deployTiersHookConfig);\n\n // Launch the project.\n _launchProjectFor(owner, launchProjectConfig, hook, controller);\n\n // Transfer the hook's ownership to the project.\n JBOwnable(address(hook)).transferOwnershipToProject(projectId);\n }\n\n /// @notice Launches rulesets for a project with an attached 721 tiers hook.\n /// @dev Only a project's owner or an operator with the `QUEUE_RULESETS` permission can launch its rulesets.\n /// @param projectId The ID of the project that rulesets are being launched for.\n /// @param deployTiersHookConfig Configuration which dictates the behavior of the 721 tiers hook which is being\n /// deployed.\n /// @param launchRulesetsConfig Configuration which dictates the project's new rulesets.\n /// @param controller The controller that the project's rulesets will be queued with.\n /// @return rulesetId The ID of the successfully created ruleset.\n /// @return hook The 721 tiers hook that was deployed for the project.\n function launchRulesetsFor(\n uint256 projectId,\n JBDeploy721TiersHookConfig calldata deployTiersHookConfig,\n JBLaunchRulesetsConfig calldata launchRulesetsConfig,\n IJBController controller\n )\n external\n override\n returns (uint256 rulesetId, IJB721TiersHook hook)\n {\n // Enforce permissions.\n _requirePermissionFrom({\n account: DIRECTORY.PROJECTS().ownerOf(projectId),\n projectId: projectId,\n permissionId: JBPermissionIds.QUEUE_RULESETS\n });\n\n // Deploy the hook.\n hook = HOOK_DEPLOYER.deployHookFor(projectId, deployTiersHookConfig);\n\n // Transfer the hook's ownership to the project.\n JBOwnable(address(hook)).transferOwnershipToProject(projectId);\n\n // Launch the rulesets.\n rulesetId = _launchRulesetsFor(projectId, launchRulesetsConfig, hook, controller);\n }\n\n /// @notice Queues rulesets for a project with an attached 721 tiers hook.\n /// @dev Only a project's owner or an operator with the `QUEUE_RULESETS` permission can queue its rulesets.\n /// @param projectId The ID of the project that rulesets are being queued for.\n /// @param deployTiersHookConfig Configuration which dictates the behavior of the 721 tiers hook which is being\n /// deployed.\n /// @param queueRulesetsConfig Configuration which dictates the project's newly queued rulesets.\n /// @param controller The controller that the project's rulesets will be queued with.\n /// @return rulesetId The ID of the successfully created ruleset.\n /// @return hook The 721 tiers hook that was deployed for the project.\n function queueRulesetsOf(\n uint256 projectId,\n JBDeploy721TiersHookConfig calldata deployTiersHookConfig,\n JBQueueRulesetsConfig calldata queueRulesetsConfig,\n IJBController controller\n )\n external\n override\n returns (uint256 rulesetId, IJB721TiersHook hook)\n {\n // Enforce permissions.\n _requirePermissionFrom({\n account: DIRECTORY.PROJECTS().ownerOf(projectId),\n projectId: projectId,\n permissionId: JBPermissionIds.QUEUE_RULESETS\n });\n\n // Deploy the hook.\n hook = HOOK_DEPLOYER.deployHookFor(projectId, deployTiersHookConfig);\n\n // Transfer the hook's ownership to the project.\n JBOwnable(address(hook)).transferOwnershipToProject(projectId);\n\n // Queue the rulesets.\n rulesetId = _queueRulesetsOf(projectId, queueRulesetsConfig, hook, controller);\n }\n\n //*********************************************************************//\n // ------------------------ internal functions ----------------------- //\n //*********************************************************************//\n\n /// @notice Launches a project.\n /// @param owner The address that will own the project.\n /// @param launchProjectConfig Configuration which dictates the behavior of the project which is being launched.\n /// @param dataHook The data hook to use for the project.\n /// @param controller The controller that the project's rulesets will be queued with.\n function _launchProjectFor(\n address owner,\n JBLaunchProjectConfig memory launchProjectConfig,\n IJB721TiersHook dataHook,\n IJBController controller\n )\n internal\n {\n // Keep a reference to how many ruleset configurations there are.\n uint256 numberOfRulesetConfigurations = launchProjectConfig.rulesetConfigurations.length;\n\n // Initialize an array of ruleset configurations.\n JBRulesetConfig[] memory rulesetConfigurations = new JBRulesetConfig[](numberOfRulesetConfigurations);\n\n // Set the data hook to be active for pay transactions for each ruleset configuration.\n for (uint256 i; i < numberOfRulesetConfigurations; i++) {\n // Set the pay data ruleset config being iterated on.\n JBPayDataHookRulesetConfig memory payDataRulesetConfig = launchProjectConfig.rulesetConfigurations[i];\n\n // Add the ruleset config.\n rulesetConfigurations[i] = JBRulesetConfig({\n mustStartAtOrAfter: payDataRulesetConfig.mustStartAtOrAfter,\n duration: payDataRulesetConfig.duration,\n weight: payDataRulesetConfig.weight,\n decayPercent: payDataRulesetConfig.decayPercent,\n approvalHook: payDataRulesetConfig.approvalHook,\n metadata: JBRulesetMetadata({\n reservedPercent: payDataRulesetConfig.metadata.reservedPercent,\n redemptionRate: payDataRulesetConfig.metadata.redemptionRate,\n baseCurrency: payDataRulesetConfig.metadata.baseCurrency,\n pausePay: payDataRulesetConfig.metadata.pausePay,\n pauseCreditTransfers: payDataRulesetConfig.metadata.pauseCreditTransfers,\n allowOwnerMinting: payDataRulesetConfig.metadata.allowOwnerMinting,\n allowSetCustomToken: false,\n allowTerminalMigration: payDataRulesetConfig.metadata.allowTerminalMigration,\n allowSetTerminals: payDataRulesetConfig.metadata.allowSetTerminals,\n allowSetController: payDataRulesetConfig.metadata.allowSetController,\n allowAddAccountingContext: payDataRulesetConfig.metadata.allowAddAccountingContext,\n allowAddPriceFeed: payDataRulesetConfig.metadata.allowAddPriceFeed,\n allowCrosschainSuckerExtension: payDataRulesetConfig.metadata.allowCrosschainSuckerExtension,\n ownerMustSendPayouts: payDataRulesetConfig.metadata.ownerMustSendPayouts,\n holdFees: payDataRulesetConfig.metadata.holdFees,\n useTotalSurplusForRedemptions: payDataRulesetConfig.metadata.useTotalSurplusForRedemptions,\n useDataHookForPay: true,\n useDataHookForRedeem: payDataRulesetConfig.metadata.useDataHookForRedeem,\n dataHook: address(dataHook),\n metadata: payDataRulesetConfig.metadata.metadata\n }),\n splitGroups: payDataRulesetConfig.splitGroups,\n fundAccessLimitGroups: payDataRulesetConfig.fundAccessLimitGroups\n });\n }\n\n // Launch the project.\n // slither-disable-next-line unused-return\n controller.launchProjectFor({\n owner: owner,\n projectUri: launchProjectConfig.projectUri,\n rulesetConfigurations: rulesetConfigurations,\n terminalConfigurations: launchProjectConfig.terminalConfigurations,\n memo: launchProjectConfig.memo\n });\n }\n\n /// @notice Launches rulesets for a project.\n /// @param projectId The ID of the project to launch rulesets for.\n /// @param launchRulesetsConfig Configuration which dictates the behavior of the project's rulesets.\n /// @param dataHook The data hook to use for the project.\n /// @param controller The controller that the project's rulesets will be queued with.\n /// @return rulesetId The ID of the successfully created ruleset.\n function _launchRulesetsFor(\n uint256 projectId,\n JBLaunchRulesetsConfig memory launchRulesetsConfig,\n IJB721TiersHook dataHook,\n IJBController controller\n )\n internal\n returns (uint256)\n {\n // Keep a reference to how many ruleset configurations there are.\n uint256 numberOfRulesetConfigurations = launchRulesetsConfig.rulesetConfigurations.length;\n\n // Initialize an array of ruleset configurations.\n JBRulesetConfig[] memory rulesetConfigurations = new JBRulesetConfig[](numberOfRulesetConfigurations);\n\n // Set the data hook to be active for pay transactions for each ruleset configuration.\n for (uint256 i; i < numberOfRulesetConfigurations; i++) {\n // Set the pay data ruleset config being iterated on.\n JBPayDataHookRulesetConfig memory payDataRulesetConfig = launchRulesetsConfig.rulesetConfigurations[i];\n\n // Add the ruleset config.\n rulesetConfigurations[i] = JBRulesetConfig({\n mustStartAtOrAfter: payDataRulesetConfig.mustStartAtOrAfter,\n duration: payDataRulesetConfig.duration,\n weight: payDataRulesetConfig.weight,\n decayPercent: payDataRulesetConfig.decayPercent,\n approvalHook: payDataRulesetConfig.approvalHook,\n metadata: JBRulesetMetadata({\n reservedPercent: payDataRulesetConfig.metadata.reservedPercent,\n redemptionRate: payDataRulesetConfig.metadata.redemptionRate,\n baseCurrency: payDataRulesetConfig.metadata.baseCurrency,\n pausePay: payDataRulesetConfig.metadata.pausePay,\n pauseCreditTransfers: payDataRulesetConfig.metadata.pauseCreditTransfers,\n allowOwnerMinting: payDataRulesetConfig.metadata.allowOwnerMinting,\n allowSetCustomToken: false,\n allowTerminalMigration: payDataRulesetConfig.metadata.allowTerminalMigration,\n allowSetTerminals: payDataRulesetConfig.metadata.allowSetTerminals,\n allowSetController: payDataRulesetConfig.metadata.allowSetController,\n allowAddAccountingContext: payDataRulesetConfig.metadata.allowAddAccountingContext,\n allowAddPriceFeed: payDataRulesetConfig.metadata.allowAddPriceFeed,\n allowCrosschainSuckerExtension: payDataRulesetConfig.metadata.allowCrosschainSuckerExtension,\n ownerMustSendPayouts: payDataRulesetConfig.metadata.ownerMustSendPayouts,\n holdFees: payDataRulesetConfig.metadata.holdFees,\n useTotalSurplusForRedemptions: payDataRulesetConfig.metadata.useTotalSurplusForRedemptions,\n useDataHookForPay: true,\n useDataHookForRedeem: payDataRulesetConfig.metadata.useDataHookForRedeem,\n dataHook: address(dataHook),\n metadata: payDataRulesetConfig.metadata.metadata\n }),\n splitGroups: payDataRulesetConfig.splitGroups,\n fundAccessLimitGroups: payDataRulesetConfig.fundAccessLimitGroups\n });\n }\n\n // Launch the rulesets.\n return controller.launchRulesetsFor({\n projectId: projectId,\n rulesetConfigurations: rulesetConfigurations,\n terminalConfigurations: launchRulesetsConfig.terminalConfigurations,\n memo: launchRulesetsConfig.memo\n });\n }\n\n /// @notice Queues rulesets for a project.\n /// @param projectId The ID of the project to queue rulesets for.\n /// @param queueRulesetsConfig Configuration which dictates the behavior of the project's rulesets.\n /// @param dataHook The data hook to use for the project.\n /// @param controller The controller that the project's rulesets will be queued with.\n /// @return The ID of the successfully created ruleset.\n function _queueRulesetsOf(\n uint256 projectId,\n JBQueueRulesetsConfig memory queueRulesetsConfig,\n IJB721TiersHook dataHook,\n IJBController controller\n )\n internal\n returns (uint256)\n {\n // Keep a reference to how many ruleset configurations there are.\n uint256 numberOfRulesetConfigurations = queueRulesetsConfig.rulesetConfigurations.length;\n\n // Initialize an array of ruleset configurations.\n JBRulesetConfig[] memory rulesetConfigurations = new JBRulesetConfig[](numberOfRulesetConfigurations);\n\n // Set the data hook to be active for pay transactions for each ruleset configuration.\n for (uint256 i; i < numberOfRulesetConfigurations; i++) {\n // Set the pay data ruleset config being iterated on.\n JBPayDataHookRulesetConfig memory payDataRulesetConfig = queueRulesetsConfig.rulesetConfigurations[i];\n\n // Add the ruleset config.\n rulesetConfigurations[i] = JBRulesetConfig({\n mustStartAtOrAfter: payDataRulesetConfig.mustStartAtOrAfter,\n duration: payDataRulesetConfig.duration,\n weight: payDataRulesetConfig.weight,\n decayPercent: payDataRulesetConfig.decayPercent,\n approvalHook: payDataRulesetConfig.approvalHook,\n metadata: JBRulesetMetadata({\n reservedPercent: payDataRulesetConfig.metadata.reservedPercent,\n redemptionRate: payDataRulesetConfig.metadata.redemptionRate,\n baseCurrency: payDataRulesetConfig.metadata.baseCurrency,\n pausePay: payDataRulesetConfig.metadata.pausePay,\n pauseCreditTransfers: payDataRulesetConfig.metadata.pauseCreditTransfers,\n allowOwnerMinting: payDataRulesetConfig.metadata.allowOwnerMinting,\n allowSetCustomToken: false,\n allowTerminalMigration: payDataRulesetConfig.metadata.allowTerminalMigration,\n allowSetTerminals: payDataRulesetConfig.metadata.allowSetTerminals,\n allowSetController: payDataRulesetConfig.metadata.allowSetController,\n allowAddAccountingContext: payDataRulesetConfig.metadata.allowAddAccountingContext,\n allowAddPriceFeed: payDataRulesetConfig.metadata.allowAddPriceFeed,\n allowCrosschainSuckerExtension: payDataRulesetConfig.metadata.allowCrosschainSuckerExtension,\n ownerMustSendPayouts: payDataRulesetConfig.metadata.ownerMustSendPayouts,\n holdFees: payDataRulesetConfig.metadata.holdFees,\n useTotalSurplusForRedemptions: payDataRulesetConfig.metadata.useTotalSurplusForRedemptions,\n useDataHookForPay: true,\n useDataHookForRedeem: payDataRulesetConfig.metadata.useDataHookForRedeem,\n dataHook: address(dataHook),\n metadata: payDataRulesetConfig.metadata.metadata\n }),\n splitGroups: payDataRulesetConfig.splitGroups,\n fundAccessLimitGroups: payDataRulesetConfig.fundAccessLimitGroups\n });\n }\n\n // Queue the rulesets.\n return controller.queueRulesetsOf({\n projectId: projectId,\n rulesetConfigurations: rulesetConfigurations,\n memo: queueRulesetsConfig.memo\n });\n }\n}\n" + }, + "src/interfaces/IJB721Hook.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IJBDirectory} from \"@bananapus/core/src/interfaces/IJBDirectory.sol\";\n\ninterface IJB721Hook {\n function DIRECTORY() external view returns (IJBDirectory);\n function METADATA_ID_TARGET() external view returns (address);\n function PROJECT_ID() external view returns (uint256);\n}\n" + }, + "src/interfaces/IJB721TiersHook.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IJBPrices} from \"@bananapus/core/src/interfaces/IJBPrices.sol\";\nimport {IJBRulesets} from \"@bananapus/core/src/interfaces/IJBRulesets.sol\";\n\nimport {IJB721Hook} from \"./IJB721Hook.sol\";\nimport {IJB721TiersHookStore} from \"./IJB721TiersHookStore.sol\";\nimport {IJB721TokenUriResolver} from \"./IJB721TokenUriResolver.sol\";\nimport {JB721InitTiersConfig} from \"../structs/JB721InitTiersConfig.sol\";\nimport {JB721TierConfig} from \"../structs/JB721TierConfig.sol\";\nimport {JB721TiersHookFlags} from \"../structs/JB721TiersHookFlags.sol\";\nimport {JB721TiersMintReservesConfig} from \"../structs/JB721TiersMintReservesConfig.sol\";\nimport {JB721TiersSetDiscountPercentConfig} from \"../structs/JB721TiersSetDiscountPercentConfig.sol\";\n\ninterface IJB721TiersHook is IJB721Hook {\n event AddPayCredits(\n uint256 indexed amount, uint256 indexed newTotalCredits, address indexed account, address caller\n );\n event AddTier(uint256 indexed tierId, JB721TierConfig tier, address caller);\n event Mint(\n uint256 indexed tokenId,\n uint256 indexed tierId,\n address indexed beneficiary,\n uint256 totalAmountPaid,\n address caller\n );\n event MintReservedNft(uint256 indexed tokenId, uint256 indexed tierId, address indexed beneficiary, address caller);\n event RemoveTier(uint256 indexed tierId, address caller);\n event SetBaseUri(string indexed baseUri, address caller);\n event SetContractUri(string indexed uri, address caller);\n event SetDiscountPercent(uint256 indexed tierId, uint256 discountPercent, address caller);\n event SetEncodedIPFSUri(uint256 indexed tierId, bytes32 encodedUri, address caller);\n event SetTokenUriResolver(IJB721TokenUriResolver indexed resolver, address caller);\n event UsePayCredits(\n uint256 indexed amount, uint256 indexed newTotalCredits, address indexed account, address caller\n );\n\n function RULESETS() external view returns (IJBRulesets);\n function STORE() external view returns (IJB721TiersHookStore);\n\n function baseURI() external view returns (string memory);\n function contractURI() external view returns (string memory);\n function firstOwnerOf(uint256 tokenId) external view returns (address);\n function payCreditsOf(address addr) external view returns (uint256);\n function pricingContext() external view returns (uint256, uint256, IJBPrices);\n\n function adjustTiers(JB721TierConfig[] calldata tierDataToAdd, uint256[] calldata tierIdsToRemove) external;\n function initialize(\n uint256 projectId,\n string memory name,\n string memory symbol,\n string memory baseUri,\n IJB721TokenUriResolver tokenUriResolver,\n string memory contractUri,\n JB721InitTiersConfig memory tiersConfig,\n JB721TiersHookFlags memory flags\n )\n external;\n function setDiscountPercentOf(uint256 tierId, uint256 discountPercent) external;\n function setDiscountPercentsOf(JB721TiersSetDiscountPercentConfig[] calldata configs) external;\n function mintFor(uint16[] calldata tierIds, address beneficiary) external returns (uint256[] memory tokenIds);\n function mintPendingReservesFor(JB721TiersMintReservesConfig[] calldata reserveMintConfigs) external;\n function mintPendingReservesFor(uint256 tierId, uint256 count) external;\n function setMetadata(\n string calldata baseUri,\n string calldata contractMetadataUri,\n IJB721TokenUriResolver tokenUriResolver,\n uint256 encodedIPFSUriTierId,\n bytes32 encodedIPFSUri\n )\n external;\n}\n" + }, + "src/interfaces/IJB721TiersHookDeployer.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IJB721TiersHook} from \"./IJB721TiersHook.sol\";\nimport {JBDeploy721TiersHookConfig} from \"../structs/JBDeploy721TiersHookConfig.sol\";\n\ninterface IJB721TiersHookDeployer {\n event HookDeployed(uint256 indexed projectId, IJB721TiersHook hook, address caller);\n\n function deployHookFor(\n uint256 projectId,\n JBDeploy721TiersHookConfig memory deployTiersHookConfig\n )\n external\n returns (IJB721TiersHook hook);\n}\n" + }, + "src/interfaces/IJB721TiersHookProjectDeployer.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IJBDirectory} from \"@bananapus/core/src/interfaces/IJBDirectory.sol\";\nimport {IJBController} from \"@bananapus/core/src/interfaces/IJBController.sol\";\n\nimport {IJB721TiersHook} from \"./IJB721TiersHook.sol\";\nimport {IJB721TiersHookDeployer} from \"./IJB721TiersHookDeployer.sol\";\nimport {JBDeploy721TiersHookConfig} from \"../structs/JBDeploy721TiersHookConfig.sol\";\nimport {JBLaunchProjectConfig} from \"../structs/JBLaunchProjectConfig.sol\";\nimport {JBLaunchRulesetsConfig} from \"../structs/JBLaunchRulesetsConfig.sol\";\nimport {JBQueueRulesetsConfig} from \"../structs/JBQueueRulesetsConfig.sol\";\n\ninterface IJB721TiersHookProjectDeployer {\n function DIRECTORY() external view returns (IJBDirectory);\n function HOOK_DEPLOYER() external view returns (IJB721TiersHookDeployer);\n\n function launchProjectFor(\n address owner,\n JBDeploy721TiersHookConfig memory deployTiersHookConfig,\n JBLaunchProjectConfig memory launchProjectConfig,\n IJBController controller\n )\n external\n returns (uint256 projectId, IJB721TiersHook hook);\n\n function launchRulesetsFor(\n uint256 projectId,\n JBDeploy721TiersHookConfig memory deployTiersHookConfig,\n JBLaunchRulesetsConfig memory launchRulesetsConfig,\n IJBController controller\n )\n external\n returns (uint256 rulesetId, IJB721TiersHook hook);\n\n function queueRulesetsOf(\n uint256 projectId,\n JBDeploy721TiersHookConfig memory deployTiersHookConfig,\n JBQueueRulesetsConfig memory queueRulesetsConfig,\n IJBController controller\n )\n external\n returns (uint256 rulesetId, IJB721TiersHook hook);\n}\n" + }, + "src/interfaces/IJB721TiersHookStore.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IJB721TokenUriResolver} from \"./IJB721TokenUriResolver.sol\";\nimport {JB721Tier} from \"../structs/JB721Tier.sol\";\nimport {JB721TierConfig} from \"../structs/JB721TierConfig.sol\";\nimport {JB721TiersHookFlags} from \"../structs/JB721TiersHookFlags.sol\";\n\ninterface IJB721TiersHookStore {\n event CleanTiers(address indexed hook, address caller);\n\n function balanceOf(address hook, address owner) external view returns (uint256);\n function defaultReserveBeneficiaryOf(address hook) external view returns (address);\n function encodedIPFSUriOf(address hook, uint256 tierId) external view returns (bytes32);\n function encodedTierIPFSUriOf(address hook, uint256 tokenId) external view returns (bytes32);\n function flagsOf(address hook) external view returns (JB721TiersHookFlags memory);\n function isTierRemoved(address hook, uint256 tierId) external view returns (bool);\n function maxTierIdOf(address hook) external view returns (uint256);\n function numberOfBurnedFor(address hook, uint256 tierId) external view returns (uint256);\n function numberOfPendingReservesFor(address hook, uint256 tierId) external view returns (uint256);\n function numberOfReservesMintedFor(address hook, uint256 tierId) external view returns (uint256);\n function redemptionWeightOf(address hook, uint256[] calldata tokenIds) external view returns (uint256 weight);\n function reserveBeneficiaryOf(address hook, uint256 tierId) external view returns (address);\n function tierBalanceOf(address hook, address owner, uint256 tier) external view returns (uint256);\n function tierIdOfToken(uint256 tokenId) external pure returns (uint256);\n function tierOf(address hook, uint256 id, bool includeResolvedUri) external view returns (JB721Tier memory tier);\n function tierOfTokenId(\n address hook,\n uint256 tokenId,\n bool includeResolvedUri\n )\n external\n view\n returns (JB721Tier memory tier);\n\n function tiersOf(\n address hook,\n uint256[] calldata categories,\n bool includeResolvedUri,\n uint256 startingSortIndex,\n uint256 size\n )\n external\n view\n returns (JB721Tier[] memory tiers);\n\n function tierVotingUnitsOf(address hook, address account, uint256 tierId) external view returns (uint256 units);\n function tokenUriResolverOf(address hook) external view returns (IJB721TokenUriResolver);\n function totalRedemptionWeight(address hook) external view returns (uint256 weight);\n function totalSupplyOf(address hook) external view returns (uint256);\n function votingUnitsOf(address hook, address account) external view returns (uint256 units);\n\n function cleanTiers(address hook) external;\n function recordAddTiers(JB721TierConfig[] calldata tierData) external returns (uint256[] memory tierIds);\n function recordBurn(uint256[] calldata tokenIds) external;\n function recordFlags(JB721TiersHookFlags calldata flag) external;\n function recordMint(\n uint256 amount,\n uint16[] calldata tierIds,\n bool isOwnerMint\n )\n external\n returns (uint256[] memory tokenIds, uint256 leftoverAmount);\n function recordMintReservesFor(uint256 tierId, uint256 count) external returns (uint256[] memory tokenIds);\n function recordRemoveTierIds(uint256[] calldata tierIds) external;\n function recordSetEncodedIPFSUriOf(uint256 tierId, bytes32 encodedIPFSUri) external;\n function recordSetDiscountPercentOf(uint256 tierId, uint256 discountPercent) external;\n function recordSetTokenUriResolver(IJB721TokenUriResolver resolver) external;\n function recordTransferForTier(uint256 tierId, address from, address to) external;\n}\n" + }, + "src/interfaces/IJB721TokenUriResolver.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface IJB721TokenUriResolver {\n function tokenUriOf(address nft, uint256 tokenId) external view returns (string memory tokenUri);\n}\n" + }, + "src/structs/JB721InitTiersConfig.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IJBPrices} from \"@bananapus/core/src/interfaces/IJBPrices.sol\";\n\nimport {JB721TierConfig} from \"./JB721TierConfig.sol\";\n\n/// @notice Config to initialize a `JB721TiersHook` with tiers and price data.\n/// @dev The `tiers` must be sorted by price (from least to greatest).\n/// @custom:member tiers The tiers to initialize the hook with.\n/// @custom:member currency The currency that the tier prices are denoted in. See `JBPrices`.\n/// @custom:member decimals The number of decimals in the fixed point tier prices.\n/// @custom:member prices A contract that exposes price feeds that can be used to calculate prices in different\n/// currencies. To only accept payments in `currency`, set `prices` to the zero address. See `JBPrices`.\nstruct JB721InitTiersConfig {\n JB721TierConfig[] tiers;\n uint32 currency;\n uint8 decimals;\n IJBPrices prices;\n}\n" + }, + "src/structs/JB721Tier.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\n/// @custom:member id The tier's ID.\n/// @custom:member price The price to buy an NFT in this tier, in terms of the currency in its `JBInitTiersConfig`.\n/// @custom:member remainingSupply The remaining number of NFTs which can be minted from this tier.\n/// @custom:member initialSupply The total number of NFTs which can be minted from this tier.\n/// @custom:member votingUnits The number of votes that each NFT in this tier gets.\n/// @custom:member reserveFrequency The frequency at which an extra NFT is minted for the `reserveBeneficiary` from this\n/// tier. With a `reserveFrequency` of 5, an extra NFT will be minted for the `reserveBeneficiary` for every 5 NFTs\n/// purchased.\n/// @custom:member reserveBeneficiary The address which receives any reserve NFTs from this tier.\n/// @custom:member encodedIPFSUri The IPFS URI to use for each NFT in this tier.\n/// @custom:member category The category that NFTs in this tier belongs to. Used to group NFT tiers.\n/// @custom:member discountPercent The discount that should be applied to the tier.\n/// @custom:member allowOwnerMint A boolean indicating whether the contract's owner can mint NFTs from this tier\n/// on-demand.\n/// @custom:member cannotBeRemoved A boolean indicating whether attempts to remove this tier will revert.\n/// @custom:member cannotIncreaseDiscountPercent If the tier cannot have its discount increased.\n/// @custom:member transfersPausable A boolean indicating whether transfers for NFTs in tier can be paused.\n/// @custom:member resolvedUri A resolved token URI for NFTs in this tier. Only available if the NFT this tier belongs\n/// to has a resolver.\nstruct JB721Tier {\n uint32 id;\n uint104 price;\n uint32 remainingSupply;\n uint32 initialSupply;\n uint104 votingUnits;\n uint16 reserveFrequency;\n address reserveBeneficiary;\n bytes32 encodedIPFSUri;\n uint24 category;\n uint8 discountPercent;\n bool allowOwnerMint;\n bool transfersPausable;\n bool cannotBeRemoved;\n bool cannotIncreaseDiscountPercent;\n string resolvedUri;\n}\n" + }, + "src/structs/JB721TierConfig.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\n/// @notice Config for a single NFT tier within a `JB721TiersHook`.\n/// @custom:member price The price to buy an NFT in this tier, in terms of the currency in its `JBInitTiersConfig`.\n/// @custom:member initialSupply The total number of NFTs which can be minted from this tier.\n/// @custom:member votingUnits The number of votes that each NFT in this tier gets if `useVotingUnits` is true.\n/// @custom:member reserveFrequency The frequency at which an extra NFT is minted for the `reserveBeneficiary` from this\n/// tier. With a `reserveFrequency` of 5, an extra NFT will be minted for the `reserveBeneficiary` for every 5 NFTs\n/// purchased.\n/// @custom:member reserveBeneficiary The address which receives any reserve NFTs from this tier. Overrides the default\n/// reserve beneficiary if one is set.\n/// @custom:member encodedIPFSUri The IPFS URI to use for each NFT in this tier.\n/// @custom:member category The category that NFTs in this tier belongs to. Used to group NFT tiers.\n/// @custom:member discountPercent The discount that should be applied to the tier.\n/// @custom:member allowOwnerMint A boolean indicating whether the contract's owner can mint NFTs from this tier\n/// on-demand.\n/// @custom:member useReserveBeneficiaryAsDefault A boolean indicating whether this tier's `reserveBeneficiary` should\n/// be stored as the default beneficiary for all tiers.\n/// @custom:member transfersPausable A boolean indicating whether transfers for NFTs in tier can be paused.\n/// @custom:member useVotingUnits A boolean indicating whether the `votingUnits` should be used to calculate voting\n/// power. If `useVotingUnits` is false, voting power is based on the tier's price.\n/// @custom:member cannotBeRemoved If the tier cannot be removed once added.\n/// @custom:member cannotIncreaseDiscount If the tier cannot have its discount increased.\nstruct JB721TierConfig {\n uint104 price;\n uint32 initialSupply;\n uint32 votingUnits;\n uint16 reserveFrequency;\n address reserveBeneficiary;\n bytes32 encodedIPFSUri;\n uint24 category;\n uint8 discountPercent;\n bool allowOwnerMint;\n bool useReserveBeneficiaryAsDefault;\n bool transfersPausable;\n bool useVotingUnits;\n bool cannotBeRemoved;\n bool cannotIncreaseDiscountPercent;\n}\n" + }, + "src/structs/JB721TiersHookFlags.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\n/// @custom:member noNewTiersWithReserves A boolean indicating whether attempts to add new tiers with a non-zero\n/// `reserveFrequency` will revert.\n/// @custom:member noNewTiersWithVotes A boolean indicating whether attempts to add new tiers with non-zero\n/// `votingUnits` will revert.\n/// @custom:member noNewTiersWithOwnerMinting A boolean indicating whether attempts to add new tiers with\n/// `allowOwnerMint` set to true will revert.\n/// @custom:member preventOverspending A boolean indicating whether payments attempting to spend more than the price of\n/// the NFTs being minted will revert.\nstruct JB721TiersHookFlags {\n bool noNewTiersWithReserves;\n bool noNewTiersWithVotes;\n bool noNewTiersWithOwnerMinting;\n bool preventOverspending;\n}\n" + }, + "src/structs/JB721TiersMintReservesConfig.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\n/// @custom:member tierId The ID of the tier to mint from.\n/// @custom:member count The number of NFTs to mint from that tier.\nstruct JB721TiersMintReservesConfig {\n uint32 tierId;\n uint16 count;\n}\n" + }, + "src/structs/JB721TiersSetDiscountPercentConfig.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\n/// @custom:member tierId The ID of the tier to set the discount percent for.\n/// @custom:member discountPercent The discount percent to set for the tier.\nstruct JB721TiersSetDiscountPercentConfig {\n uint32 tierId;\n uint16 discountPercent;\n}\n" + }, + "src/structs/JBDeploy721TiersHookConfig.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {JB721InitTiersConfig} from \"./JB721InitTiersConfig.sol\";\nimport {JB721TiersHookFlags} from \"./JB721TiersHookFlags.sol\";\nimport {IJB721TokenUriResolver} from \"../interfaces/IJB721TokenUriResolver.sol\";\n\n/// @custom:member name The NFT collection's name.\n/// @custom:member symbol The NFT collection's symbol.\n/// @custom:member baseUri The URI to use as a base for full NFT URIs.\n/// @custom:member tokenUriResolver The contract responsible for resolving the URI for each NFT.\n/// @custom:member contractUri The URI where this contract's metadata can be found.\n/// @custom:member tiersConfig The NFT tiers and pricing config to launch the hook with.\n/// @custom:member reserveBeneficiary The default reserved beneficiary for all tiers.\n/// @custom:member flags A set of boolean options to configure the hook with.\nstruct JBDeploy721TiersHookConfig {\n string name;\n string symbol;\n string baseUri;\n IJB721TokenUriResolver tokenUriResolver;\n string contractUri;\n JB721InitTiersConfig tiersConfig;\n address reserveBeneficiary;\n JB721TiersHookFlags flags;\n}\n" + }, + "src/structs/JBLaunchProjectConfig.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {JBTerminalConfig} from \"@bananapus/core/src/structs/JBTerminalConfig.sol\";\n\nimport {JBPayDataHookRulesetConfig} from \"./JBPayDataHookRulesetConfig.sol\";\n\n/// @custom:member projectUri Metadata URI to associate with the project. This can be updated any time by the owner of\n/// the project.\n/// @custom:member rulesetConfigurations The ruleset configurations to queue.\n/// @custom:member terminalConfigurations The terminal configurations to add for the project.\n/// @custom:member memo A memo to pass along to the emitted event.\nstruct JBLaunchProjectConfig {\n string projectUri;\n JBPayDataHookRulesetConfig[] rulesetConfigurations;\n JBTerminalConfig[] terminalConfigurations;\n string memo;\n}\n" + }, + "src/structs/JBLaunchRulesetsConfig.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {JBTerminalConfig} from \"@bananapus/core/src/structs/JBTerminalConfig.sol\";\n\nimport {JBPayDataHookRulesetConfig} from \"./JBPayDataHookRulesetConfig.sol\";\n\n/// @custom:member projectId The ID of the project to launch rulesets for.\n/// @custom:member rulesetConfigurations The ruleset configurations to queue.\n/// @custom:member terminalConfigurations The terminal configurations to add for the project.\n/// @custom:member memo A memo to pass along to the emitted event.\nstruct JBLaunchRulesetsConfig {\n uint56 projectId;\n JBPayDataHookRulesetConfig[] rulesetConfigurations;\n JBTerminalConfig[] terminalConfigurations;\n string memo;\n}\n" + }, + "src/structs/JBPayDataHookRulesetConfig.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {IJBRulesetApprovalHook} from \"@bananapus/core/src/interfaces/IJBRulesetApprovalHook.sol\";\nimport {JBFundAccessLimitGroup} from \"@bananapus/core/src/structs/JBFundAccessLimitGroup.sol\";\nimport {JBSplitGroup} from \"@bananapus/core/src/structs/JBSplitGroup.sol\";\n\nimport {JBPayDataHookRulesetMetadata} from \"./JBPayDataHookRulesetMetadata.sol\";\n\n/// @custom:member mustStartAtOrAfter The earliest time the ruleset can start.\n/// @custom:member duration The number of seconds the ruleset lasts for, after which a new ruleset will start. A\n/// duration of 0 means that the ruleset will stay active until the project owner explicitly issues a reconfiguration,\n/// at which point a new ruleset will immediately start with the updated properties. If the duration is greater than 0,\n/// a project owner cannot make changes to a ruleset's parameters while it is active – any proposed changes will apply\n/// to the subsequent ruleset. If no changes are proposed, a ruleset rolls over to another one with the same properties\n/// but new `start` timestamp and a decayed `weight`.\n/// @custom:member weight A fixed point number with 18 decimals that contracts can use to base arbitrary calculations\n/// on. For example, payment terminals can use this to determine how many tokens should be minted when a payment is\n/// received.\n/// @custom:member decayPercent A percent by how much the `weight` of the subsequent ruleset should be reduced, if the\n/// project owner hasn't queued the subsequent ruleset with an explicit `weight`. If it's 0, each ruleset will have\n/// equal weight. If the number is 90%, the next ruleset will have a 10% smaller weight. This weight is out of\n/// `JBConstants.MAX_DECAY_PERCENT`.\n/// @custom:member approvalHook An address of a contract that says whether a proposed ruleset should be accepted or\n/// rejected. It\n/// can be used to create rules around how a project owner can change ruleset parameters over time.\n/// @custom:member metadata Metadata specifying the controller-specific parameters that a ruleset can have. These\n/// properties cannot change until the next ruleset starts.\n/// @custom:member splitGroups An array of splits to use for any number of groups while the ruleset is active.\n/// @custom:member fundAccessLimitGroups An array of structs which dictate the amount of funds a project can access from\n/// its balance in each payment terminal while the ruleset is active. Amounts are fixed point numbers using the same\n/// number of decimals as the corresponding terminal. The `payoutLimit` and `surplusAllowance` parameters must fit in\n/// a `uint232`.\nstruct JBPayDataHookRulesetConfig {\n uint48 mustStartAtOrAfter;\n uint32 duration;\n uint112 weight;\n uint32 decayPercent;\n IJBRulesetApprovalHook approvalHook;\n JBPayDataHookRulesetMetadata metadata;\n JBSplitGroup[] splitGroups;\n JBFundAccessLimitGroup[] fundAccessLimitGroups;\n}\n" + }, + "src/structs/JBPayDataHookRulesetMetadata.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\n/// @custom:member reservedPercent The reserved percent of the ruleset. This number is a percentage calculated out of\n/// `JBConstants.MAX_RESERVED_PERCENT`.\n/// @custom:member redemptionRate The redemption rate of the ruleset. This number is a percentage calculated out of\n/// `JBConstants.MAX_REDEMPTION_RATE`.\n/// @custom:member baseCurrency The currency on which to base the ruleset's weight.\n/// @custom:member pausePay A flag indicating if the pay functionality should be paused during the ruleset.\n/// @custom:member pauseCreditTransfers A flag indicating if the project token transfer functionality should be paused\n/// during the funding cycle.\n/// @custom:member allowOwnerMinting A flag indicating if the project owner or an operator with the `MINT_TOKENS`\n/// permission from the owner should be allowed to mint project tokens on demand during this ruleset.\n/// @custom:member allowTerminalMigration A flag indicating if migrating terminals should be allowed during this\n/// ruleset.\n/// @custom:member allowSetTerminals A flag indicating if a project's terminals can be added or removed.\n/// @custom:member allowSetController A flag indicating if a project's controller can be changed.\n/// @custom:member allowAddAccountingContext A flag indicating if a project can add new accounting contexts for its\n/// terminals to use.\n/// @custom:member allowAddPriceFeed A flag indicating if a project can add new price feeds to calculate exchange rates\n/// between its tokens.\n/// @custom:member allowCrosschainSuckerExtension A flag indicating if the crosschain sucker extension should be\n/// allowed during this ruleset.\n/// @custom:member holdFees A flag indicating if fees should be held during this ruleset.\n/// @custom:member useTotalSurplusForRedemptions A flag indicating if redemptions should use the project's balance held\n/// in all terminals instead of the project's local terminal balance from which the redemption is being fulfilled.\n/// @custom:member useDataHookForRedeem A flag indicating if the data hook should be used for redeem transactions during\n/// this ruleset.\n/// @custom:member metadata Metadata of the metadata, up to uint8 in size.\nstruct JBPayDataHookRulesetMetadata {\n uint16 reservedPercent;\n uint16 redemptionRate;\n uint32 baseCurrency;\n bool pausePay;\n bool pauseCreditTransfers;\n bool allowOwnerMinting;\n bool allowTerminalMigration;\n bool allowSetTerminals;\n bool allowSetController;\n bool allowAddAccountingContext;\n bool allowAddPriceFeed;\n bool allowCrosschainSuckerExtension;\n bool ownerMustSendPayouts;\n bool holdFees;\n bool useTotalSurplusForRedemptions;\n bool useDataHookForRedeem;\n uint16 metadata;\n}\n" + }, + "src/structs/JBQueueRulesetsConfig.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {JBPayDataHookRulesetConfig} from \"./JBPayDataHookRulesetConfig.sol\";\n\n/// @custom:member projectId The ID of the project to launch rulesets for.\n/// @custom:member rulesetConfigurations The ruleset configurations to queue.\n/// @custom:member terminalConfigurations The terminal configurations to add for the project.\n/// @custom:member memo A memo to pass along to the emitted event.\nstruct JBQueueRulesetsConfig {\n uint56 projectId;\n JBPayDataHookRulesetConfig[] rulesetConfigurations;\n string memo;\n}\n" + } + } + } +} \ No newline at end of file diff --git a/deployments/nana-721-hook-testnet/arbitrum_sepolia/JB721TiersHookProjectDeployer.json b/deployments/nana-721-hook-testnet/arbitrum_sepolia/JB721TiersHookProjectDeployer.json index 86802e67..c23c6759 100644 --- a/deployments/nana-721-hook-testnet/arbitrum_sepolia/JB721TiersHookProjectDeployer.json +++ b/deployments/nana-721-hook-testnet/arbitrum_sepolia/JB721TiersHookProjectDeployer.json @@ -1,8 +1,8 @@ { "_format": "sphinx-sol-ct-artifact-1", - "merkleRoot": "0xe86112c80b3fdcd00444f5bde04496941e8a62863097b6d607d04af137595289", + "merkleRoot": "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8", "contractName": "JB721TiersHookProjectDeployer", - "address": "0x0Fa5747B59042c9C2A5A9C68C22919fa00468141", + "address": "0x0b41a8Be7E30a01A7367e06601eD204c469eF94D", "abi": [ { "type": "constructor", @@ -522,6 +522,11 @@ "name": "projectId", "type": "uint256", "internalType": "uint256" + }, + { + "name": "hook", + "type": "address", + "internalType": "contract IJB721TiersHook" } ], "stateMutability": "nonpayable" @@ -984,6 +989,11 @@ "name": "rulesetId", "type": "uint256", "internalType": "uint256" + }, + { + "name": "hook", + "type": "address", + "internalType": "contract IJB721TiersHook" } ], "stateMutability": "nonpayable" @@ -1412,6 +1422,11 @@ "name": "rulesetId", "type": "uint256", "internalType": "uint256" + }, + { + "name": "hook", + "type": "address", + "internalType": "contract IJB721TiersHook" } ], "stateMutability": "nonpayable" @@ -1443,85 +1458,85 @@ ] } ], - "solcInputHash": "30cd0d125ed0677fcbbeafa2ca950580", + "solcInputHash": "2fd444c97aa0fa789adae5192c86e854", "receipt": { - "blockHash": "0x1b7420315477fc0038388d0802a1bf7dd9ff0978a772b8550da77db39699c474", - "blockNumber": 81264483, + "blockHash": "0x68578308d1b41296357f995a17893b977d71d2225077121450030ab121a03705", + "blockNumber": 82265790, "contractAddress": null, - "cumulativeGasUsed": "5493230", + "cumulativeGasUsed": "2557695", "from": "0x0c1c9049564269275059032Fb484Aa2e7Ab779af", "gasPrice": "100000000", - "gasUsed": "5493230", - "hash": "0x89bdfa8bd141cb3df03e7a869e8534c1228b17981b84061c4e7d3778b0ff082d", + "gasUsed": "2557695", + "hash": "0xd8689de284c98dd00974040fb157eaa2cffdbc7e7a6fec4592d1c91358aca0b9", "index": 1, "logs": [ { "address": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463", - "blockHash": "0x1b7420315477fc0038388d0802a1bf7dd9ff0978a772b8550da77db39699c474", - "blockNumber": 81264483, + "blockHash": "0x68578308d1b41296357f995a17893b977d71d2225077121450030ab121a03705", + "blockNumber": 82265790, "data": "0x0000000000000000000000000000000000000000000000000000000000000000", "index": 0, "topics": [ "0x572f161235911da04685a68c06adf558fc7e4a36909dca394650e0adc19cc93d", "0x0000000000000000000000000c1c9049564269275059032fb484aa2e7ab779af", "0x000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c3", - "0x088e1085882cba36c11804b5f9f07ffe1762a3e7cff72210b9cebbca395df1fd" + "0x52d5a4ad8564944a8323a31087a524dd5ec8a4eaa436887d7572720ba83a7bdb" ], - "transactionHash": "0x89bdfa8bd141cb3df03e7a869e8534c1228b17981b84061c4e7d3778b0ff082d", + "transactionHash": "0xd8689de284c98dd00974040fb157eaa2cffdbc7e7a6fec4592d1c91358aca0b9", "transactionIndex": 1 }, { "address": "0x94BBb774520C1E0Bd2aFb9b3B63cc11102ED7A7B", - "blockHash": "0x1b7420315477fc0038388d0802a1bf7dd9ff0978a772b8550da77db39699c474", - "blockNumber": 81264483, + "blockHash": "0x68578308d1b41296357f995a17893b977d71d2225077121450030ab121a03705", + "blockNumber": 82265790, "data": "0x", "index": 1, "topics": [ "0x6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8", "0x000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c3" ], - "transactionHash": "0x89bdfa8bd141cb3df03e7a869e8534c1228b17981b84061c4e7d3778b0ff082d", + "transactionHash": "0xd8689de284c98dd00974040fb157eaa2cffdbc7e7a6fec4592d1c91358aca0b9", "transactionIndex": 1 }, { "address": "0xcd414DF3f7b7dA1F867fF6B5499879308087F0c3", - "blockHash": "0x1b7420315477fc0038388d0802a1bf7dd9ff0978a772b8550da77db39699c474", - "blockNumber": 81264483, - "data": "0x0000000000000000000000000000000000000000000000000000000000000004", + "blockHash": "0x68578308d1b41296357f995a17893b977d71d2225077121450030ab121a03705", + "blockNumber": 82265790, + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", "index": 2, "topics": [ "0xa65fb05c5808f5f389d72edeaf719ce38f4cc55c1f69ca3cbfb31c21501caa07", - "0xe86112c80b3fdcd00444f5bde04496941e8a62863097b6d607d04af137595289" + "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8" ], - "transactionHash": "0x89bdfa8bd141cb3df03e7a869e8534c1228b17981b84061c4e7d3778b0ff082d", + "transactionHash": "0xd8689de284c98dd00974040fb157eaa2cffdbc7e7a6fec4592d1c91358aca0b9", "transactionIndex": 1 }, { "address": "0xcd414DF3f7b7dA1F867fF6B5499879308087F0c3", - "blockHash": "0x1b7420315477fc0038388d0802a1bf7dd9ff0978a772b8550da77db39699c474", - "blockNumber": 81264483, + "blockHash": "0x68578308d1b41296357f995a17893b977d71d2225077121450030ab121a03705", + "blockNumber": 82265790, "data": "0x", "index": 3, "topics": [ "0x4383d976757d67ca920616be0b6430a681ea9d3dcce8d6d61d4603ca4a9bff63", - "0xe86112c80b3fdcd00444f5bde04496941e8a62863097b6d607d04af137595289" + "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8" ], - "transactionHash": "0x89bdfa8bd141cb3df03e7a869e8534c1228b17981b84061c4e7d3778b0ff082d", + "transactionHash": "0xd8689de284c98dd00974040fb157eaa2cffdbc7e7a6fec4592d1c91358aca0b9", "transactionIndex": 1 } ], - "logsBloom": "0x00000000000010000400000000080000000000000000000000080000000000000080000000000000000000000040020000100000000000000020000000000000000200000000210000000000000000000010000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000004000000000000000000100000000000000000000008000000000000000000010004000800000000000000002000000002200000000000000100002000004000000000002000000008000000000000000040000000000000000000000000000000000000000000008000000000000000200000000000080000000000008000000", + "logsBloom": "0x00000000000010000000000000080000000000000000000000000000000000000080000000000000000000000040020000100000000000000020000000000000000000000000220000000000000000000010000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000004000000000000000000100000000000000000000008000000000000800000000004000800000000000000002000000002200000000000000100002000004000000000002000000000000000000000000040000000000000000000000000000010000000000000008000010000000000240000040000080000000000008000000", "status": 1, "to": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463" }, - "metadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IJBDirectory\",\"name\":\"directory\",\"type\":\"address\"},{\"internalType\":\"contract IJBPermissions\",\"name\":\"permissions\",\"type\":\"address\"},{\"internalType\":\"contract IJB721TiersHookDeployer\",\"name\":\"hookDeployer\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"permissionId\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBPermissioned_Unauthorized\"},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DIRECTORY\",\"outputs\":[{\"internalType\":\"contract IJBDirectory\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"HOOK_DEPLOYER\",\"outputs\":[{\"internalType\":\"contract IJB721TiersHookDeployer\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"PERMISSIONS\",\"outputs\":[{\"internalType\":\"contract IJBPermissions\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"struct JBDeploy721TiersHookConfig\",\"name\":\"deployTiersHookConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"contract IJB721TokenUriResolver\",\"name\":\"tokenUriResolver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"},{\"internalType\":\"struct JB721InitTiersConfig\",\"name\":\"tiersConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JB721TierConfig[]\",\"name\":\"tiers\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"votingUnits\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useReserveBeneficiaryAsDefault\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useVotingUnits\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotIncreaseDiscountPercent\",\"type\":\"bool\"}]},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"contract IJBPrices\",\"name\":\"prices\",\"type\":\"address\"}]},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"struct JB721TiersHookFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"noNewTiersWithReserves\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithVotes\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"preventOverspending\",\"type\":\"bool\"}]}]},{\"internalType\":\"struct JBLaunchProjectConfig\",\"name\":\"launchProjectConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"projectUri\",\"type\":\"string\"},{\"internalType\":\"struct JBPayDataHookRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"decayPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBPayDataHookRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"redemptionRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowCrosschainSuckerExtension\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useTotalSurplusForRedemptions\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForRedeem\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"struct JBTerminalConfig[]\",\"name\":\"terminalConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"contract IJBTerminal\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"struct JBAccountingContext[]\",\"name\":\"accountingContextsToAccept\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}]},{\"internalType\":\"contract IJBController\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"launchProjectFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBDeploy721TiersHookConfig\",\"name\":\"deployTiersHookConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"contract IJB721TokenUriResolver\",\"name\":\"tokenUriResolver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"},{\"internalType\":\"struct JB721InitTiersConfig\",\"name\":\"tiersConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JB721TierConfig[]\",\"name\":\"tiers\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"votingUnits\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useReserveBeneficiaryAsDefault\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useVotingUnits\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotIncreaseDiscountPercent\",\"type\":\"bool\"}]},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"contract IJBPrices\",\"name\":\"prices\",\"type\":\"address\"}]},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"struct JB721TiersHookFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"noNewTiersWithReserves\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithVotes\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"preventOverspending\",\"type\":\"bool\"}]}]},{\"internalType\":\"struct JBLaunchRulesetsConfig\",\"name\":\"launchRulesetsConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"struct JBPayDataHookRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"decayPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBPayDataHookRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"redemptionRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowCrosschainSuckerExtension\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useTotalSurplusForRedemptions\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForRedeem\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"struct JBTerminalConfig[]\",\"name\":\"terminalConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"contract IJBTerminal\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"struct JBAccountingContext[]\",\"name\":\"accountingContextsToAccept\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}]},{\"internalType\":\"contract IJBController\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"launchRulesetsFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rulesetId\",\"type\":\"uint256\"}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBDeploy721TiersHookConfig\",\"name\":\"deployTiersHookConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"contract IJB721TokenUriResolver\",\"name\":\"tokenUriResolver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"},{\"internalType\":\"struct JB721InitTiersConfig\",\"name\":\"tiersConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JB721TierConfig[]\",\"name\":\"tiers\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"votingUnits\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useReserveBeneficiaryAsDefault\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useVotingUnits\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotIncreaseDiscountPercent\",\"type\":\"bool\"}]},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"contract IJBPrices\",\"name\":\"prices\",\"type\":\"address\"}]},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"struct JB721TiersHookFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"noNewTiersWithReserves\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithVotes\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"preventOverspending\",\"type\":\"bool\"}]}]},{\"internalType\":\"struct JBQueueRulesetsConfig\",\"name\":\"queueRulesetsConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"struct JBPayDataHookRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"decayPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBPayDataHookRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"redemptionRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowCrosschainSuckerExtension\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useTotalSurplusForRedemptions\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForRedeem\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}]},{\"internalType\":\"contract IJBController\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"queueRulesetsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rulesetId\",\"type\":\"uint256\"}]}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"directory\":\"The directory of terminals and controllers for projects.\",\"hookDeployer\":\"The 721 tiers hook deployer.\",\"permissions\":\"A contract storing permissions.\"}},\"launchProjectFor(address,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(string,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"params\":{\"controller\":\"The controller that the project's rulesets will be queued with.\",\"deployTiersHookConfig\":\"Configuration which dictates the behavior of the 721 tiers hook which is being deployed.\",\"launchProjectConfig\":\"Configuration which dictates the behavior of the project which is being launched.\",\"owner\":\"The address to set as the owner of the project. The ERC-721 which confers this project's ownership will be sent to this address.\"},\"returns\":{\"projectId\":\"The ID of the newly launched project.\"}},\"launchRulesetsFor(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"details\":\"Only a project's owner or an operator with the `QUEUE_RULESETS` permission can launch its rulesets.\",\"params\":{\"controller\":\"The controller that the project's rulesets will be queued with.\",\"deployTiersHookConfig\":\"Configuration which dictates the behavior of the 721 tiers hook which is being deployed.\",\"launchRulesetsConfig\":\"Configuration which dictates the project's new rulesets.\",\"projectId\":\"The ID of the project that rulesets are being launched for.\"},\"returns\":{\"rulesetId\":\"The ID of the successfully created ruleset.\"}},\"queueRulesetsOf(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],string),address)\":{\"details\":\"Only a project's owner or an operator with the `QUEUE_RULESETS` permission can queue its rulesets.\",\"params\":{\"controller\":\"The controller that the project's rulesets will be queued with.\",\"deployTiersHookConfig\":\"Configuration which dictates the behavior of the 721 tiers hook which is being deployed.\",\"projectId\":\"The ID of the project that rulesets are being queued for.\",\"queueRulesetsConfig\":\"Configuration which dictates the project's newly queued rulesets.\"},\"returns\":{\"rulesetId\":\"The ID of the successfully created ruleset.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DIRECTORY()\":{\"notice\":\"The directory of terminals and controllers for projects.\"},\"HOOK_DEPLOYER()\":{\"notice\":\"The 721 tiers hook deployer.\"},\"PERMISSIONS()\":{\"notice\":\"A contract storing permissions.\"},\"launchProjectFor(address,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(string,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"notice\":\"Launches a new project with a 721 tiers hook attached.\"},\"launchRulesetsFor(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"notice\":\"Launches rulesets for a project with an attached 721 tiers hook.\"},\"queueRulesetsOf(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],string),address)\":{\"notice\":\"Queues rulesets for a project with an attached 721 tiers hook.\"}},\"version\":1}},\"settings\":{\"remappings\":[\"@bananapus/=node_modules/@bananapus/\",\"@chainlink/=node_modules/@chainlink/\",\"@eth-optimism/=node_modules/@eth-optimism/\",\"@openzeppelin/=node_modules/@openzeppelin/\",\"@prb/=node_modules/@prb/\",\"@scroll-tech/=node_modules/@scroll-tech/\",\"@sphinx-labs/contracts/=node_modules/@sphinx-labs/contracts/contracts/foundry/\",\"@uniswap/=node_modules/@uniswap/\",\"ds-test/=lib/forge-std/lib/ds-test/src/\",\"forge-std/=lib/forge-std/src/\",\"hardhat/=node_modules/hardhat/\",\"solmate/=node_modules/solmate/\",\"sphinx/=lib/sphinx/packages/contracts/contracts/forge-std/src/\"],\"optimizer\":{\"enabled\":true,\"runs\":800},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"compilationTarget\":{\"src/JB721TiersHookProjectDeployer.sol\":\"JB721TiersHookProjectDeployer\"},\"evmVersion\":\"paris\",\"libraries\":{}},\"sources\":{\"node_modules/@bananapus/core/src/abstract/JBPermissioned.sol\":{\"keccak256\":\"0xbaaa61c6aa043522617d3c1a86960c23b9978ee2a6c9d593b00beeeb6ce64423\",\"urls\":[\"bzz-raw://09beed8608e02ce9dbf28814309aaf62c9eec67e0701a26113bdbb4cbae56c42\",\"dweb:/ipfs/QmZrHFnpjX9uBzbFrSjqQgQBkvpJ1ZyvjtT9RfneNGv32S\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/enums/JBApprovalStatus.sol\":{\"keccak256\":\"0x61c69b6bac7d24b566d87cda23a77e4ca9cdb87200b106aba8534cb9a0973e33\",\"urls\":[\"bzz-raw://6a9ca7249de76f77a8252eefe6bd1b63d47952f25a2acfa2c8db967cdff4470c\",\"dweb:/ipfs/QmaxSxptRQNj8bNy96EreENmrnRWdKmhyihBcxyWzBX5BN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBController.sol\":{\"keccak256\":\"0xf577428966a4db4ca17fb73abf2ff2e21cc0e231df2d7247bf410f926d6cb5f7\",\"urls\":[\"bzz-raw://7c1d847382f731b8c464b55ead0ed5c517aa3fa606aaf78b7881aab18108d504\",\"dweb:/ipfs/QmXW3DpPgjYw33A8bMxJFRVZRYjCnWTp28M8sSdPHbDq7E\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBDirectory.sol\":{\"keccak256\":\"0xcb97db460d2948a7f51c660fe0d1b1749047a419027711c476b86ad3573534c5\",\"urls\":[\"bzz-raw://a909c7a3d471054537894dca827e6e018e92ac25299b43026e5b1e335ec4de68\",\"dweb:/ipfs/QmU1GT3F8PNMjSiPPP5cSLLofefHYFJXnywMCdqqM9xUeh\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBDirectoryAccessControl.sol\":{\"keccak256\":\"0x1ea768919979d9f625920c05a5e633739febc822ce14b1e4724d739b19c10fb8\",\"urls\":[\"bzz-raw://7c5391a510bd610a97978245b7306d8d21c79d7c45c15f590ba9b603ea751154\",\"dweb:/ipfs/QmPSJvVWswqzv3bVq422UhA2BybMsiHoYFWGPp5Jh6Xs6a\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBFundAccessLimits.sol\":{\"keccak256\":\"0xfd8ea4cffd289e7fef6e53b5c8983eb6b941de306517f40c047048d3a8a2ca08\",\"urls\":[\"bzz-raw://2765cdee206f8b1b53874448e2481db001cd3706753190cfc9381318c7a7c41c\",\"dweb:/ipfs/QmQ5UYSadtzrb7BcTR93KnAYKXawdyDUG5HjjASV1zbys5\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPayHook.sol\":{\"keccak256\":\"0x9438866782c652c2942f4d114e35f393cd3c8b0334abce8387eed90bca35e8b2\",\"urls\":[\"bzz-raw://cfd99daf57213f92325aad7d7d16e98476d38e870470e95ba01e3ae3cdecc95d\",\"dweb:/ipfs/QmUKKAVGf7ki8BHksr99tFcRW8APveeB5tNH63ctTbbCW8\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPermissioned.sol\":{\"keccak256\":\"0x5b038d4dee116584e88b230920e56d48e135053e3f7e5642eaea14a775c1dad7\",\"urls\":[\"bzz-raw://19e43102f349fd4a1da1c0943ffb8f2950007fe4bb4bb7e8f74fc142575d091b\",\"dweb:/ipfs/QmXHAt4KzDTdDZgDDefEXH2WKi7NcfkJb9R7nxW5uDqsNp\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPermissions.sol\":{\"keccak256\":\"0x49d2b91a866004af098a6770b28040071885b048b4b50744b12a1e5b212c5e5e\",\"urls\":[\"bzz-raw://089b4dda50be91412ffe1fbe333f78cc894f073c1a7afe469f10a2cee12fbf9e\",\"dweb:/ipfs/QmYPPBZ6HwBa1RNkNGqGcR2xgj4fnWBzrPHHoJG3kZA6AN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPriceFeed.sol\":{\"keccak256\":\"0x4bd84c0f1a5d4729ed709bcddd43f4c50ec4a165ece79780af8dce482ed07d4a\",\"urls\":[\"bzz-raw://62bac4bfb6982fb002f620c77e5c445e62d50241a5aa64a07e51d929f5a42180\",\"dweb:/ipfs/QmWgJUDreVY2BuMX38a1iUUR5kNbMwGnKG3VvurB7oZtuM\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPrices.sol\":{\"keccak256\":\"0xb4d5244daa52aafab0c9b8806b7f973afa6a3b298add5966d586d27b78424cfb\",\"urls\":[\"bzz-raw://a819f74455aaa4f679ded378424702f3992608a640d7f943b19938eb4ff711da\",\"dweb:/ipfs/QmSMGvVTsMW3L5YSUyXTKoEsgNpGEutnq4frEZHuDdeDvz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBProjectUriRegistry.sol\":{\"keccak256\":\"0xc9ab647179d7d0c857fdd881d6ce96f06254739440ed08e85a1c2042218f7c7d\",\"urls\":[\"bzz-raw://8529368f30c98c8d5a69acdbe4ac79e3eeb4afa5a9cd278325c5f2184ef3d50f\",\"dweb:/ipfs/QmfUaozYiAGt1UwBDUEZvon1tEBS5sLPzqpN9dNdjQotPN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBProjects.sol\":{\"keccak256\":\"0x4ae42a9cc29b517b26d2b9b635deb82c16696b777deeca92dfcad33b0f81c0a0\",\"urls\":[\"bzz-raw://1dcbd860e7d7f05232d90c5e9cfd3d01e2ce986ffcdb053473d8a4d387b1a48a\",\"dweb:/ipfs/QmWKWoSJJbVWDumbnzXJBJyXmAacgC97bxMtchh8te41bn\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBRulesetApprovalHook.sol\":{\"keccak256\":\"0x592e95d159494421c6b1bcb362d0cee1df0132921697351304e9cd7af4fbd386\",\"urls\":[\"bzz-raw://5bebfd5fa67c1b6ea16fa2e76e9520e9dfe52a579f48dd94d0c2ec45f78ad178\",\"dweb:/ipfs/QmRUawEGtfYoYSHmHELGhvJoWuMsxLPKtqAXgsrb7fJboP\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBRulesets.sol\":{\"keccak256\":\"0x29b56a91e8cd4d3e718e18cd934eccbc22c668d08dc26adb43c958722497d3ab\",\"urls\":[\"bzz-raw://7ae1a723eaf16809b9bd73cd235985801aff85283976be342416fa301c3b4793\",\"dweb:/ipfs/QmZYSY7C9dPvR5EnT8YCjVSy842dBVP3wZdYQ71wyPkx2F\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBSplitHook.sol\":{\"keccak256\":\"0xeb8dfac7a4b81897a1c3b5d0d853a406bcff33720fb187d5ca5bb3dcc0ba3a12\",\"urls\":[\"bzz-raw://36aaeef6107cfe5b0127e063ea215aac7200f8af02e28a48e61111abd3254688\",\"dweb:/ipfs/QmQ8yQANXnhQCAWBGKsKCDsJ3A8hnTKNg5tyo79GfWXTcV\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBSplits.sol\":{\"keccak256\":\"0x424e6d1189b9ba7a5d441e7675ae09ff893c13c62b9ddde4dd6bc2690e96c6f3\",\"urls\":[\"bzz-raw://7e30ed7ab1daf20ff324aacfef7150a243b5db496eceaf032c7012ccb3c4227d\",\"dweb:/ipfs/QmRj5EZKmDjJy8tpvKbpz8vPSKHR5C9Q5ENe7oSLij4H8M\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBTerminal.sol\":{\"keccak256\":\"0xe440530f1d0cc16578981e1d2e4e13674360c677d19a74a4b08f9f7268c70aee\",\"urls\":[\"bzz-raw://ddea4aeaf523f48a1364a02d2ccb75f3dfd8a2b9af465964e9adf3ce53f4196a\",\"dweb:/ipfs/QmVWhN1Nn9khUN8ctAgh2Ypo2vnFBgDHtDw6S232A6RkFw\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBToken.sol\":{\"keccak256\":\"0xd33757cd3da65a9d66404b7e6ddb7a27b4902885a3498b9db1673c218e9fab2d\",\"urls\":[\"bzz-raw://de28759920dab1db6cfcb4ff2ffae76491be371b791a2a0ec054ff17653872dc\",\"dweb:/ipfs/QmPXnhdxbgoV4dBRJCi9siQYRfrvcJLDtY1rp3H2vtU1Cz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBTokenUriResolver.sol\":{\"keccak256\":\"0xfa5cb00dcd6085d1ef912d071fe73c63f9478a2cd0f9d8bddaf659b6af2d0967\",\"urls\":[\"bzz-raw://282e4e7c342d65f77cde0e9a08fcaf20ef5cf379c7a48b639842c0ffd0b2afb8\",\"dweb:/ipfs/QmbnN3PEQeZaXdPLT75V1J79kMg7KqSMru37RHrL3z8Yf2\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBTokens.sol\":{\"keccak256\":\"0x1348b416ebf501409acc9970d46be89ffd076566001ceff9b96fce1b0b2c405d\",\"urls\":[\"bzz-raw://74327019f5174345afed10d9a60caa9ef908382e131882c27588b13be8364b36\",\"dweb:/ipfs/QmZAqB6hFSymTEbjqHWgE4t9NRose9AJh4etGyWnvDkhJt\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBAccountingContext.sol\":{\"keccak256\":\"0x9c47e048a719f784f601df69a583505432217b9868a0244876d277f84dd1ebdf\",\"urls\":[\"bzz-raw://8565f194b87914da9a02af2e760ae2ed2a9d185c6f11229f7035140776d2fec9\",\"dweb:/ipfs/QmPs2fic8W3F5e5zNRwmGmJFjb3JWGPWJ3YUe5o82nQgEn\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBAfterPayRecordedContext.sol\":{\"keccak256\":\"0xd26c3a774ff38be79064085970454fe2603a23a638c76270d5b1b3829206c3e8\",\"urls\":[\"bzz-raw://3b55dbe3bf1ef625b7ca04efab3de35406e6041d5b3d82c7265469c500e2b702\",\"dweb:/ipfs/QmUdBDo4Lt3mcsFcsXT2mqq3czFwZjQJFPLM89YA2VtD7k\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBCurrencyAmount.sol\":{\"keccak256\":\"0x7f321bbcbd13abfbc8f0d08a5adaaf8ef312db5bb899012fcffb6170fbb962a9\",\"urls\":[\"bzz-raw://bf9301ef1dbb3abda7b492585377617508ba048c6170f21a5e7d2b3c034eb384\",\"dweb:/ipfs/QmcetEFxSYLLNSZzPBpNn3Fc8sFcrFE8A8h12ZSj2tLgxD\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBFundAccessLimitGroup.sol\":{\"keccak256\":\"0x9fdaa8d017b72da25f583700a444a86849df053f7fb8eac874ec5139bcf651e5\",\"urls\":[\"bzz-raw://c8e44c49ee444a98424a0dbeb6897a76a0bf00d88a613f62ac2012afdac754ee\",\"dweb:/ipfs/QmdYkAiRi5bXM1YYNkc7BiqimHSFodMGn1cjHR5hcpm4xH\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBPermissionsData.sol\":{\"keccak256\":\"0xd5a5fe65b1deb40b5cd9c8e05bc1352d0e95f3a18b4986fab7abdc621beb19c7\",\"urls\":[\"bzz-raw://a6141eaa414d3d61de671ae3584b87e98044bf6392cb94d2acd1bb5cc7c19db4\",\"dweb:/ipfs/QmbtvALmburKLRC5fHXscoeZii1N2qQrJAdqarfvSKaKEk\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRuleset.sol\":{\"keccak256\":\"0x03ad7bd257d4ac55ecc42b85156dce1c70eec8572dbf8feb093c033912f305e7\",\"urls\":[\"bzz-raw://9665b4c018cd469f94bec4471222cc9e5fd58ac421a0959f70e72618fe37d55b\",\"dweb:/ipfs/QmSUf6HQv2Ckcoy5tSH1UPdD8vDMerfK29G8kaxmxB3Kow\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRulesetConfig.sol\":{\"keccak256\":\"0x7a57ed3d73bd9457d8e1fb40f5204c364df87cbfdbf42412d5bbc08beabb49c9\",\"urls\":[\"bzz-raw://8b9a83916ee67d32b5f434b35b171c6122bbc4efeaa4fabb8dec2ca4e9e32c6e\",\"dweb:/ipfs/QmNquzUQn6ZvE2wBcMCgru3resV9UNvBWPPetyDChoh8vM\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRulesetMetadata.sol\":{\"keccak256\":\"0x7f49fe89eefe848e6af12aa452bd882430ff35e9dd44e9ff3d7be6911496486c\",\"urls\":[\"bzz-raw://136f3baeb71f8ac1c2721eb94b1d469d35cf3fba82f9138760dde6d451d052ef\",\"dweb:/ipfs/QmVeBaYMS9K3rPfneKiVYnFXbp3X8qxrw4qhN4PmuYHppz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRulesetWithMetadata.sol\":{\"keccak256\":\"0x1bcfadf20488f6df65227f8d4d0fbf9b7539456a2389567f7fe3900d23289bc3\",\"urls\":[\"bzz-raw://0a15c399a71e5373f8c0484c6d6b83521eda31e063a2c53e4c5cec4e74550343\",\"dweb:/ipfs/QmQwi8zkjoTVXbK89NeETYimWCacTrNsesJdpLSvGdqMPX\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBSplit.sol\":{\"keccak256\":\"0x0e1351e80cf9967caee90094712a4fc884a83f07df23a844d8cb33ebcd00721e\",\"urls\":[\"bzz-raw://19d5793c08834f2ec1d6942bd43d05042b0ecc351a57235d748a8f2ff74b6638\",\"dweb:/ipfs/QmUWjyNg7x62KsvMwAzNdpmwqCo5qK5ip9pLdshj9B2Kbf\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBSplitGroup.sol\":{\"keccak256\":\"0x8dc98fa9e730bee8bcc0a8acf1bc4db1c9b0edf307d969c9c9caa4d6b8d856d9\",\"urls\":[\"bzz-raw://66f4306e0e69c82033927952564fd617e7c4b29aa8b165d5b53a0ebe3109ea12\",\"dweb:/ipfs/QmQqN1u7FHAdEtEZNRcKvZwYtXEQVQnLd6FMzHESP7wDtx\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBSplitHookContext.sol\":{\"keccak256\":\"0x1cef82bf434f91d518092ea7e57db4a72ce7654f48a7db9bf44882900b6b6623\",\"urls\":[\"bzz-raw://cc5012008ab7e74cf766fe1c202a23e3a73365356bcf1e0b04ec01baf21b204b\",\"dweb:/ipfs/QmSwJvd6Yrg9XZMhjquBcak5sfUswbR5nPEuJBfpjM54VT\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBTerminalConfig.sol\":{\"keccak256\":\"0x9e31505080d3754b6d7db96095b0545930ef6dbc035b91fcc32fdc76a0e7c2a5\",\"urls\":[\"bzz-raw://f7702ab33a1b713c37e5397a55d8ef089289f4da8034cfe9622cbc69a98c47de\",\"dweb:/ipfs/QmXyiXps4aJyiM7vtDC373QUoqwB4DMETaZzC5cZPJKaAK\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBTokenAmount.sol\":{\"keccak256\":\"0xc61593d33d5ec30e695d382948a1b944d01e29a8f2bfd29f75ecebcdbc7816de\",\"urls\":[\"bzz-raw://8992c1e5fca0c2342ecc0e734dfba6a2a752e4c29184784931d0971e44305051\",\"dweb:/ipfs/QmYNcaW3qeCkgAExUaFTq238fgfJuoYCTwjCn7jm94U4dJ\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/JBOwnable.sol\":{\"keccak256\":\"0x8cb8f41b5c3482f1eb558d49fd56b5487f1dd0ef5c29a068f0638f4fa466aa3e\",\"urls\":[\"bzz-raw://21a9da6e467b117c31eaee30a027207cd07da3311ba830f0b26a2c168ffd9b19\",\"dweb:/ipfs/QmbedU61hLHttGe2aas4zwypBy86K8kqR9fmzW8vhS4oVH\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/JBOwnableOverrides.sol\":{\"keccak256\":\"0xae09b9163b196e10f833966f11f0005001a11792bfa01167f8d693094e024e2b\",\"urls\":[\"bzz-raw://ea26b51472e4180adf37fd6b3e7ec4e4467dbf30dfe56f64a307d882c03a8a14\",\"dweb:/ipfs/QmQmz1HdxUFHYDtgYFEHsPFqTzqa7nBKw9ZCW7Xt8iUN2c\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/interfaces/IJBOwnable.sol\":{\"keccak256\":\"0xbfdca68abf028e9df18b1885b1163fa6a89bfef0878855a1834b382e2fe924b3\",\"urls\":[\"bzz-raw://34e6a3ffd79453942d74a50bed850e7cdd796dad316b6d6be2654ecd6917f62d\",\"dweb:/ipfs/QmeZ2BwJtgomDfQ8K3gJFX9L7HFTuDQJGwYPVbcMEn1xE4\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/struct/JBOwner.sol\":{\"keccak256\":\"0xb2187c4fb303e94814d192284537e4dfac85adecb309f9fa4b2beede63800fad\",\"urls\":[\"bzz-raw://c35989c4f8f77fc8357edf473acd6a223388e24341d67240fd5f66823f595a3b\",\"dweb:/ipfs/QmSFqQ1thNTo7N33TrgPTETtXc29dfgZGeRc7ZGHk1dUGh\"],\"license\":\"MIT\"},\"node_modules/@bananapus/permission-ids/src/JBPermissionIds.sol\":{\"keccak256\":\"0x089932e597c40f1d0f277f8f2acaef065aebcbe8f69012a471b1ead688ccaa47\",\"urls\":[\"bzz-raw://9d9a0a316265d86299e110d56e3f3a1ea9e685b577ef93d6af778e788c8677bb\",\"dweb:/ipfs/QmcHUMAwfdSQknLvPF5N2jT7RM7NnERK9h3kchw18iQqFB\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"],\"license\":\"MIT\"},\"src/JB721TiersHookProjectDeployer.sol\":{\"keccak256\":\"0xd6fea0166c96291b0b4654738d0426f192af6c6e911a936e22b41fab40bc7d7e\",\"urls\":[\"bzz-raw://e90ef39d1c899a46d4e620090b310a46fcb689dc52336cc246ea3d6a2af69521\",\"dweb:/ipfs/QmT5WQhoSVNKGn5dnmJDeaUJVcjt8CSBkDthaRALLRgGdF\"],\"license\":\"MIT\"},\"src/interfaces/IJB721Hook.sol\":{\"keccak256\":\"0xc4c1b2da6354c37e67e4463ca3dc652daf98769a7dc1af5b6e8bc31dc11bdc69\",\"urls\":[\"bzz-raw://583553ab050c7a96dbee7ffe8436a0f345617a816331bba0fb3d1c1e77b39110\",\"dweb:/ipfs/QmXj783jhFVdGzFqpiCgGaNjnmDE2qNGEGE7HidhzGgrSR\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHook.sol\":{\"keccak256\":\"0x1b17153dcb3901a8d9156976ffb20c1047849ad1ce94c3a1934f7ca012b45bb5\",\"urls\":[\"bzz-raw://e86b10609f4ff4279592a7c185c6b202c0ff2572fad40dcbcfab878dbc735daa\",\"dweb:/ipfs/QmSJE6yTqKuA94BKAixiEFRGUUYhwtngsYDW3VCfrbMzKP\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHookDeployer.sol\":{\"keccak256\":\"0xdcf34032c2a22a782b7121e777715766cce471e9e8186cb710865de674d646bf\",\"urls\":[\"bzz-raw://00c19707f9fd04b9393a2081a50d69a14ed37d4a8f689c39219da6379aaacb53\",\"dweb:/ipfs/QmPdJYKrEEJxVYYaoV5rVRhoBuxmBTEH7u3J2TZtom1Sof\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHookProjectDeployer.sol\":{\"keccak256\":\"0x9ec3cdc330019db6a8aeefac543f43054814e5a8a8beed15d51729e94df9ece1\",\"urls\":[\"bzz-raw://20632197d5f24e72999e3af9106fafa3fecbe1bc58c4cebb7cb7cdd73d573959\",\"dweb:/ipfs/QmdpF5NpGzWfCXupszxTjMN616vEGZtsiW35vGmTTxycwX\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHookStore.sol\":{\"keccak256\":\"0x6f3acee1130717bf1ac5c513cb167a8f121a64c047b505e9aced2b23793b79d7\",\"urls\":[\"bzz-raw://9f4dfe3be9e21c8b5446e9d37e699071f9df257a3c7a2fb8a8791e062617acbc\",\"dweb:/ipfs/QmarDks3DcMyHPVsKdj5qpma5ZBMzH8ti92MY38K76hvSA\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TokenUriResolver.sol\":{\"keccak256\":\"0xfa599167098f4459320ec4141a98a17b2dfffbce422baa27d8b4e4530f61ece1\",\"urls\":[\"bzz-raw://8b758b161f4c7b520b2c34b4d91e585e961b8f4ca278eebb91d791f7f2f45140\",\"dweb:/ipfs/QmcD9DF7NJ9QykQpT4KPzm4bs3fkjzukdAUWwdU6Atfw85\"],\"license\":\"MIT\"},\"src/structs/JB721InitTiersConfig.sol\":{\"keccak256\":\"0xff362fcd46992e56996e1b162b129a1d03ca2342a482421f279bd930b7af79dd\",\"urls\":[\"bzz-raw://56a52c0d4461fd1b278789cd31ccc77b5eab9a0d7e2fab5074bae9c8a79d0cb1\",\"dweb:/ipfs/QmagorkFXB4rEq5rfLcoZHu6jtjcMicMBPfVqMQT86xZoB\"],\"license\":\"MIT\"},\"src/structs/JB721Tier.sol\":{\"keccak256\":\"0x99232aa73d5715977332dc7c93b03552a93259e59ae00e86b4ddc200f06adaf1\",\"urls\":[\"bzz-raw://721c0cf10a29fa11677718faafb3a2ecfcb4fbe4e1c09e70a7fac681c80fcc94\",\"dweb:/ipfs/QmSUR77E9PqnpB5kBcKNz2CGBjG9XL9FH57RWVYu3Q7GMR\"],\"license\":\"MIT\"},\"src/structs/JB721TierConfig.sol\":{\"keccak256\":\"0x86e54a0de4deab9d105bf276586aebe256188b193e83eb7a6f6f93e4a29ae9c5\",\"urls\":[\"bzz-raw://04bfcc07d452c26dfc50d3a5eb62df4b3b81e063defd752e0aa5ed049a78eef4\",\"dweb:/ipfs/QmWd5nJHUvZPHxJXkrYCboXaqdtiWWkQG26sNM6qkJuAgD\"],\"license\":\"MIT\"},\"src/structs/JB721TiersHookFlags.sol\":{\"keccak256\":\"0x283d8429f31bd58875c056515aa42abd09c95362bd929e85cfc44a0d92585766\",\"urls\":[\"bzz-raw://9a580b89fe99d9f8e930c58a4d0d63a5ff7c01c79d210af01373d066c9e72ed6\",\"dweb:/ipfs/QmdY1eSGSoTjv4KSdsG4Tm5CzJN6iqk3qTRga5ZWNbejRz\"],\"license\":\"MIT\"},\"src/structs/JB721TiersMintReservesConfig.sol\":{\"keccak256\":\"0x86fe586a05e6d4bc6fab9b68996a7f4b74c5362ca6f24b9d8057ed7e4cd1c5ac\",\"urls\":[\"bzz-raw://0915f17d1f958ab1fe6b214d99ed62f1f858684898c803f1a8a6a557472dd140\",\"dweb:/ipfs/QmUhdnSV8UzkgvbtkYEKHrpyDEmc2aJxW5HQ1gucuxxu5A\"],\"license\":\"MIT\"},\"src/structs/JB721TiersSetDiscountPercentConfig.sol\":{\"keccak256\":\"0x4672eacb6b0cda5e6f5f72ddb91463c52fb90b4df421053e3b40024f19a59954\",\"urls\":[\"bzz-raw://9d8e3a0b35d6b2a6ec66527594263400189b6c766bfd6943c83704380a989aec\",\"dweb:/ipfs/QmUE7NhFWsxjFRzTuRyHJ7oRx3JXD9CnG83t29PjGAhwPR\"],\"license\":\"MIT\"},\"src/structs/JBDeploy721TiersHookConfig.sol\":{\"keccak256\":\"0x0ce457736946394772afe54d575b68a74269cbf37a250de2d27dca6d9dd45005\",\"urls\":[\"bzz-raw://2010a8f6e19354038d3906ddb174f34464c5f341103313a5c4d628aa7732d5a8\",\"dweb:/ipfs/QmU9m18oWtYNV7UHLcW9kdwE3uzoQuGBe6sASvQTk8GZRL\"],\"license\":\"MIT\"},\"src/structs/JBLaunchProjectConfig.sol\":{\"keccak256\":\"0x0a8f87072dd6e5dd7c5cd5af7153172275de7e85625aa4a97da4fed65ad5b029\",\"urls\":[\"bzz-raw://b1d230835bf8fa17e8308d5d2ce4c820c4a719f451a65477f75956e100984047\",\"dweb:/ipfs/QmX6BwoYNJx1SssBLcBoPJBsg2Hv6ZP2uErXUvoMrAaQ71\"],\"license\":\"MIT\"},\"src/structs/JBLaunchRulesetsConfig.sol\":{\"keccak256\":\"0x0088bc7133e3fae1944247370a4eec227aeae8b371534e1d54439499644c0ede\",\"urls\":[\"bzz-raw://31847d92e9eb5e3125f07c23a651c0972e1784f748c4ce9d0c66853ee892c690\",\"dweb:/ipfs/QmRmoXg2MrkUFkMkgKvU7igkHQjhStbbc6CeiHkLCYAn7P\"],\"license\":\"MIT\"},\"src/structs/JBPayDataHookRulesetConfig.sol\":{\"keccak256\":\"0x06fdbc5c40750b8d81e4c079f86a96f5ce922a0ddbb81ddc5a044aa166723f59\",\"urls\":[\"bzz-raw://b810a5768501951e08c46f1907a7f561a49c4e16f339f1679a493fcddd30cc50\",\"dweb:/ipfs/QmfCF85EAdQCnsixXCdkKb5Xz2bL9dqAoDhmiR1QoBo81P\"],\"license\":\"MIT\"},\"src/structs/JBPayDataHookRulesetMetadata.sol\":{\"keccak256\":\"0x087280b3a959933c68ad19acbf07d80f9bbf632d902986c2ff624b6c31a6eeeb\",\"urls\":[\"bzz-raw://a2ddf9483f89b8a9012bc7714db4547b68a0df5fe3bf953e190d2021377f9811\",\"dweb:/ipfs/QmZcs1fuufGwWYy4fW3puX7ZRrribMMzEyEEL7WVCnrMer\"],\"license\":\"MIT\"},\"src/structs/JBQueueRulesetsConfig.sol\":{\"keccak256\":\"0x3ad05bfa31a90070eb4a026a13d508f9a68ca2474c3737bcda97a07307ffa554\",\"urls\":[\"bzz-raw://357f0193da0840e4b012ff1f97c65c8b6f5fea39e323a3777baf2b0625491f12\",\"dweb:/ipfs/QmZkJb8MuZ3wimiV6kry4RMp9ZkUFQA9yhfJDVUWTBWFcq\"],\"license\":\"MIT\"}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IJBDirectory\",\"name\":\"directory\",\"type\":\"address\"},{\"internalType\":\"contract IJBPermissions\",\"name\":\"permissions\",\"type\":\"address\"},{\"internalType\":\"contract IJB721TiersHookDeployer\",\"name\":\"hookDeployer\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"permissionId\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBPermissioned_Unauthorized\"},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DIRECTORY\",\"outputs\":[{\"internalType\":\"contract IJBDirectory\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"HOOK_DEPLOYER\",\"outputs\":[{\"internalType\":\"contract IJB721TiersHookDeployer\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"PERMISSIONS\",\"outputs\":[{\"internalType\":\"contract IJBPermissions\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"struct JBDeploy721TiersHookConfig\",\"name\":\"deployTiersHookConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"contract IJB721TokenUriResolver\",\"name\":\"tokenUriResolver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"},{\"internalType\":\"struct JB721InitTiersConfig\",\"name\":\"tiersConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JB721TierConfig[]\",\"name\":\"tiers\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"votingUnits\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useReserveBeneficiaryAsDefault\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useVotingUnits\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotIncreaseDiscountPercent\",\"type\":\"bool\"}]},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"contract IJBPrices\",\"name\":\"prices\",\"type\":\"address\"}]},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"struct JB721TiersHookFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"noNewTiersWithReserves\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithVotes\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"preventOverspending\",\"type\":\"bool\"}]}]},{\"internalType\":\"struct JBLaunchProjectConfig\",\"name\":\"launchProjectConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"projectUri\",\"type\":\"string\"},{\"internalType\":\"struct JBPayDataHookRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"decayPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBPayDataHookRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"redemptionRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowCrosschainSuckerExtension\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useTotalSurplusForRedemptions\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForRedeem\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"struct JBTerminalConfig[]\",\"name\":\"terminalConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"contract IJBTerminal\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"struct JBAccountingContext[]\",\"name\":\"accountingContextsToAccept\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}]},{\"internalType\":\"contract IJBController\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"launchProjectFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"contract IJB721TiersHook\",\"name\":\"hook\",\"type\":\"address\"}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBDeploy721TiersHookConfig\",\"name\":\"deployTiersHookConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"contract IJB721TokenUriResolver\",\"name\":\"tokenUriResolver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"},{\"internalType\":\"struct JB721InitTiersConfig\",\"name\":\"tiersConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JB721TierConfig[]\",\"name\":\"tiers\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"votingUnits\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useReserveBeneficiaryAsDefault\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useVotingUnits\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotIncreaseDiscountPercent\",\"type\":\"bool\"}]},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"contract IJBPrices\",\"name\":\"prices\",\"type\":\"address\"}]},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"struct JB721TiersHookFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"noNewTiersWithReserves\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithVotes\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"preventOverspending\",\"type\":\"bool\"}]}]},{\"internalType\":\"struct JBLaunchRulesetsConfig\",\"name\":\"launchRulesetsConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"struct JBPayDataHookRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"decayPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBPayDataHookRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"redemptionRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowCrosschainSuckerExtension\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useTotalSurplusForRedemptions\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForRedeem\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"struct JBTerminalConfig[]\",\"name\":\"terminalConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"contract IJBTerminal\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"struct JBAccountingContext[]\",\"name\":\"accountingContextsToAccept\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}]},{\"internalType\":\"contract IJBController\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"launchRulesetsFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rulesetId\",\"type\":\"uint256\"},{\"internalType\":\"contract IJB721TiersHook\",\"name\":\"hook\",\"type\":\"address\"}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBDeploy721TiersHookConfig\",\"name\":\"deployTiersHookConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"contract IJB721TokenUriResolver\",\"name\":\"tokenUriResolver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"},{\"internalType\":\"struct JB721InitTiersConfig\",\"name\":\"tiersConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JB721TierConfig[]\",\"name\":\"tiers\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"votingUnits\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useReserveBeneficiaryAsDefault\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useVotingUnits\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotIncreaseDiscountPercent\",\"type\":\"bool\"}]},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"contract IJBPrices\",\"name\":\"prices\",\"type\":\"address\"}]},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"struct JB721TiersHookFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"noNewTiersWithReserves\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithVotes\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"preventOverspending\",\"type\":\"bool\"}]}]},{\"internalType\":\"struct JBQueueRulesetsConfig\",\"name\":\"queueRulesetsConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"struct JBPayDataHookRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"decayPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBPayDataHookRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"redemptionRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowCrosschainSuckerExtension\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useTotalSurplusForRedemptions\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForRedeem\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}]},{\"internalType\":\"contract IJBController\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"queueRulesetsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rulesetId\",\"type\":\"uint256\"},{\"internalType\":\"contract IJB721TiersHook\",\"name\":\"hook\",\"type\":\"address\"}]}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"directory\":\"The directory of terminals and controllers for projects.\",\"hookDeployer\":\"The 721 tiers hook deployer.\",\"permissions\":\"A contract storing permissions.\"}},\"launchProjectFor(address,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(string,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"params\":{\"controller\":\"The controller that the project's rulesets will be queued with.\",\"deployTiersHookConfig\":\"Configuration which dictates the behavior of the 721 tiers hook which is being deployed.\",\"launchProjectConfig\":\"Configuration which dictates the behavior of the project which is being launched.\",\"owner\":\"The address to set as the owner of the project. The ERC-721 which confers this project's ownership will be sent to this address.\"},\"returns\":{\"hook\":\"The 721 tiers hook that was deployed for the project.\",\"projectId\":\"The ID of the newly launched project.\"}},\"launchRulesetsFor(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"details\":\"Only a project's owner or an operator with the `QUEUE_RULESETS` permission can launch its rulesets.\",\"params\":{\"controller\":\"The controller that the project's rulesets will be queued with.\",\"deployTiersHookConfig\":\"Configuration which dictates the behavior of the 721 tiers hook which is being deployed.\",\"launchRulesetsConfig\":\"Configuration which dictates the project's new rulesets.\",\"projectId\":\"The ID of the project that rulesets are being launched for.\"},\"returns\":{\"hook\":\"The 721 tiers hook that was deployed for the project.\",\"rulesetId\":\"The ID of the successfully created ruleset.\"}},\"queueRulesetsOf(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],string),address)\":{\"details\":\"Only a project's owner or an operator with the `QUEUE_RULESETS` permission can queue its rulesets.\",\"params\":{\"controller\":\"The controller that the project's rulesets will be queued with.\",\"deployTiersHookConfig\":\"Configuration which dictates the behavior of the 721 tiers hook which is being deployed.\",\"projectId\":\"The ID of the project that rulesets are being queued for.\",\"queueRulesetsConfig\":\"Configuration which dictates the project's newly queued rulesets.\"},\"returns\":{\"hook\":\"The 721 tiers hook that was deployed for the project.\",\"rulesetId\":\"The ID of the successfully created ruleset.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DIRECTORY()\":{\"notice\":\"The directory of terminals and controllers for projects.\"},\"HOOK_DEPLOYER()\":{\"notice\":\"The 721 tiers hook deployer.\"},\"PERMISSIONS()\":{\"notice\":\"A contract storing permissions.\"},\"launchProjectFor(address,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(string,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"notice\":\"Launches a new project with a 721 tiers hook attached.\"},\"launchRulesetsFor(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"notice\":\"Launches rulesets for a project with an attached 721 tiers hook.\"},\"queueRulesetsOf(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],string),address)\":{\"notice\":\"Queues rulesets for a project with an attached 721 tiers hook.\"}},\"version\":1}},\"settings\":{\"remappings\":[\"@bananapus/=node_modules/@bananapus/\",\"@chainlink/=node_modules/@chainlink/\",\"@eth-optimism/=node_modules/@eth-optimism/\",\"@openzeppelin/=node_modules/@openzeppelin/\",\"@prb/=node_modules/@prb/\",\"@scroll-tech/=node_modules/@scroll-tech/\",\"@sphinx-labs/contracts/=node_modules/@sphinx-labs/contracts/contracts/foundry/\",\"@uniswap/=node_modules/@uniswap/\",\"ds-test/=lib/forge-std/lib/ds-test/src/\",\"forge-std/=lib/forge-std/src/\",\"hardhat/=node_modules/hardhat/\",\"solmate/=node_modules/solmate/\",\"sphinx/=lib/sphinx/packages/contracts/contracts/forge-std/src/\"],\"optimizer\":{\"enabled\":true,\"runs\":800},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"compilationTarget\":{\"src/JB721TiersHookProjectDeployer.sol\":\"JB721TiersHookProjectDeployer\"},\"evmVersion\":\"paris\",\"libraries\":{}},\"sources\":{\"node_modules/@bananapus/core/src/abstract/JBPermissioned.sol\":{\"keccak256\":\"0xbaaa61c6aa043522617d3c1a86960c23b9978ee2a6c9d593b00beeeb6ce64423\",\"urls\":[\"bzz-raw://09beed8608e02ce9dbf28814309aaf62c9eec67e0701a26113bdbb4cbae56c42\",\"dweb:/ipfs/QmZrHFnpjX9uBzbFrSjqQgQBkvpJ1ZyvjtT9RfneNGv32S\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/enums/JBApprovalStatus.sol\":{\"keccak256\":\"0x61c69b6bac7d24b566d87cda23a77e4ca9cdb87200b106aba8534cb9a0973e33\",\"urls\":[\"bzz-raw://6a9ca7249de76f77a8252eefe6bd1b63d47952f25a2acfa2c8db967cdff4470c\",\"dweb:/ipfs/QmaxSxptRQNj8bNy96EreENmrnRWdKmhyihBcxyWzBX5BN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBController.sol\":{\"keccak256\":\"0xf577428966a4db4ca17fb73abf2ff2e21cc0e231df2d7247bf410f926d6cb5f7\",\"urls\":[\"bzz-raw://7c1d847382f731b8c464b55ead0ed5c517aa3fa606aaf78b7881aab18108d504\",\"dweb:/ipfs/QmXW3DpPgjYw33A8bMxJFRVZRYjCnWTp28M8sSdPHbDq7E\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBDirectory.sol\":{\"keccak256\":\"0xcb97db460d2948a7f51c660fe0d1b1749047a419027711c476b86ad3573534c5\",\"urls\":[\"bzz-raw://a909c7a3d471054537894dca827e6e018e92ac25299b43026e5b1e335ec4de68\",\"dweb:/ipfs/QmU1GT3F8PNMjSiPPP5cSLLofefHYFJXnywMCdqqM9xUeh\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBDirectoryAccessControl.sol\":{\"keccak256\":\"0x1ea768919979d9f625920c05a5e633739febc822ce14b1e4724d739b19c10fb8\",\"urls\":[\"bzz-raw://7c5391a510bd610a97978245b7306d8d21c79d7c45c15f590ba9b603ea751154\",\"dweb:/ipfs/QmPSJvVWswqzv3bVq422UhA2BybMsiHoYFWGPp5Jh6Xs6a\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBFundAccessLimits.sol\":{\"keccak256\":\"0xfd8ea4cffd289e7fef6e53b5c8983eb6b941de306517f40c047048d3a8a2ca08\",\"urls\":[\"bzz-raw://2765cdee206f8b1b53874448e2481db001cd3706753190cfc9381318c7a7c41c\",\"dweb:/ipfs/QmQ5UYSadtzrb7BcTR93KnAYKXawdyDUG5HjjASV1zbys5\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPayHook.sol\":{\"keccak256\":\"0x9438866782c652c2942f4d114e35f393cd3c8b0334abce8387eed90bca35e8b2\",\"urls\":[\"bzz-raw://cfd99daf57213f92325aad7d7d16e98476d38e870470e95ba01e3ae3cdecc95d\",\"dweb:/ipfs/QmUKKAVGf7ki8BHksr99tFcRW8APveeB5tNH63ctTbbCW8\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPermissioned.sol\":{\"keccak256\":\"0x5b038d4dee116584e88b230920e56d48e135053e3f7e5642eaea14a775c1dad7\",\"urls\":[\"bzz-raw://19e43102f349fd4a1da1c0943ffb8f2950007fe4bb4bb7e8f74fc142575d091b\",\"dweb:/ipfs/QmXHAt4KzDTdDZgDDefEXH2WKi7NcfkJb9R7nxW5uDqsNp\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPermissions.sol\":{\"keccak256\":\"0x49d2b91a866004af098a6770b28040071885b048b4b50744b12a1e5b212c5e5e\",\"urls\":[\"bzz-raw://089b4dda50be91412ffe1fbe333f78cc894f073c1a7afe469f10a2cee12fbf9e\",\"dweb:/ipfs/QmYPPBZ6HwBa1RNkNGqGcR2xgj4fnWBzrPHHoJG3kZA6AN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPriceFeed.sol\":{\"keccak256\":\"0x4bd84c0f1a5d4729ed709bcddd43f4c50ec4a165ece79780af8dce482ed07d4a\",\"urls\":[\"bzz-raw://62bac4bfb6982fb002f620c77e5c445e62d50241a5aa64a07e51d929f5a42180\",\"dweb:/ipfs/QmWgJUDreVY2BuMX38a1iUUR5kNbMwGnKG3VvurB7oZtuM\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPrices.sol\":{\"keccak256\":\"0xb4d5244daa52aafab0c9b8806b7f973afa6a3b298add5966d586d27b78424cfb\",\"urls\":[\"bzz-raw://a819f74455aaa4f679ded378424702f3992608a640d7f943b19938eb4ff711da\",\"dweb:/ipfs/QmSMGvVTsMW3L5YSUyXTKoEsgNpGEutnq4frEZHuDdeDvz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBProjectUriRegistry.sol\":{\"keccak256\":\"0xc9ab647179d7d0c857fdd881d6ce96f06254739440ed08e85a1c2042218f7c7d\",\"urls\":[\"bzz-raw://8529368f30c98c8d5a69acdbe4ac79e3eeb4afa5a9cd278325c5f2184ef3d50f\",\"dweb:/ipfs/QmfUaozYiAGt1UwBDUEZvon1tEBS5sLPzqpN9dNdjQotPN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBProjects.sol\":{\"keccak256\":\"0x4ae42a9cc29b517b26d2b9b635deb82c16696b777deeca92dfcad33b0f81c0a0\",\"urls\":[\"bzz-raw://1dcbd860e7d7f05232d90c5e9cfd3d01e2ce986ffcdb053473d8a4d387b1a48a\",\"dweb:/ipfs/QmWKWoSJJbVWDumbnzXJBJyXmAacgC97bxMtchh8te41bn\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBRulesetApprovalHook.sol\":{\"keccak256\":\"0x592e95d159494421c6b1bcb362d0cee1df0132921697351304e9cd7af4fbd386\",\"urls\":[\"bzz-raw://5bebfd5fa67c1b6ea16fa2e76e9520e9dfe52a579f48dd94d0c2ec45f78ad178\",\"dweb:/ipfs/QmRUawEGtfYoYSHmHELGhvJoWuMsxLPKtqAXgsrb7fJboP\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBRulesets.sol\":{\"keccak256\":\"0x29b56a91e8cd4d3e718e18cd934eccbc22c668d08dc26adb43c958722497d3ab\",\"urls\":[\"bzz-raw://7ae1a723eaf16809b9bd73cd235985801aff85283976be342416fa301c3b4793\",\"dweb:/ipfs/QmZYSY7C9dPvR5EnT8YCjVSy842dBVP3wZdYQ71wyPkx2F\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBSplitHook.sol\":{\"keccak256\":\"0xeb8dfac7a4b81897a1c3b5d0d853a406bcff33720fb187d5ca5bb3dcc0ba3a12\",\"urls\":[\"bzz-raw://36aaeef6107cfe5b0127e063ea215aac7200f8af02e28a48e61111abd3254688\",\"dweb:/ipfs/QmQ8yQANXnhQCAWBGKsKCDsJ3A8hnTKNg5tyo79GfWXTcV\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBSplits.sol\":{\"keccak256\":\"0x424e6d1189b9ba7a5d441e7675ae09ff893c13c62b9ddde4dd6bc2690e96c6f3\",\"urls\":[\"bzz-raw://7e30ed7ab1daf20ff324aacfef7150a243b5db496eceaf032c7012ccb3c4227d\",\"dweb:/ipfs/QmRj5EZKmDjJy8tpvKbpz8vPSKHR5C9Q5ENe7oSLij4H8M\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBTerminal.sol\":{\"keccak256\":\"0xe440530f1d0cc16578981e1d2e4e13674360c677d19a74a4b08f9f7268c70aee\",\"urls\":[\"bzz-raw://ddea4aeaf523f48a1364a02d2ccb75f3dfd8a2b9af465964e9adf3ce53f4196a\",\"dweb:/ipfs/QmVWhN1Nn9khUN8ctAgh2Ypo2vnFBgDHtDw6S232A6RkFw\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBToken.sol\":{\"keccak256\":\"0xd33757cd3da65a9d66404b7e6ddb7a27b4902885a3498b9db1673c218e9fab2d\",\"urls\":[\"bzz-raw://de28759920dab1db6cfcb4ff2ffae76491be371b791a2a0ec054ff17653872dc\",\"dweb:/ipfs/QmPXnhdxbgoV4dBRJCi9siQYRfrvcJLDtY1rp3H2vtU1Cz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBTokenUriResolver.sol\":{\"keccak256\":\"0xfa5cb00dcd6085d1ef912d071fe73c63f9478a2cd0f9d8bddaf659b6af2d0967\",\"urls\":[\"bzz-raw://282e4e7c342d65f77cde0e9a08fcaf20ef5cf379c7a48b639842c0ffd0b2afb8\",\"dweb:/ipfs/QmbnN3PEQeZaXdPLT75V1J79kMg7KqSMru37RHrL3z8Yf2\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBTokens.sol\":{\"keccak256\":\"0x1348b416ebf501409acc9970d46be89ffd076566001ceff9b96fce1b0b2c405d\",\"urls\":[\"bzz-raw://74327019f5174345afed10d9a60caa9ef908382e131882c27588b13be8364b36\",\"dweb:/ipfs/QmZAqB6hFSymTEbjqHWgE4t9NRose9AJh4etGyWnvDkhJt\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBAccountingContext.sol\":{\"keccak256\":\"0x9c47e048a719f784f601df69a583505432217b9868a0244876d277f84dd1ebdf\",\"urls\":[\"bzz-raw://8565f194b87914da9a02af2e760ae2ed2a9d185c6f11229f7035140776d2fec9\",\"dweb:/ipfs/QmPs2fic8W3F5e5zNRwmGmJFjb3JWGPWJ3YUe5o82nQgEn\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBAfterPayRecordedContext.sol\":{\"keccak256\":\"0xd26c3a774ff38be79064085970454fe2603a23a638c76270d5b1b3829206c3e8\",\"urls\":[\"bzz-raw://3b55dbe3bf1ef625b7ca04efab3de35406e6041d5b3d82c7265469c500e2b702\",\"dweb:/ipfs/QmUdBDo4Lt3mcsFcsXT2mqq3czFwZjQJFPLM89YA2VtD7k\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBCurrencyAmount.sol\":{\"keccak256\":\"0x7f321bbcbd13abfbc8f0d08a5adaaf8ef312db5bb899012fcffb6170fbb962a9\",\"urls\":[\"bzz-raw://bf9301ef1dbb3abda7b492585377617508ba048c6170f21a5e7d2b3c034eb384\",\"dweb:/ipfs/QmcetEFxSYLLNSZzPBpNn3Fc8sFcrFE8A8h12ZSj2tLgxD\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBFundAccessLimitGroup.sol\":{\"keccak256\":\"0x9fdaa8d017b72da25f583700a444a86849df053f7fb8eac874ec5139bcf651e5\",\"urls\":[\"bzz-raw://c8e44c49ee444a98424a0dbeb6897a76a0bf00d88a613f62ac2012afdac754ee\",\"dweb:/ipfs/QmdYkAiRi5bXM1YYNkc7BiqimHSFodMGn1cjHR5hcpm4xH\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBPermissionsData.sol\":{\"keccak256\":\"0xd5a5fe65b1deb40b5cd9c8e05bc1352d0e95f3a18b4986fab7abdc621beb19c7\",\"urls\":[\"bzz-raw://a6141eaa414d3d61de671ae3584b87e98044bf6392cb94d2acd1bb5cc7c19db4\",\"dweb:/ipfs/QmbtvALmburKLRC5fHXscoeZii1N2qQrJAdqarfvSKaKEk\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRuleset.sol\":{\"keccak256\":\"0x03ad7bd257d4ac55ecc42b85156dce1c70eec8572dbf8feb093c033912f305e7\",\"urls\":[\"bzz-raw://9665b4c018cd469f94bec4471222cc9e5fd58ac421a0959f70e72618fe37d55b\",\"dweb:/ipfs/QmSUf6HQv2Ckcoy5tSH1UPdD8vDMerfK29G8kaxmxB3Kow\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRulesetConfig.sol\":{\"keccak256\":\"0x7a57ed3d73bd9457d8e1fb40f5204c364df87cbfdbf42412d5bbc08beabb49c9\",\"urls\":[\"bzz-raw://8b9a83916ee67d32b5f434b35b171c6122bbc4efeaa4fabb8dec2ca4e9e32c6e\",\"dweb:/ipfs/QmNquzUQn6ZvE2wBcMCgru3resV9UNvBWPPetyDChoh8vM\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRulesetMetadata.sol\":{\"keccak256\":\"0x7f49fe89eefe848e6af12aa452bd882430ff35e9dd44e9ff3d7be6911496486c\",\"urls\":[\"bzz-raw://136f3baeb71f8ac1c2721eb94b1d469d35cf3fba82f9138760dde6d451d052ef\",\"dweb:/ipfs/QmVeBaYMS9K3rPfneKiVYnFXbp3X8qxrw4qhN4PmuYHppz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRulesetWithMetadata.sol\":{\"keccak256\":\"0x1bcfadf20488f6df65227f8d4d0fbf9b7539456a2389567f7fe3900d23289bc3\",\"urls\":[\"bzz-raw://0a15c399a71e5373f8c0484c6d6b83521eda31e063a2c53e4c5cec4e74550343\",\"dweb:/ipfs/QmQwi8zkjoTVXbK89NeETYimWCacTrNsesJdpLSvGdqMPX\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBSplit.sol\":{\"keccak256\":\"0x0e1351e80cf9967caee90094712a4fc884a83f07df23a844d8cb33ebcd00721e\",\"urls\":[\"bzz-raw://19d5793c08834f2ec1d6942bd43d05042b0ecc351a57235d748a8f2ff74b6638\",\"dweb:/ipfs/QmUWjyNg7x62KsvMwAzNdpmwqCo5qK5ip9pLdshj9B2Kbf\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBSplitGroup.sol\":{\"keccak256\":\"0x8dc98fa9e730bee8bcc0a8acf1bc4db1c9b0edf307d969c9c9caa4d6b8d856d9\",\"urls\":[\"bzz-raw://66f4306e0e69c82033927952564fd617e7c4b29aa8b165d5b53a0ebe3109ea12\",\"dweb:/ipfs/QmQqN1u7FHAdEtEZNRcKvZwYtXEQVQnLd6FMzHESP7wDtx\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBSplitHookContext.sol\":{\"keccak256\":\"0x1cef82bf434f91d518092ea7e57db4a72ce7654f48a7db9bf44882900b6b6623\",\"urls\":[\"bzz-raw://cc5012008ab7e74cf766fe1c202a23e3a73365356bcf1e0b04ec01baf21b204b\",\"dweb:/ipfs/QmSwJvd6Yrg9XZMhjquBcak5sfUswbR5nPEuJBfpjM54VT\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBTerminalConfig.sol\":{\"keccak256\":\"0x9e31505080d3754b6d7db96095b0545930ef6dbc035b91fcc32fdc76a0e7c2a5\",\"urls\":[\"bzz-raw://f7702ab33a1b713c37e5397a55d8ef089289f4da8034cfe9622cbc69a98c47de\",\"dweb:/ipfs/QmXyiXps4aJyiM7vtDC373QUoqwB4DMETaZzC5cZPJKaAK\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBTokenAmount.sol\":{\"keccak256\":\"0xc61593d33d5ec30e695d382948a1b944d01e29a8f2bfd29f75ecebcdbc7816de\",\"urls\":[\"bzz-raw://8992c1e5fca0c2342ecc0e734dfba6a2a752e4c29184784931d0971e44305051\",\"dweb:/ipfs/QmYNcaW3qeCkgAExUaFTq238fgfJuoYCTwjCn7jm94U4dJ\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/JBOwnable.sol\":{\"keccak256\":\"0x8cb8f41b5c3482f1eb558d49fd56b5487f1dd0ef5c29a068f0638f4fa466aa3e\",\"urls\":[\"bzz-raw://21a9da6e467b117c31eaee30a027207cd07da3311ba830f0b26a2c168ffd9b19\",\"dweb:/ipfs/QmbedU61hLHttGe2aas4zwypBy86K8kqR9fmzW8vhS4oVH\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/JBOwnableOverrides.sol\":{\"keccak256\":\"0xae09b9163b196e10f833966f11f0005001a11792bfa01167f8d693094e024e2b\",\"urls\":[\"bzz-raw://ea26b51472e4180adf37fd6b3e7ec4e4467dbf30dfe56f64a307d882c03a8a14\",\"dweb:/ipfs/QmQmz1HdxUFHYDtgYFEHsPFqTzqa7nBKw9ZCW7Xt8iUN2c\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/interfaces/IJBOwnable.sol\":{\"keccak256\":\"0xbfdca68abf028e9df18b1885b1163fa6a89bfef0878855a1834b382e2fe924b3\",\"urls\":[\"bzz-raw://34e6a3ffd79453942d74a50bed850e7cdd796dad316b6d6be2654ecd6917f62d\",\"dweb:/ipfs/QmeZ2BwJtgomDfQ8K3gJFX9L7HFTuDQJGwYPVbcMEn1xE4\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/struct/JBOwner.sol\":{\"keccak256\":\"0xb2187c4fb303e94814d192284537e4dfac85adecb309f9fa4b2beede63800fad\",\"urls\":[\"bzz-raw://c35989c4f8f77fc8357edf473acd6a223388e24341d67240fd5f66823f595a3b\",\"dweb:/ipfs/QmSFqQ1thNTo7N33TrgPTETtXc29dfgZGeRc7ZGHk1dUGh\"],\"license\":\"MIT\"},\"node_modules/@bananapus/permission-ids/src/JBPermissionIds.sol\":{\"keccak256\":\"0x089932e597c40f1d0f277f8f2acaef065aebcbe8f69012a471b1ead688ccaa47\",\"urls\":[\"bzz-raw://9d9a0a316265d86299e110d56e3f3a1ea9e685b577ef93d6af778e788c8677bb\",\"dweb:/ipfs/QmcHUMAwfdSQknLvPF5N2jT7RM7NnERK9h3kchw18iQqFB\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"],\"license\":\"MIT\"},\"src/JB721TiersHookProjectDeployer.sol\":{\"keccak256\":\"0xcd7165987797aca8e0fa948e69b77e8b7da1f0ccbb7b487d52cd601b3a9f678e\",\"urls\":[\"bzz-raw://935ad4437be2b3bdeb263718b53adc51a1812e914b03f8a8d720e10b05faaa70\",\"dweb:/ipfs/QmQ85fKayU5cLTCEV4ZfYTTYdJwiZuq1rSNZFAeXsBkRu9\"],\"license\":\"MIT\"},\"src/interfaces/IJB721Hook.sol\":{\"keccak256\":\"0xc4c1b2da6354c37e67e4463ca3dc652daf98769a7dc1af5b6e8bc31dc11bdc69\",\"urls\":[\"bzz-raw://583553ab050c7a96dbee7ffe8436a0f345617a816331bba0fb3d1c1e77b39110\",\"dweb:/ipfs/QmXj783jhFVdGzFqpiCgGaNjnmDE2qNGEGE7HidhzGgrSR\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHook.sol\":{\"keccak256\":\"0x1b17153dcb3901a8d9156976ffb20c1047849ad1ce94c3a1934f7ca012b45bb5\",\"urls\":[\"bzz-raw://e86b10609f4ff4279592a7c185c6b202c0ff2572fad40dcbcfab878dbc735daa\",\"dweb:/ipfs/QmSJE6yTqKuA94BKAixiEFRGUUYhwtngsYDW3VCfrbMzKP\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHookDeployer.sol\":{\"keccak256\":\"0xdcf34032c2a22a782b7121e777715766cce471e9e8186cb710865de674d646bf\",\"urls\":[\"bzz-raw://00c19707f9fd04b9393a2081a50d69a14ed37d4a8f689c39219da6379aaacb53\",\"dweb:/ipfs/QmPdJYKrEEJxVYYaoV5rVRhoBuxmBTEH7u3J2TZtom1Sof\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHookProjectDeployer.sol\":{\"keccak256\":\"0xffcee695bbdf4960b99b905b966ba6225a1909e65397c1f32389e77ec49207d0\",\"urls\":[\"bzz-raw://7aadbb2a046524b164e0886b9deb049823e5b1c92efcf2ad7fd8e22d5a746d51\",\"dweb:/ipfs/QmbhafFJmJ6MUtrSzHqLnshz1PNUz3rgcvB8zif1p8sf7d\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHookStore.sol\":{\"keccak256\":\"0x6f3acee1130717bf1ac5c513cb167a8f121a64c047b505e9aced2b23793b79d7\",\"urls\":[\"bzz-raw://9f4dfe3be9e21c8b5446e9d37e699071f9df257a3c7a2fb8a8791e062617acbc\",\"dweb:/ipfs/QmarDks3DcMyHPVsKdj5qpma5ZBMzH8ti92MY38K76hvSA\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TokenUriResolver.sol\":{\"keccak256\":\"0xfa599167098f4459320ec4141a98a17b2dfffbce422baa27d8b4e4530f61ece1\",\"urls\":[\"bzz-raw://8b758b161f4c7b520b2c34b4d91e585e961b8f4ca278eebb91d791f7f2f45140\",\"dweb:/ipfs/QmcD9DF7NJ9QykQpT4KPzm4bs3fkjzukdAUWwdU6Atfw85\"],\"license\":\"MIT\"},\"src/structs/JB721InitTiersConfig.sol\":{\"keccak256\":\"0xff362fcd46992e56996e1b162b129a1d03ca2342a482421f279bd930b7af79dd\",\"urls\":[\"bzz-raw://56a52c0d4461fd1b278789cd31ccc77b5eab9a0d7e2fab5074bae9c8a79d0cb1\",\"dweb:/ipfs/QmagorkFXB4rEq5rfLcoZHu6jtjcMicMBPfVqMQT86xZoB\"],\"license\":\"MIT\"},\"src/structs/JB721Tier.sol\":{\"keccak256\":\"0x99232aa73d5715977332dc7c93b03552a93259e59ae00e86b4ddc200f06adaf1\",\"urls\":[\"bzz-raw://721c0cf10a29fa11677718faafb3a2ecfcb4fbe4e1c09e70a7fac681c80fcc94\",\"dweb:/ipfs/QmSUR77E9PqnpB5kBcKNz2CGBjG9XL9FH57RWVYu3Q7GMR\"],\"license\":\"MIT\"},\"src/structs/JB721TierConfig.sol\":{\"keccak256\":\"0x86e54a0de4deab9d105bf276586aebe256188b193e83eb7a6f6f93e4a29ae9c5\",\"urls\":[\"bzz-raw://04bfcc07d452c26dfc50d3a5eb62df4b3b81e063defd752e0aa5ed049a78eef4\",\"dweb:/ipfs/QmWd5nJHUvZPHxJXkrYCboXaqdtiWWkQG26sNM6qkJuAgD\"],\"license\":\"MIT\"},\"src/structs/JB721TiersHookFlags.sol\":{\"keccak256\":\"0x283d8429f31bd58875c056515aa42abd09c95362bd929e85cfc44a0d92585766\",\"urls\":[\"bzz-raw://9a580b89fe99d9f8e930c58a4d0d63a5ff7c01c79d210af01373d066c9e72ed6\",\"dweb:/ipfs/QmdY1eSGSoTjv4KSdsG4Tm5CzJN6iqk3qTRga5ZWNbejRz\"],\"license\":\"MIT\"},\"src/structs/JB721TiersMintReservesConfig.sol\":{\"keccak256\":\"0x86fe586a05e6d4bc6fab9b68996a7f4b74c5362ca6f24b9d8057ed7e4cd1c5ac\",\"urls\":[\"bzz-raw://0915f17d1f958ab1fe6b214d99ed62f1f858684898c803f1a8a6a557472dd140\",\"dweb:/ipfs/QmUhdnSV8UzkgvbtkYEKHrpyDEmc2aJxW5HQ1gucuxxu5A\"],\"license\":\"MIT\"},\"src/structs/JB721TiersSetDiscountPercentConfig.sol\":{\"keccak256\":\"0x4672eacb6b0cda5e6f5f72ddb91463c52fb90b4df421053e3b40024f19a59954\",\"urls\":[\"bzz-raw://9d8e3a0b35d6b2a6ec66527594263400189b6c766bfd6943c83704380a989aec\",\"dweb:/ipfs/QmUE7NhFWsxjFRzTuRyHJ7oRx3JXD9CnG83t29PjGAhwPR\"],\"license\":\"MIT\"},\"src/structs/JBDeploy721TiersHookConfig.sol\":{\"keccak256\":\"0x0ce457736946394772afe54d575b68a74269cbf37a250de2d27dca6d9dd45005\",\"urls\":[\"bzz-raw://2010a8f6e19354038d3906ddb174f34464c5f341103313a5c4d628aa7732d5a8\",\"dweb:/ipfs/QmU9m18oWtYNV7UHLcW9kdwE3uzoQuGBe6sASvQTk8GZRL\"],\"license\":\"MIT\"},\"src/structs/JBLaunchProjectConfig.sol\":{\"keccak256\":\"0x0a8f87072dd6e5dd7c5cd5af7153172275de7e85625aa4a97da4fed65ad5b029\",\"urls\":[\"bzz-raw://b1d230835bf8fa17e8308d5d2ce4c820c4a719f451a65477f75956e100984047\",\"dweb:/ipfs/QmX6BwoYNJx1SssBLcBoPJBsg2Hv6ZP2uErXUvoMrAaQ71\"],\"license\":\"MIT\"},\"src/structs/JBLaunchRulesetsConfig.sol\":{\"keccak256\":\"0x0088bc7133e3fae1944247370a4eec227aeae8b371534e1d54439499644c0ede\",\"urls\":[\"bzz-raw://31847d92e9eb5e3125f07c23a651c0972e1784f748c4ce9d0c66853ee892c690\",\"dweb:/ipfs/QmRmoXg2MrkUFkMkgKvU7igkHQjhStbbc6CeiHkLCYAn7P\"],\"license\":\"MIT\"},\"src/structs/JBPayDataHookRulesetConfig.sol\":{\"keccak256\":\"0x06fdbc5c40750b8d81e4c079f86a96f5ce922a0ddbb81ddc5a044aa166723f59\",\"urls\":[\"bzz-raw://b810a5768501951e08c46f1907a7f561a49c4e16f339f1679a493fcddd30cc50\",\"dweb:/ipfs/QmfCF85EAdQCnsixXCdkKb5Xz2bL9dqAoDhmiR1QoBo81P\"],\"license\":\"MIT\"},\"src/structs/JBPayDataHookRulesetMetadata.sol\":{\"keccak256\":\"0x087280b3a959933c68ad19acbf07d80f9bbf632d902986c2ff624b6c31a6eeeb\",\"urls\":[\"bzz-raw://a2ddf9483f89b8a9012bc7714db4547b68a0df5fe3bf953e190d2021377f9811\",\"dweb:/ipfs/QmZcs1fuufGwWYy4fW3puX7ZRrribMMzEyEEL7WVCnrMer\"],\"license\":\"MIT\"},\"src/structs/JBQueueRulesetsConfig.sol\":{\"keccak256\":\"0x3ad05bfa31a90070eb4a026a13d508f9a68ca2474c3737bcda97a07307ffa554\",\"urls\":[\"bzz-raw://357f0193da0840e4b012ff1f97c65c8b6f5fea39e323a3777baf2b0625491f12\",\"dweb:/ipfs/QmZkJb8MuZ3wimiV6kry4RMp9ZkUFQA9yhfJDVUWTBWFcq\"],\"license\":\"MIT\"}},\"version\":1}", "args": [ "0xE0B2860344bA476e12eD1d559656dA9D04F1AD22", "0x4CDb4200e4E65a277676Cd5E8d3c7C7C4dA7fBe5", "0x2BAd941E6c2f9CdBbfc9C25F804f060ffEA1d7bE" ], - "bytecode": "0x60e06040523480156200001157600080fd5b5060405162002a2138038062002a2183398101604081905262000034916200006b565b6001600160a01b0391821660805291811660a0521660c052620000bf565b6001600160a01b03811681146200006857600080fd5b50565b6000806000606084860312156200008157600080fd5b83516200008e8162000052565b6020850151909350620000a18162000052565b6040850151909250620000b48162000052565b809150509250925092565b60805160a05160c0516129036200011e6000396000818160f4015281816102460152818161046501526105d801526000818160a20152818161015401528181610355015261056201526000818161012e0152610a2401526129036000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063abf8c5c811610050578063abf8c5c8146100ef578063ac6a26f814610116578063f434c9141461012957600080fd5b80633c3a22bb1461007757806388bc2ef31461009d5780638b716777146100dc575b600080fd5b61008a6100853660046111cc565b610150565b6040519081526020015b60405180910390f35b6100c47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610094565b61008a6100ea366004611255565b61034e565b6100c47f000000000000000000000000000000000000000000000000000000000000000081565b61008a61012436600461128a565b61055b565b6100c47f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d49190611304565b6001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610211573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102359190611328565b610240906001611341565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663cc7bb31f83876040518363ffffffff1660e01b81526004016102929291906116c7565b6020604051808303816000875af11580156102b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d59190611304565b90506102eb866102e486612135565b83866106c4565b6040516351106b4b60e11b8152600481018390526001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561032d57600080fd5b505af1158015610341573d6000803e3d6000fd5b5050505050949350505050565b600061044b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d59190611304565b6001600160a01b0316636352211e876040518263ffffffff1660e01b815260040161040291815260200190565b602060405180830381865afa15801561041f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104439190611304565b8660026109cc565b60405163cc7bb31f60e01b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f9061049c90899089906004016116c7565b6020604051808303816000875af11580156104bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104df9190611304565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561052457600080fd5b505af1158015610538573d6000803e3d6000fd5b50505050610551868561054a906121ec565b8386610ada565b9695505050505050565b60006105be7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b1573d6000803e3d6000fd5b60405163cc7bb31f60e01b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f9061060f90899089906004016116c7565b6020604051808303816000875af115801561062e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106529190611304565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561069757600080fd5b505af11580156106ab573d6000803e3d6000fd5b5050505061055186856106bd9061222c565b8386610de4565b60208301515160008167ffffffffffffffff8111156106e5576106e56117e7565b60405190808252806020026020018201604052801561071e57816020015b61070b61109b565b8152602001906001900390816107035790505b50905060005b8281101561094457600086602001518281518110610744576107446122aa565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e0015115158152602001896001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610930576109306122aa565b602090810291909101015250600101610724565b50845160408087015160608801519151634e530d8960e11b81526001600160a01b03871693639ca61b1293610980938c938892906004016127de565b6020604051808303816000875af115801561099f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c39190611328565b50505050505050565b336001600160a01b0384168114801590610a915750604051631a45b42760e11b81526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000000000000000000000000000000000000000000000169063348b684e9060c401602060405180830381865afa158015610a6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8f9190612846565b155b15610ad457604051631326f75560e11b81526001600160a01b03808616600483015282166024820152604481018490526064810183905260840160405180910390fd5b50505050565b602083015151600090818167ffffffffffffffff811115610afd57610afd6117e7565b604051908082528060200260200182016040528015610b3657816020015b610b2361109b565b815260200190600190039081610b1b5790505b50905060005b82811015610d5c57600087602001518281518110610b5c57610b5c6122aa565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610d4857610d486122aa565b602090810291909101015250600101610b3c565b5060408087015160608801519151632a550fab60e11b81526001600160a01b038716926354aa1f5692610d96928c92879291600401612863565b6020604051808303816000875af1158015610db5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd99190611328565b979650505050505050565b602083015151600090818167ffffffffffffffff811115610e0757610e076117e7565b604051908082528060200260200182016040528015610e4057816020015b610e2d61109b565b815260200190600190039081610e255790505b50905060005b8281101561106657600087602001518281518110610e6657610e666122aa565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110611052576110526122aa565b602090810291909101015250600101610e46565b506040808701519051630e18de6b60e41b81526001600160a01b0386169163e18de6b091610d96918b918691906004016128a2565b6040805161010080820183526000808352602080840182905283850182905260608085018390526080808601849052865161028081018852848152928301849052958201839052810182905293840181905260a084810182905260c0850182905260e0850182905291840181905261012084018190526101408401819052610160840181905261018084018190526101a084018190526101c084018190526101e08401819052610200840181905261022084018190526102408401819052610260840152909190820190815260200160608152602001606081525090565b6001600160a01b038116811461118e57600080fd5b50565b803561119c81611179565b919050565b600061016082840312156111b457600080fd5b50919050565b6000608082840312156111b457600080fd5b600080600080608085870312156111e257600080fd5b84356111ed81611179565b9350602085013567ffffffffffffffff8082111561120a57600080fd5b611216888389016111a1565b9450604087013591508082111561122c57600080fd5b50611239878288016111ba565b925050606085013561124a81611179565b939692955090935050565b6000806000806080858703121561126b57600080fd5b84359350602085013567ffffffffffffffff8082111561120a57600080fd5b600080600080608085870312156112a057600080fd5b84359350602085013567ffffffffffffffff808211156112bf57600080fd5b6112cb888389016111a1565b945060408701359150808211156112e157600080fd5b508501606081880312156112f457600080fd5b9150606085013561124a81611179565b60006020828403121561131657600080fd5b815161132181611179565b9392505050565b60006020828403121561133a57600080fd5b5051919050565b8082018082111561136257634e487b7160e01b600052601160045260246000fd5b92915050565b6000808335601e1984360301811261137f57600080fd5b830160208101925035905067ffffffffffffffff81111561139f57600080fd5b8036038213156113ae57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008235607e198336030181126113f457600080fd5b90910192915050565b80356cffffffffffffffffffffffffff8116811461119c57600080fd5b803563ffffffff8116811461119c57600080fd5b803561ffff8116811461119c57600080fd5b803562ffffff8116811461119c57600080fd5b803560ff8116811461119c57600080fd5b801515811461118e57600080fd5b803561119c81611464565b600060808084018335601e1985360301811261149857600080fd5b8401602081810191359067ffffffffffffffff8211156114b757600080fd5b6101c080830236038413156114cb57600080fd5b608089529382905260a09384890160005b8481101561161757611504826114f1886113fd565b6cffffffffffffffffffffffffff169052565b61150f84870161141a565b63ffffffff1684830152604061152687820161141a565b63ffffffff1690830152606061153d87820161142e565b61ffff1690830152611550868901611191565b6001600160a01b031688830152858701358783015260c0611572818801611440565b62ffffff169083015260e0611588878201611453565b60ff169083015261010061159d878201611472565b1515908301526101206115b1878201611472565b1515908301526101406115c5878201611472565b1515908301526101606115d9878201611472565b1515908301526101806115ed878201611472565b1515908301526101a0611601878201611472565b15159083015294820194908201906001016114dc565b5061162460208a0161141a565b63ffffffff811660208c0152965061163e60408a01611453565b60ff811660408c0152965061165560608a01611191565b6001600160a01b03811660608c015296509998505050505050505050565b803561167e81611464565b15158252602081013561169081611464565b1515602083015260408101356116a581611464565b1515604083015260608101356116ba81611464565b8015156060840152505050565b8281526040602082015260006116dd8384611368565b61016060408501526116f46101a0850182846113b5565b9150506117046020850185611368565b603f198086850301606087015261171c8483856113b5565b935061172b6040880188611368565b93509150808685030160808701526117448484846113b5565b935061175260608801611191565b6001600160a01b03811660a088015292506117706080880188611368565b93509150808685030160c08701526117898484846113b5565b935061179860a08801886113de565b9250808685030160e087015250506117b0828261147d565b9150506117bf60c08501611191565b6001600160a01b03166101008401526117df610120840160e08601611673565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff81118282101715611821576118216117e7565b60405290565b6040805190810167ffffffffffffffff81118282101715611821576118216117e7565b60405160c0810167ffffffffffffffff81118282101715611821576118216117e7565b6040516080810167ffffffffffffffff81118282101715611821576118216117e7565b604051610100810167ffffffffffffffff81118282101715611821576118216117e7565b6040516060810167ffffffffffffffff81118282101715611821576118216117e7565b604051601f8201601f1916810167ffffffffffffffff81118282101715611900576119006117e7565b604052919050565b600082601f83011261191957600080fd5b813567ffffffffffffffff811115611933576119336117e7565b611946601f8201601f19166020016118d7565b81815284602083860101111561195b57600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff821115611992576119926117e7565b5060051b60200190565b803565ffffffffffff8116811461119c57600080fd5b80356dffffffffffffffffffffffffffff8116811461119c57600080fd5b600061022082840312156119e357600080fd5b6119eb6117fd565b90506119f68261142e565b8152611a046020830161142e565b6020820152611a156040830161141a565b6040820152611a2660608301611472565b6060820152611a3760808301611472565b6080820152611a4860a08301611472565b60a0820152611a5960c08301611472565b60c0820152611a6a60e08301611472565b60e0820152610100611a7d818401611472565b90820152610120611a8f838201611472565b90820152610140611aa1838201611472565b90820152610160611ab3838201611472565b90820152610180611ac5838201611472565b908201526101a0611ad7838201611472565b908201526101c0611ae9838201611472565b908201526101e0611afb838201611472565b90820152610200611b0d83820161142e565b9082015292915050565b803566ffffffffffffff8116811461119c57600080fd5b600082601f830112611b3f57600080fd5b81356020611b54611b4f83611978565b6118d7565b82815260059290921b84018101918181019086841115611b7357600080fd5b8286015b84811015611cc257803567ffffffffffffffff80821115611b9757600080fd5b908801906040828b03601f1901811315611bb057600080fd5b611bb8611827565b8784013581528184013583811115611bcf57600080fd5b8085019450508b603f850112611be457600080fd5b878401359250611bf6611b4f84611978565b83815260c09093028401820192888101908d851115611c1457600080fd5b948301945b84861015611cad5760c0868f031215611c3157600080fd5b611c3961184a565b8635611c4481611464565b8152611c51878c0161141a565b8b820152611c60858801611b17565b858201526060870135611c7281611179565b6060820152611c836080880161199c565b608082015260a0870135611c9681611179565b60a0820152825260c0959095019490890190611c19565b828a0152508652505050918301918301611b77565b509695505050505050565b600082601f830112611cde57600080fd5b81356020611cee611b4f83611978565b82815260069290921b84018101918181019086841115611d0d57600080fd5b8286015b84811015611cc25760408189031215611d2a5760008081fd5b611d32611827565b81357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81168114611d5f5760008081fd5b8152611d6c82860161141a565b81860152835291830191604001611d11565b600082601f830112611d8f57600080fd5b81356020611d9f611b4f83611978565b82815260059290921b84018101918181019086841115611dbe57600080fd5b8286015b84811015611cc257803567ffffffffffffffff80821115611de35760008081fd5b908801906080828b03601f1901811315611dfd5760008081fd5b611e0561186d565b87840135611e1281611179565b8152604084810135611e2381611179565b828a015260608581013585811115611e3b5760008081fd5b611e498f8c838a0101611ccd565b8484015250928501359284841115611e6357600091508182fd5b611e718e8b86890101611ccd565b90830152508652505050918301918301611dc2565b600082601f830112611e9757600080fd5b81356020611ea7611b4f83611978565b82815260059290921b84018101918181019086841115611ec657600080fd5b8286015b84811015611cc257803567ffffffffffffffff80821115611eeb5760008081fd5b90880190610300828b03601f1901811315611f065760008081fd5b611f0e611890565b611f1988850161199c565b81526040611f2881860161141a565b898301526060611f398187016119b2565b8284015260809150611f4c82870161141a565b9083015260a0611f5d868201611191565b8284015260c09150611f718e8388016119d0565b908301526102e085013584811115611f895760008081fd5b611f978e8b83890101611b2e565b82840152505081840135915082821115611fb15760008081fd5b611fbf8c8984870101611d7e565b60e08201528652505050918301918301611eca565b600082601f830112611fe557600080fd5b81356020611ff5611b4f83611978565b82815260059290921b8401810191818101908684111561201457600080fd5b8286015b84811015611cc257803567ffffffffffffffff8082111561203857600080fd5b908801906040828b03601f190181131561205157600080fd5b612059611827565b8784013561206681611179565b8152838201358381111561207957600080fd5b8085019450508b603f85011261208e57600080fd5b8784013592506120a0611b4f84611978565b83815260609093028401820192888101908d8511156120be57600080fd5b948301945b84861015612120576060868f0312156120db57600080fd5b6120e36118b4565b86356120ee81611179565b81526120fb878c01611453565b8b82015261210a85880161141a565b81860152825260609590950194908901906120c3565b828a0152508652505050918301918301612018565b60006080823603121561214757600080fd5b61214f61186d565b823567ffffffffffffffff8082111561216757600080fd5b61217336838701611908565b8352602085013591508082111561218957600080fd5b61219536838701611e86565b602084015260408501359150808211156121ae57600080fd5b6121ba36838701611fd4565b604084015260608501359150808211156121d357600080fd5b506121e036828601611908565b60608301525092915050565b6000608082360312156121fe57600080fd5b61220661186d565b61220f83611b17565b8152602083013567ffffffffffffffff8082111561218957600080fd5b60006060823603121561223e57600080fd5b6122466118b4565b61224f83611b17565b8152602083013567ffffffffffffffff8082111561226c57600080fd5b61227836838701611e86565b6020840152604085013591508082111561229157600080fd5b5061229e36828601611908565b60408301525092915050565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156122e6576020818501810151868301820152016122ca565b506000602082860101526020601f19601f83011685010191505092915050565b805161ffff1682526020810151612323602084018261ffff169052565b50604081015161233b604084018263ffffffff169052565b50606081015161234f606084018215159052565b506080810151612363608084018215159052565b5060a081015161237760a084018215159052565b5060c081015161238b60c084018215159052565b5060e081015161239f60e084018215159052565b5061010081810151151590830152610120808201511515908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c0808201511515908301526101e0808201511515908301526102008082015115159083015261022080820151151590830152610240808201516001600160a01b0316908301526102608082015161ffff811682850152610ad4565b600082825180855260208086019550808260051b8401018186016000805b8581101561252857868403601f19018a52825180518552850151604086860181905281518187018190529187019160609081880190865b818110156125115785518051151584528b81015163ffffffff168c8501528581015166ffffffffffffff1686850152848101516001600160a01b039081168686015260808083015165ffffffffffff169086015260a0918201511690840152948a019460c0909201916001016124a0565b50509c88019c965050509285019250600101612469565b509198975050505050505050565b60008151808452602080850194506020840160005b8381101561259657815180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16885283015163ffffffff16838801526040909601959082019060010161254b565b509495945050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561263557601f19868403018952815160806001600160a01b038083511686528087840151168787015250604080830151828288015261260383880182612536565b92505050606080830151925085820381870152506126218183612536565b9a86019a94505050908301906001016125be565b5090979650505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561263557601f198684030189528151805165ffffffffffff1684528481015163ffffffff908116868601526040808301516dffffffffffffffffffffffffffff1690860152606080830151909116908501526080808201516001600160a01b03169085015260a08082015161036091906126df82880182612306565b505060c0820151816103208701526126f98287018261244b565b91505060e0820151915084810361034086015261271681836125a1565b9a86019a945050509083019060010161265f565b600082825180855260208086019550808260051b8401018186016000805b8581101561252857868403601f19018a52825180516001600160a01b03908116865290860151604087870181905281518188018190529188019290916060919082890190875b818110156127c65786518051851684528c81015160ff168d85015286015163ffffffff1686840152958b01959184019160010161278e565b50509d89019d97505050938601935050600101612748565b6001600160a01b038616815260a06020820152600061280060a08301876122c0565b82810360408401526128128187612642565b90508281036060840152612826818661272a565b9050828103608084015261283a81856122c0565b98975050505050505050565b60006020828403121561285857600080fd5b815161132181611464565b84815260806020820152600061287c6080830186612642565b828103604084015261288e818661272a565b90508281036060840152610dd981856122c0565b8381526060602082015260006128bb6060830185612642565b828103604084015261055181856122c056fea264697066735822122065bea5c5b12a0b599df982d500bc196b031d7371de559ac209ff46d6b263a22064736f6c63430008170033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100725760003560e01c8063abf8c5c811610050578063abf8c5c8146100ef578063ac6a26f814610116578063f434c9141461012957600080fd5b80633c3a22bb1461007757806388bc2ef31461009d5780638b716777146100dc575b600080fd5b61008a6100853660046111cc565b610150565b6040519081526020015b60405180910390f35b6100c47f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad2281565b6040516001600160a01b039091168152602001610094565b61008a6100ea366004611255565b61034e565b6100c47f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be81565b61008a61012436600461128a565b61055b565b6100c47f0000000000000000000000004cdb4200e4e65a277676cd5e8d3c7c7c4da7fbe581565b60007f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad226001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d49190611304565b6001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610211573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102359190611328565b610240906001611341565b905060007f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be6001600160a01b031663cc7bb31f83876040518363ffffffff1660e01b81526004016102929291906116c7565b6020604051808303816000875af11580156102b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d59190611304565b90506102eb866102e486612135565b83866106c4565b6040516351106b4b60e11b8152600481018390526001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561032d57600080fd5b505af1158015610341573d6000803e3d6000fd5b5050505050949350505050565b600061044b7f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad226001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d59190611304565b6001600160a01b0316636352211e876040518263ffffffff1660e01b815260040161040291815260200190565b602060405180830381865afa15801561041f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104439190611304565b8660026109cc565b60405163cc7bb31f60e01b81526000906001600160a01b037f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be169063cc7bb31f9061049c90899089906004016116c7565b6020604051808303816000875af11580156104bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104df9190611304565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561052457600080fd5b505af1158015610538573d6000803e3d6000fd5b50505050610551868561054a906121ec565b8386610ada565b9695505050505050565b60006105be7f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad226001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b1573d6000803e3d6000fd5b60405163cc7bb31f60e01b81526000906001600160a01b037f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be169063cc7bb31f9061060f90899089906004016116c7565b6020604051808303816000875af115801561062e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106529190611304565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561069757600080fd5b505af11580156106ab573d6000803e3d6000fd5b5050505061055186856106bd9061222c565b8386610de4565b60208301515160008167ffffffffffffffff8111156106e5576106e56117e7565b60405190808252806020026020018201604052801561071e57816020015b61070b61109b565b8152602001906001900390816107035790505b50905060005b8281101561094457600086602001518281518110610744576107446122aa565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e0015115158152602001896001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610930576109306122aa565b602090810291909101015250600101610724565b50845160408087015160608801519151634e530d8960e11b81526001600160a01b03871693639ca61b1293610980938c938892906004016127de565b6020604051808303816000875af115801561099f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c39190611328565b50505050505050565b336001600160a01b0384168114801590610a915750604051631a45b42760e11b81526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000004cdb4200e4e65a277676cd5e8d3c7c7c4da7fbe5169063348b684e9060c401602060405180830381865afa158015610a6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8f9190612846565b155b15610ad457604051631326f75560e11b81526001600160a01b03808616600483015282166024820152604481018490526064810183905260840160405180910390fd5b50505050565b602083015151600090818167ffffffffffffffff811115610afd57610afd6117e7565b604051908082528060200260200182016040528015610b3657816020015b610b2361109b565b815260200190600190039081610b1b5790505b50905060005b82811015610d5c57600087602001518281518110610b5c57610b5c6122aa565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610d4857610d486122aa565b602090810291909101015250600101610b3c565b5060408087015160608801519151632a550fab60e11b81526001600160a01b038716926354aa1f5692610d96928c92879291600401612863565b6020604051808303816000875af1158015610db5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd99190611328565b979650505050505050565b602083015151600090818167ffffffffffffffff811115610e0757610e076117e7565b604051908082528060200260200182016040528015610e4057816020015b610e2d61109b565b815260200190600190039081610e255790505b50905060005b8281101561106657600087602001518281518110610e6657610e666122aa565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110611052576110526122aa565b602090810291909101015250600101610e46565b506040808701519051630e18de6b60e41b81526001600160a01b0386169163e18de6b091610d96918b918691906004016128a2565b6040805161010080820183526000808352602080840182905283850182905260608085018390526080808601849052865161028081018852848152928301849052958201839052810182905293840181905260a084810182905260c0850182905260e0850182905291840181905261012084018190526101408401819052610160840181905261018084018190526101a084018190526101c084018190526101e08401819052610200840181905261022084018190526102408401819052610260840152909190820190815260200160608152602001606081525090565b6001600160a01b038116811461118e57600080fd5b50565b803561119c81611179565b919050565b600061016082840312156111b457600080fd5b50919050565b6000608082840312156111b457600080fd5b600080600080608085870312156111e257600080fd5b84356111ed81611179565b9350602085013567ffffffffffffffff8082111561120a57600080fd5b611216888389016111a1565b9450604087013591508082111561122c57600080fd5b50611239878288016111ba565b925050606085013561124a81611179565b939692955090935050565b6000806000806080858703121561126b57600080fd5b84359350602085013567ffffffffffffffff8082111561120a57600080fd5b600080600080608085870312156112a057600080fd5b84359350602085013567ffffffffffffffff808211156112bf57600080fd5b6112cb888389016111a1565b945060408701359150808211156112e157600080fd5b508501606081880312156112f457600080fd5b9150606085013561124a81611179565b60006020828403121561131657600080fd5b815161132181611179565b9392505050565b60006020828403121561133a57600080fd5b5051919050565b8082018082111561136257634e487b7160e01b600052601160045260246000fd5b92915050565b6000808335601e1984360301811261137f57600080fd5b830160208101925035905067ffffffffffffffff81111561139f57600080fd5b8036038213156113ae57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008235607e198336030181126113f457600080fd5b90910192915050565b80356cffffffffffffffffffffffffff8116811461119c57600080fd5b803563ffffffff8116811461119c57600080fd5b803561ffff8116811461119c57600080fd5b803562ffffff8116811461119c57600080fd5b803560ff8116811461119c57600080fd5b801515811461118e57600080fd5b803561119c81611464565b600060808084018335601e1985360301811261149857600080fd5b8401602081810191359067ffffffffffffffff8211156114b757600080fd5b6101c080830236038413156114cb57600080fd5b608089529382905260a09384890160005b8481101561161757611504826114f1886113fd565b6cffffffffffffffffffffffffff169052565b61150f84870161141a565b63ffffffff1684830152604061152687820161141a565b63ffffffff1690830152606061153d87820161142e565b61ffff1690830152611550868901611191565b6001600160a01b031688830152858701358783015260c0611572818801611440565b62ffffff169083015260e0611588878201611453565b60ff169083015261010061159d878201611472565b1515908301526101206115b1878201611472565b1515908301526101406115c5878201611472565b1515908301526101606115d9878201611472565b1515908301526101806115ed878201611472565b1515908301526101a0611601878201611472565b15159083015294820194908201906001016114dc565b5061162460208a0161141a565b63ffffffff811660208c0152965061163e60408a01611453565b60ff811660408c0152965061165560608a01611191565b6001600160a01b03811660608c015296509998505050505050505050565b803561167e81611464565b15158252602081013561169081611464565b1515602083015260408101356116a581611464565b1515604083015260608101356116ba81611464565b8015156060840152505050565b8281526040602082015260006116dd8384611368565b61016060408501526116f46101a0850182846113b5565b9150506117046020850185611368565b603f198086850301606087015261171c8483856113b5565b935061172b6040880188611368565b93509150808685030160808701526117448484846113b5565b935061175260608801611191565b6001600160a01b03811660a088015292506117706080880188611368565b93509150808685030160c08701526117898484846113b5565b935061179860a08801886113de565b9250808685030160e087015250506117b0828261147d565b9150506117bf60c08501611191565b6001600160a01b03166101008401526117df610120840160e08601611673565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff81118282101715611821576118216117e7565b60405290565b6040805190810167ffffffffffffffff81118282101715611821576118216117e7565b60405160c0810167ffffffffffffffff81118282101715611821576118216117e7565b6040516080810167ffffffffffffffff81118282101715611821576118216117e7565b604051610100810167ffffffffffffffff81118282101715611821576118216117e7565b6040516060810167ffffffffffffffff81118282101715611821576118216117e7565b604051601f8201601f1916810167ffffffffffffffff81118282101715611900576119006117e7565b604052919050565b600082601f83011261191957600080fd5b813567ffffffffffffffff811115611933576119336117e7565b611946601f8201601f19166020016118d7565b81815284602083860101111561195b57600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff821115611992576119926117e7565b5060051b60200190565b803565ffffffffffff8116811461119c57600080fd5b80356dffffffffffffffffffffffffffff8116811461119c57600080fd5b600061022082840312156119e357600080fd5b6119eb6117fd565b90506119f68261142e565b8152611a046020830161142e565b6020820152611a156040830161141a565b6040820152611a2660608301611472565b6060820152611a3760808301611472565b6080820152611a4860a08301611472565b60a0820152611a5960c08301611472565b60c0820152611a6a60e08301611472565b60e0820152610100611a7d818401611472565b90820152610120611a8f838201611472565b90820152610140611aa1838201611472565b90820152610160611ab3838201611472565b90820152610180611ac5838201611472565b908201526101a0611ad7838201611472565b908201526101c0611ae9838201611472565b908201526101e0611afb838201611472565b90820152610200611b0d83820161142e565b9082015292915050565b803566ffffffffffffff8116811461119c57600080fd5b600082601f830112611b3f57600080fd5b81356020611b54611b4f83611978565b6118d7565b82815260059290921b84018101918181019086841115611b7357600080fd5b8286015b84811015611cc257803567ffffffffffffffff80821115611b9757600080fd5b908801906040828b03601f1901811315611bb057600080fd5b611bb8611827565b8784013581528184013583811115611bcf57600080fd5b8085019450508b603f850112611be457600080fd5b878401359250611bf6611b4f84611978565b83815260c09093028401820192888101908d851115611c1457600080fd5b948301945b84861015611cad5760c0868f031215611c3157600080fd5b611c3961184a565b8635611c4481611464565b8152611c51878c0161141a565b8b820152611c60858801611b17565b858201526060870135611c7281611179565b6060820152611c836080880161199c565b608082015260a0870135611c9681611179565b60a0820152825260c0959095019490890190611c19565b828a0152508652505050918301918301611b77565b509695505050505050565b600082601f830112611cde57600080fd5b81356020611cee611b4f83611978565b82815260069290921b84018101918181019086841115611d0d57600080fd5b8286015b84811015611cc25760408189031215611d2a5760008081fd5b611d32611827565b81357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81168114611d5f5760008081fd5b8152611d6c82860161141a565b81860152835291830191604001611d11565b600082601f830112611d8f57600080fd5b81356020611d9f611b4f83611978565b82815260059290921b84018101918181019086841115611dbe57600080fd5b8286015b84811015611cc257803567ffffffffffffffff80821115611de35760008081fd5b908801906080828b03601f1901811315611dfd5760008081fd5b611e0561186d565b87840135611e1281611179565b8152604084810135611e2381611179565b828a015260608581013585811115611e3b5760008081fd5b611e498f8c838a0101611ccd565b8484015250928501359284841115611e6357600091508182fd5b611e718e8b86890101611ccd565b90830152508652505050918301918301611dc2565b600082601f830112611e9757600080fd5b81356020611ea7611b4f83611978565b82815260059290921b84018101918181019086841115611ec657600080fd5b8286015b84811015611cc257803567ffffffffffffffff80821115611eeb5760008081fd5b90880190610300828b03601f1901811315611f065760008081fd5b611f0e611890565b611f1988850161199c565b81526040611f2881860161141a565b898301526060611f398187016119b2565b8284015260809150611f4c82870161141a565b9083015260a0611f5d868201611191565b8284015260c09150611f718e8388016119d0565b908301526102e085013584811115611f895760008081fd5b611f978e8b83890101611b2e565b82840152505081840135915082821115611fb15760008081fd5b611fbf8c8984870101611d7e565b60e08201528652505050918301918301611eca565b600082601f830112611fe557600080fd5b81356020611ff5611b4f83611978565b82815260059290921b8401810191818101908684111561201457600080fd5b8286015b84811015611cc257803567ffffffffffffffff8082111561203857600080fd5b908801906040828b03601f190181131561205157600080fd5b612059611827565b8784013561206681611179565b8152838201358381111561207957600080fd5b8085019450508b603f85011261208e57600080fd5b8784013592506120a0611b4f84611978565b83815260609093028401820192888101908d8511156120be57600080fd5b948301945b84861015612120576060868f0312156120db57600080fd5b6120e36118b4565b86356120ee81611179565b81526120fb878c01611453565b8b82015261210a85880161141a565b81860152825260609590950194908901906120c3565b828a0152508652505050918301918301612018565b60006080823603121561214757600080fd5b61214f61186d565b823567ffffffffffffffff8082111561216757600080fd5b61217336838701611908565b8352602085013591508082111561218957600080fd5b61219536838701611e86565b602084015260408501359150808211156121ae57600080fd5b6121ba36838701611fd4565b604084015260608501359150808211156121d357600080fd5b506121e036828601611908565b60608301525092915050565b6000608082360312156121fe57600080fd5b61220661186d565b61220f83611b17565b8152602083013567ffffffffffffffff8082111561218957600080fd5b60006060823603121561223e57600080fd5b6122466118b4565b61224f83611b17565b8152602083013567ffffffffffffffff8082111561226c57600080fd5b61227836838701611e86565b6020840152604085013591508082111561229157600080fd5b5061229e36828601611908565b60408301525092915050565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156122e6576020818501810151868301820152016122ca565b506000602082860101526020601f19601f83011685010191505092915050565b805161ffff1682526020810151612323602084018261ffff169052565b50604081015161233b604084018263ffffffff169052565b50606081015161234f606084018215159052565b506080810151612363608084018215159052565b5060a081015161237760a084018215159052565b5060c081015161238b60c084018215159052565b5060e081015161239f60e084018215159052565b5061010081810151151590830152610120808201511515908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c0808201511515908301526101e0808201511515908301526102008082015115159083015261022080820151151590830152610240808201516001600160a01b0316908301526102608082015161ffff811682850152610ad4565b600082825180855260208086019550808260051b8401018186016000805b8581101561252857868403601f19018a52825180518552850151604086860181905281518187018190529187019160609081880190865b818110156125115785518051151584528b81015163ffffffff168c8501528581015166ffffffffffffff1686850152848101516001600160a01b039081168686015260808083015165ffffffffffff169086015260a0918201511690840152948a019460c0909201916001016124a0565b50509c88019c965050509285019250600101612469565b509198975050505050505050565b60008151808452602080850194506020840160005b8381101561259657815180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16885283015163ffffffff16838801526040909601959082019060010161254b565b509495945050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561263557601f19868403018952815160806001600160a01b038083511686528087840151168787015250604080830151828288015261260383880182612536565b92505050606080830151925085820381870152506126218183612536565b9a86019a94505050908301906001016125be565b5090979650505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561263557601f198684030189528151805165ffffffffffff1684528481015163ffffffff908116868601526040808301516dffffffffffffffffffffffffffff1690860152606080830151909116908501526080808201516001600160a01b03169085015260a08082015161036091906126df82880182612306565b505060c0820151816103208701526126f98287018261244b565b91505060e0820151915084810361034086015261271681836125a1565b9a86019a945050509083019060010161265f565b600082825180855260208086019550808260051b8401018186016000805b8581101561252857868403601f19018a52825180516001600160a01b03908116865290860151604087870181905281518188018190529188019290916060919082890190875b818110156127c65786518051851684528c81015160ff168d85015286015163ffffffff1686840152958b01959184019160010161278e565b50509d89019d97505050938601935050600101612748565b6001600160a01b038616815260a06020820152600061280060a08301876122c0565b82810360408401526128128187612642565b90508281036060840152612826818661272a565b9050828103608084015261283a81856122c0565b98975050505050505050565b60006020828403121561285857600080fd5b815161132181611464565b84815260806020820152600061287c6080830186612642565b828103604084015261288e818661272a565b90508281036060840152610dd981856122c0565b8381526060602082015260006128bb6060830185612642565b828103604084015261055181856122c056fea264697066735822122065bea5c5b12a0b599df982d500bc196b031d7371de559ac209ff46d6b263a22064736f6c63430008170033", + "bytecode": "0x60e06040523480156200001157600080fd5b5060405162002a3838038062002a3883398101604081905262000034916200006b565b6001600160a01b0391821660805291811660a0521660c052620000bf565b6001600160a01b03811681146200006857600080fd5b50565b6000806000606084860312156200008157600080fd5b83516200008e8162000052565b6020850151909350620000a18162000052565b6040850151909250620000b48162000052565b809150509250925092565b60805160a05160c0516129196200011f600039600081816101030152818161026a0152818161047201526105e401526000818160b10152818161016401528181610365015261057101526000818161013d0152610a3001526129196000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063abf8c5c811610050578063abf8c5c8146100fe578063ac6a26f814610125578063f434c9141461013857600080fd5b80633c3a22bb1461007757806388bc2ef3146100ac5780638b716777146100eb575b600080fd5b61008a6100853660046111d8565b61015f565b604080519283526001600160a01b039091166020830152015b60405180910390f35b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100a3565b61008a6100f9366004611261565b61035d565b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b61008a610133366004611296565b610569565b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e49190611310565b6001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102459190611334565b61025090600161134d565b60405163cc7bb31f60e01b81529092506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f906102a190859089906004016116d3565b6020604051808303816000875af11580156102c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e49190611310565b90506102fa866102f386612141565b83866106d0565b6040516351106b4b60e11b8152600481018390526001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561033c57600080fd5b505af1158015610350573d6000803e3d6000fd5b5050505094509492505050565b60008061045b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e59190611310565b6001600160a01b0316636352211e886040518263ffffffff1660e01b815260040161041291815260200190565b602060405180830381865afa15801561042f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104539190611310565b8760026109d8565b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f906104a990899089906004016116d3565b6020604051808303816000875af11580156104c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ec9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b5050505061055e8685610557906121f8565b8386610ae6565b915094509492505050565b6000806105cd7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f9061061b90899089906004016116d3565b6020604051808303816000875af115801561063a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065e9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b1580156106a357600080fd5b505af11580156106b7573d6000803e3d6000fd5b5050505061055e86856106c990612238565b8386610df0565b60208301515160008167ffffffffffffffff8111156106f1576106f16117f3565b60405190808252806020026020018201604052801561072a57816020015b6107176110a7565b81526020019060019003908161070f5790505b50905060005b8281101561095057600086602001518281518110610750576107506122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e0015115158152602001896001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061093c5761093c6122b6565b602090810291909101015250600101610730565b50845160408087015160608801519151634e530d8960e11b81526001600160a01b03871693639ca61b129361098c938c938892906004016127ea565b6020604051808303816000875af11580156109ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cf9190611334565b50505050505050565b336001600160a01b0384168114801590610a9d5750604051631a45b42760e11b81526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000000000000000000000000000000000000000000000169063348b684e9060c401602060405180830381865afa158015610a77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9b9190612852565b155b15610ae057604051631326f75560e11b81526001600160a01b03808616600483015282166024820152604481018490526064810183905260840160405180910390fd5b50505050565b602083015151600090818167ffffffffffffffff811115610b0957610b096117f3565b604051908082528060200260200182016040528015610b4257816020015b610b2f6110a7565b815260200190600190039081610b275790505b50905060005b82811015610d6857600087602001518281518110610b6857610b686122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610d5457610d546122b6565b602090810291909101015250600101610b48565b5060408087015160608801519151632a550fab60e11b81526001600160a01b038716926354aa1f5692610da2928c9287929160040161286f565b6020604051808303816000875af1158015610dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de59190611334565b979650505050505050565b602083015151600090818167ffffffffffffffff811115610e1357610e136117f3565b604051908082528060200260200182016040528015610e4c57816020015b610e396110a7565b815260200190600190039081610e315790505b50905060005b8281101561107257600087602001518281518110610e7257610e726122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061105e5761105e6122b6565b602090810291909101015250600101610e52565b506040808701519051630e18de6b60e41b81526001600160a01b0386169163e18de6b091610da2918b918691906004016128ae565b6040805161010080820183526000808352602080840182905283850182905260608085018390526080808601849052865161028081018852848152928301849052958201839052810182905293840181905260a084810182905260c0850182905260e0850182905291840181905261012084018190526101408401819052610160840181905261018084018190526101a084018190526101c084018190526101e08401819052610200840181905261022084018190526102408401819052610260840152909190820190815260200160608152602001606081525090565b6001600160a01b038116811461119a57600080fd5b50565b80356111a881611185565b919050565b600061016082840312156111c057600080fd5b50919050565b6000608082840312156111c057600080fd5b600080600080608085870312156111ee57600080fd5b84356111f981611185565b9350602085013567ffffffffffffffff8082111561121657600080fd5b611222888389016111ad565b9450604087013591508082111561123857600080fd5b50611245878288016111c6565b925050606085013561125681611185565b939692955090935050565b6000806000806080858703121561127757600080fd5b84359350602085013567ffffffffffffffff8082111561121657600080fd5b600080600080608085870312156112ac57600080fd5b84359350602085013567ffffffffffffffff808211156112cb57600080fd5b6112d7888389016111ad565b945060408701359150808211156112ed57600080fd5b5085016060818803121561130057600080fd5b9150606085013561125681611185565b60006020828403121561132257600080fd5b815161132d81611185565b9392505050565b60006020828403121561134657600080fd5b5051919050565b8082018082111561136e57634e487b7160e01b600052601160045260246000fd5b92915050565b6000808335601e1984360301811261138b57600080fd5b830160208101925035905067ffffffffffffffff8111156113ab57600080fd5b8036038213156113ba57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008235607e1983360301811261140057600080fd5b90910192915050565b80356cffffffffffffffffffffffffff811681146111a857600080fd5b803563ffffffff811681146111a857600080fd5b803561ffff811681146111a857600080fd5b803562ffffff811681146111a857600080fd5b803560ff811681146111a857600080fd5b801515811461119a57600080fd5b80356111a881611470565b600060808084018335601e198536030181126114a457600080fd5b8401602081810191359067ffffffffffffffff8211156114c357600080fd5b6101c080830236038413156114d757600080fd5b608089529382905260a09384890160005b8481101561162357611510826114fd88611409565b6cffffffffffffffffffffffffff169052565b61151b848701611426565b63ffffffff16848301526040611532878201611426565b63ffffffff1690830152606061154987820161143a565b61ffff169083015261155c86890161119d565b6001600160a01b031688830152858701358783015260c061157e81880161144c565b62ffffff169083015260e061159487820161145f565b60ff16908301526101006115a987820161147e565b1515908301526101206115bd87820161147e565b1515908301526101406115d187820161147e565b1515908301526101606115e587820161147e565b1515908301526101806115f987820161147e565b1515908301526101a061160d87820161147e565b15159083015294820194908201906001016114e8565b5061163060208a01611426565b63ffffffff811660208c0152965061164a60408a0161145f565b60ff811660408c0152965061166160608a0161119d565b6001600160a01b03811660608c015296509998505050505050505050565b803561168a81611470565b15158252602081013561169c81611470565b1515602083015260408101356116b181611470565b1515604083015260608101356116c681611470565b8015156060840152505050565b8281526040602082015260006116e98384611374565b61016060408501526117006101a0850182846113c1565b9150506117106020850185611374565b603f19808685030160608701526117288483856113c1565b93506117376040880188611374565b93509150808685030160808701526117508484846113c1565b935061175e6060880161119d565b6001600160a01b03811660a0880152925061177c6080880188611374565b93509150808685030160c08701526117958484846113c1565b93506117a460a08801886113ea565b9250808685030160e087015250506117bc8282611489565b9150506117cb60c0850161119d565b6001600160a01b03166101008401526117eb610120840160e0860161167f565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405290565b6040805190810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405160c0810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516080810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051610100810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516060810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051601f8201601f1916810167ffffffffffffffff8111828210171561190c5761190c6117f3565b604052919050565b600082601f83011261192557600080fd5b813567ffffffffffffffff81111561193f5761193f6117f3565b611952601f8201601f19166020016118e3565b81815284602083860101111561196757600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff82111561199e5761199e6117f3565b5060051b60200190565b803565ffffffffffff811681146111a857600080fd5b80356dffffffffffffffffffffffffffff811681146111a857600080fd5b600061022082840312156119ef57600080fd5b6119f7611809565b9050611a028261143a565b8152611a106020830161143a565b6020820152611a2160408301611426565b6040820152611a326060830161147e565b6060820152611a436080830161147e565b6080820152611a5460a0830161147e565b60a0820152611a6560c0830161147e565b60c0820152611a7660e0830161147e565b60e0820152610100611a8981840161147e565b90820152610120611a9b83820161147e565b90820152610140611aad83820161147e565b90820152610160611abf83820161147e565b90820152610180611ad183820161147e565b908201526101a0611ae383820161147e565b908201526101c0611af583820161147e565b908201526101e0611b0783820161147e565b90820152610200611b1983820161143a565b9082015292915050565b803566ffffffffffffff811681146111a857600080fd5b600082601f830112611b4b57600080fd5b81356020611b60611b5b83611984565b6118e3565b82815260059290921b84018101918181019086841115611b7f57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ba357600080fd5b908801906040828b03601f1901811315611bbc57600080fd5b611bc4611833565b8784013581528184013583811115611bdb57600080fd5b8085019450508b603f850112611bf057600080fd5b878401359250611c02611b5b84611984565b83815260c09093028401820192888101908d851115611c2057600080fd5b948301945b84861015611cb95760c0868f031215611c3d57600080fd5b611c45611856565b8635611c5081611470565b8152611c5d878c01611426565b8b820152611c6c858801611b23565b858201526060870135611c7e81611185565b6060820152611c8f608088016119a8565b608082015260a0870135611ca281611185565b60a0820152825260c0959095019490890190611c25565b828a0152508652505050918301918301611b83565b509695505050505050565b600082601f830112611cea57600080fd5b81356020611cfa611b5b83611984565b82815260069290921b84018101918181019086841115611d1957600080fd5b8286015b84811015611cce5760408189031215611d365760008081fd5b611d3e611833565b81357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81168114611d6b5760008081fd5b8152611d78828601611426565b81860152835291830191604001611d1d565b600082601f830112611d9b57600080fd5b81356020611dab611b5b83611984565b82815260059290921b84018101918181019086841115611dca57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611def5760008081fd5b908801906080828b03601f1901811315611e095760008081fd5b611e11611879565b87840135611e1e81611185565b8152604084810135611e2f81611185565b828a015260608581013585811115611e475760008081fd5b611e558f8c838a0101611cd9565b8484015250928501359284841115611e6f57600091508182fd5b611e7d8e8b86890101611cd9565b90830152508652505050918301918301611dce565b600082601f830112611ea357600080fd5b81356020611eb3611b5b83611984565b82815260059290921b84018101918181019086841115611ed257600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ef75760008081fd5b90880190610300828b03601f1901811315611f125760008081fd5b611f1a61189c565b611f258885016119a8565b81526040611f34818601611426565b898301526060611f458187016119be565b8284015260809150611f58828701611426565b9083015260a0611f6986820161119d565b8284015260c09150611f7d8e8388016119dc565b908301526102e085013584811115611f955760008081fd5b611fa38e8b83890101611b3a565b82840152505081840135915082821115611fbd5760008081fd5b611fcb8c8984870101611d8a565b60e08201528652505050918301918301611ed6565b600082601f830112611ff157600080fd5b81356020612001611b5b83611984565b82815260059290921b8401810191818101908684111561202057600080fd5b8286015b84811015611cce57803567ffffffffffffffff8082111561204457600080fd5b908801906040828b03601f190181131561205d57600080fd5b612065611833565b8784013561207281611185565b8152838201358381111561208557600080fd5b8085019450508b603f85011261209a57600080fd5b8784013592506120ac611b5b84611984565b83815260609093028401820192888101908d8511156120ca57600080fd5b948301945b8486101561212c576060868f0312156120e757600080fd5b6120ef6118c0565b86356120fa81611185565b8152612107878c0161145f565b8b820152612116858801611426565b81860152825260609590950194908901906120cf565b828a0152508652505050918301918301612024565b60006080823603121561215357600080fd5b61215b611879565b823567ffffffffffffffff8082111561217357600080fd5b61217f36838701611914565b8352602085013591508082111561219557600080fd5b6121a136838701611e92565b602084015260408501359150808211156121ba57600080fd5b6121c636838701611fe0565b604084015260608501359150808211156121df57600080fd5b506121ec36828601611914565b60608301525092915050565b60006080823603121561220a57600080fd5b612212611879565b61221b83611b23565b8152602083013567ffffffffffffffff8082111561219557600080fd5b60006060823603121561224a57600080fd5b6122526118c0565b61225b83611b23565b8152602083013567ffffffffffffffff8082111561227857600080fd5b61228436838701611e92565b6020840152604085013591508082111561229d57600080fd5b506122aa36828601611914565b60408301525092915050565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156122f2576020818501810151868301820152016122d6565b506000602082860101526020601f19601f83011685010191505092915050565b805161ffff168252602081015161232f602084018261ffff169052565b506040810151612347604084018263ffffffff169052565b50606081015161235b606084018215159052565b50608081015161236f608084018215159052565b5060a081015161238360a084018215159052565b5060c081015161239760c084018215159052565b5060e08101516123ab60e084018215159052565b5061010081810151151590830152610120808201511515908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c0808201511515908301526101e0808201511515908301526102008082015115159083015261022080820151151590830152610240808201516001600160a01b0316908301526102608082015161ffff811682850152610ae0565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180518552850151604086860181905281518187018190529187019160609081880190865b8181101561251d5785518051151584528b81015163ffffffff168c8501528581015166ffffffffffffff1686850152848101516001600160a01b039081168686015260808083015165ffffffffffff169086015260a0918201511690840152948a019460c0909201916001016124ac565b50509c88019c965050509285019250600101612475565b509198975050505050505050565b60008151808452602080850194506020840160005b838110156125a257815180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16885283015163ffffffff168388015260409096019590820190600101612557565b509495945050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f19868403018952815160806001600160a01b038083511686528087840151168787015250604080830151828288015261260f83880182612542565b925050506060808301519250858203818701525061262d8183612542565b9a86019a94505050908301906001016125ca565b5090979650505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f198684030189528151805165ffffffffffff1684528481015163ffffffff908116868601526040808301516dffffffffffffffffffffffffffff1690860152606080830151909116908501526080808201516001600160a01b03169085015260a08082015161036091906126eb82880182612312565b505060c08201518161032087015261270582870182612457565b91505060e0820151915084810361034086015261272281836125ad565b9a86019a945050509083019060010161266b565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180516001600160a01b03908116865290860151604087870181905281518188018190529188019290916060919082890190875b818110156127d25786518051851684528c81015160ff168d85015286015163ffffffff1686840152958b01959184019160010161279a565b50509d89019d97505050938601935050600101612754565b6001600160a01b038616815260a06020820152600061280c60a08301876122cc565b828103604084015261281e818761264e565b905082810360608401526128328186612736565b9050828103608084015261284681856122cc565b98975050505050505050565b60006020828403121561286457600080fd5b815161132d81611470565b848152608060208201526000612888608083018661264e565b828103604084015261289a8186612736565b90508281036060840152610de581856122cc565b8381526060602082015260006128c7606083018561264e565b82810360408401526128d981856122cc565b969550505050505056fea2646970667358221220fe9aeb2923c79b329e15f469ded294b7c8f953591673f78360a251462b46f9d064736f6c63430008170033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100725760003560e01c8063abf8c5c811610050578063abf8c5c8146100fe578063ac6a26f814610125578063f434c9141461013857600080fd5b80633c3a22bb1461007757806388bc2ef3146100ac5780638b716777146100eb575b600080fd5b61008a6100853660046111d8565b61015f565b604080519283526001600160a01b039091166020830152015b60405180910390f35b6100d37f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad2281565b6040516001600160a01b0390911681526020016100a3565b61008a6100f9366004611261565b61035d565b6100d37f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be81565b61008a610133366004611296565b610569565b6100d37f0000000000000000000000004cdb4200e4e65a277676cd5e8d3c7c7c4da7fbe581565b6000807f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad226001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e49190611310565b6001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102459190611334565b61025090600161134d565b60405163cc7bb31f60e01b81529092506001600160a01b037f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be169063cc7bb31f906102a190859089906004016116d3565b6020604051808303816000875af11580156102c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e49190611310565b90506102fa866102f386612141565b83866106d0565b6040516351106b4b60e11b8152600481018390526001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561033c57600080fd5b505af1158015610350573d6000803e3d6000fd5b5050505094509492505050565b60008061045b7f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad226001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e59190611310565b6001600160a01b0316636352211e886040518263ffffffff1660e01b815260040161041291815260200190565b602060405180830381865afa15801561042f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104539190611310565b8760026109d8565b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be169063cc7bb31f906104a990899089906004016116d3565b6020604051808303816000875af11580156104c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ec9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b5050505061055e8685610557906121f8565b8386610ae6565b915094509492505050565b6000806105cd7f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad226001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be169063cc7bb31f9061061b90899089906004016116d3565b6020604051808303816000875af115801561063a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065e9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b1580156106a357600080fd5b505af11580156106b7573d6000803e3d6000fd5b5050505061055e86856106c990612238565b8386610df0565b60208301515160008167ffffffffffffffff8111156106f1576106f16117f3565b60405190808252806020026020018201604052801561072a57816020015b6107176110a7565b81526020019060019003908161070f5790505b50905060005b8281101561095057600086602001518281518110610750576107506122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e0015115158152602001896001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061093c5761093c6122b6565b602090810291909101015250600101610730565b50845160408087015160608801519151634e530d8960e11b81526001600160a01b03871693639ca61b129361098c938c938892906004016127ea565b6020604051808303816000875af11580156109ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cf9190611334565b50505050505050565b336001600160a01b0384168114801590610a9d5750604051631a45b42760e11b81526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000004cdb4200e4e65a277676cd5e8d3c7c7c4da7fbe5169063348b684e9060c401602060405180830381865afa158015610a77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9b9190612852565b155b15610ae057604051631326f75560e11b81526001600160a01b03808616600483015282166024820152604481018490526064810183905260840160405180910390fd5b50505050565b602083015151600090818167ffffffffffffffff811115610b0957610b096117f3565b604051908082528060200260200182016040528015610b4257816020015b610b2f6110a7565b815260200190600190039081610b275790505b50905060005b82811015610d6857600087602001518281518110610b6857610b686122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610d5457610d546122b6565b602090810291909101015250600101610b48565b5060408087015160608801519151632a550fab60e11b81526001600160a01b038716926354aa1f5692610da2928c9287929160040161286f565b6020604051808303816000875af1158015610dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de59190611334565b979650505050505050565b602083015151600090818167ffffffffffffffff811115610e1357610e136117f3565b604051908082528060200260200182016040528015610e4c57816020015b610e396110a7565b815260200190600190039081610e315790505b50905060005b8281101561107257600087602001518281518110610e7257610e726122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061105e5761105e6122b6565b602090810291909101015250600101610e52565b506040808701519051630e18de6b60e41b81526001600160a01b0386169163e18de6b091610da2918b918691906004016128ae565b6040805161010080820183526000808352602080840182905283850182905260608085018390526080808601849052865161028081018852848152928301849052958201839052810182905293840181905260a084810182905260c0850182905260e0850182905291840181905261012084018190526101408401819052610160840181905261018084018190526101a084018190526101c084018190526101e08401819052610200840181905261022084018190526102408401819052610260840152909190820190815260200160608152602001606081525090565b6001600160a01b038116811461119a57600080fd5b50565b80356111a881611185565b919050565b600061016082840312156111c057600080fd5b50919050565b6000608082840312156111c057600080fd5b600080600080608085870312156111ee57600080fd5b84356111f981611185565b9350602085013567ffffffffffffffff8082111561121657600080fd5b611222888389016111ad565b9450604087013591508082111561123857600080fd5b50611245878288016111c6565b925050606085013561125681611185565b939692955090935050565b6000806000806080858703121561127757600080fd5b84359350602085013567ffffffffffffffff8082111561121657600080fd5b600080600080608085870312156112ac57600080fd5b84359350602085013567ffffffffffffffff808211156112cb57600080fd5b6112d7888389016111ad565b945060408701359150808211156112ed57600080fd5b5085016060818803121561130057600080fd5b9150606085013561125681611185565b60006020828403121561132257600080fd5b815161132d81611185565b9392505050565b60006020828403121561134657600080fd5b5051919050565b8082018082111561136e57634e487b7160e01b600052601160045260246000fd5b92915050565b6000808335601e1984360301811261138b57600080fd5b830160208101925035905067ffffffffffffffff8111156113ab57600080fd5b8036038213156113ba57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008235607e1983360301811261140057600080fd5b90910192915050565b80356cffffffffffffffffffffffffff811681146111a857600080fd5b803563ffffffff811681146111a857600080fd5b803561ffff811681146111a857600080fd5b803562ffffff811681146111a857600080fd5b803560ff811681146111a857600080fd5b801515811461119a57600080fd5b80356111a881611470565b600060808084018335601e198536030181126114a457600080fd5b8401602081810191359067ffffffffffffffff8211156114c357600080fd5b6101c080830236038413156114d757600080fd5b608089529382905260a09384890160005b8481101561162357611510826114fd88611409565b6cffffffffffffffffffffffffff169052565b61151b848701611426565b63ffffffff16848301526040611532878201611426565b63ffffffff1690830152606061154987820161143a565b61ffff169083015261155c86890161119d565b6001600160a01b031688830152858701358783015260c061157e81880161144c565b62ffffff169083015260e061159487820161145f565b60ff16908301526101006115a987820161147e565b1515908301526101206115bd87820161147e565b1515908301526101406115d187820161147e565b1515908301526101606115e587820161147e565b1515908301526101806115f987820161147e565b1515908301526101a061160d87820161147e565b15159083015294820194908201906001016114e8565b5061163060208a01611426565b63ffffffff811660208c0152965061164a60408a0161145f565b60ff811660408c0152965061166160608a0161119d565b6001600160a01b03811660608c015296509998505050505050505050565b803561168a81611470565b15158252602081013561169c81611470565b1515602083015260408101356116b181611470565b1515604083015260608101356116c681611470565b8015156060840152505050565b8281526040602082015260006116e98384611374565b61016060408501526117006101a0850182846113c1565b9150506117106020850185611374565b603f19808685030160608701526117288483856113c1565b93506117376040880188611374565b93509150808685030160808701526117508484846113c1565b935061175e6060880161119d565b6001600160a01b03811660a0880152925061177c6080880188611374565b93509150808685030160c08701526117958484846113c1565b93506117a460a08801886113ea565b9250808685030160e087015250506117bc8282611489565b9150506117cb60c0850161119d565b6001600160a01b03166101008401526117eb610120840160e0860161167f565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405290565b6040805190810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405160c0810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516080810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051610100810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516060810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051601f8201601f1916810167ffffffffffffffff8111828210171561190c5761190c6117f3565b604052919050565b600082601f83011261192557600080fd5b813567ffffffffffffffff81111561193f5761193f6117f3565b611952601f8201601f19166020016118e3565b81815284602083860101111561196757600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff82111561199e5761199e6117f3565b5060051b60200190565b803565ffffffffffff811681146111a857600080fd5b80356dffffffffffffffffffffffffffff811681146111a857600080fd5b600061022082840312156119ef57600080fd5b6119f7611809565b9050611a028261143a565b8152611a106020830161143a565b6020820152611a2160408301611426565b6040820152611a326060830161147e565b6060820152611a436080830161147e565b6080820152611a5460a0830161147e565b60a0820152611a6560c0830161147e565b60c0820152611a7660e0830161147e565b60e0820152610100611a8981840161147e565b90820152610120611a9b83820161147e565b90820152610140611aad83820161147e565b90820152610160611abf83820161147e565b90820152610180611ad183820161147e565b908201526101a0611ae383820161147e565b908201526101c0611af583820161147e565b908201526101e0611b0783820161147e565b90820152610200611b1983820161143a565b9082015292915050565b803566ffffffffffffff811681146111a857600080fd5b600082601f830112611b4b57600080fd5b81356020611b60611b5b83611984565b6118e3565b82815260059290921b84018101918181019086841115611b7f57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ba357600080fd5b908801906040828b03601f1901811315611bbc57600080fd5b611bc4611833565b8784013581528184013583811115611bdb57600080fd5b8085019450508b603f850112611bf057600080fd5b878401359250611c02611b5b84611984565b83815260c09093028401820192888101908d851115611c2057600080fd5b948301945b84861015611cb95760c0868f031215611c3d57600080fd5b611c45611856565b8635611c5081611470565b8152611c5d878c01611426565b8b820152611c6c858801611b23565b858201526060870135611c7e81611185565b6060820152611c8f608088016119a8565b608082015260a0870135611ca281611185565b60a0820152825260c0959095019490890190611c25565b828a0152508652505050918301918301611b83565b509695505050505050565b600082601f830112611cea57600080fd5b81356020611cfa611b5b83611984565b82815260069290921b84018101918181019086841115611d1957600080fd5b8286015b84811015611cce5760408189031215611d365760008081fd5b611d3e611833565b81357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81168114611d6b5760008081fd5b8152611d78828601611426565b81860152835291830191604001611d1d565b600082601f830112611d9b57600080fd5b81356020611dab611b5b83611984565b82815260059290921b84018101918181019086841115611dca57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611def5760008081fd5b908801906080828b03601f1901811315611e095760008081fd5b611e11611879565b87840135611e1e81611185565b8152604084810135611e2f81611185565b828a015260608581013585811115611e475760008081fd5b611e558f8c838a0101611cd9565b8484015250928501359284841115611e6f57600091508182fd5b611e7d8e8b86890101611cd9565b90830152508652505050918301918301611dce565b600082601f830112611ea357600080fd5b81356020611eb3611b5b83611984565b82815260059290921b84018101918181019086841115611ed257600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ef75760008081fd5b90880190610300828b03601f1901811315611f125760008081fd5b611f1a61189c565b611f258885016119a8565b81526040611f34818601611426565b898301526060611f458187016119be565b8284015260809150611f58828701611426565b9083015260a0611f6986820161119d565b8284015260c09150611f7d8e8388016119dc565b908301526102e085013584811115611f955760008081fd5b611fa38e8b83890101611b3a565b82840152505081840135915082821115611fbd5760008081fd5b611fcb8c8984870101611d8a565b60e08201528652505050918301918301611ed6565b600082601f830112611ff157600080fd5b81356020612001611b5b83611984565b82815260059290921b8401810191818101908684111561202057600080fd5b8286015b84811015611cce57803567ffffffffffffffff8082111561204457600080fd5b908801906040828b03601f190181131561205d57600080fd5b612065611833565b8784013561207281611185565b8152838201358381111561208557600080fd5b8085019450508b603f85011261209a57600080fd5b8784013592506120ac611b5b84611984565b83815260609093028401820192888101908d8511156120ca57600080fd5b948301945b8486101561212c576060868f0312156120e757600080fd5b6120ef6118c0565b86356120fa81611185565b8152612107878c0161145f565b8b820152612116858801611426565b81860152825260609590950194908901906120cf565b828a0152508652505050918301918301612024565b60006080823603121561215357600080fd5b61215b611879565b823567ffffffffffffffff8082111561217357600080fd5b61217f36838701611914565b8352602085013591508082111561219557600080fd5b6121a136838701611e92565b602084015260408501359150808211156121ba57600080fd5b6121c636838701611fe0565b604084015260608501359150808211156121df57600080fd5b506121ec36828601611914565b60608301525092915050565b60006080823603121561220a57600080fd5b612212611879565b61221b83611b23565b8152602083013567ffffffffffffffff8082111561219557600080fd5b60006060823603121561224a57600080fd5b6122526118c0565b61225b83611b23565b8152602083013567ffffffffffffffff8082111561227857600080fd5b61228436838701611e92565b6020840152604085013591508082111561229d57600080fd5b506122aa36828601611914565b60408301525092915050565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156122f2576020818501810151868301820152016122d6565b506000602082860101526020601f19601f83011685010191505092915050565b805161ffff168252602081015161232f602084018261ffff169052565b506040810151612347604084018263ffffffff169052565b50606081015161235b606084018215159052565b50608081015161236f608084018215159052565b5060a081015161238360a084018215159052565b5060c081015161239760c084018215159052565b5060e08101516123ab60e084018215159052565b5061010081810151151590830152610120808201511515908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c0808201511515908301526101e0808201511515908301526102008082015115159083015261022080820151151590830152610240808201516001600160a01b0316908301526102608082015161ffff811682850152610ae0565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180518552850151604086860181905281518187018190529187019160609081880190865b8181101561251d5785518051151584528b81015163ffffffff168c8501528581015166ffffffffffffff1686850152848101516001600160a01b039081168686015260808083015165ffffffffffff169086015260a0918201511690840152948a019460c0909201916001016124ac565b50509c88019c965050509285019250600101612475565b509198975050505050505050565b60008151808452602080850194506020840160005b838110156125a257815180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16885283015163ffffffff168388015260409096019590820190600101612557565b509495945050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f19868403018952815160806001600160a01b038083511686528087840151168787015250604080830151828288015261260f83880182612542565b925050506060808301519250858203818701525061262d8183612542565b9a86019a94505050908301906001016125ca565b5090979650505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f198684030189528151805165ffffffffffff1684528481015163ffffffff908116868601526040808301516dffffffffffffffffffffffffffff1690860152606080830151909116908501526080808201516001600160a01b03169085015260a08082015161036091906126eb82880182612312565b505060c08201518161032087015261270582870182612457565b91505060e0820151915084810361034086015261272281836125ad565b9a86019a945050509083019060010161266b565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180516001600160a01b03908116865290860151604087870181905281518188018190529188019290916060919082890190875b818110156127d25786518051851684528c81015160ff168d85015286015163ffffffff1686840152958b01959184019160010161279a565b50509d89019d97505050938601935050600101612754565b6001600160a01b038616815260a06020820152600061280c60a08301876122cc565b828103604084015261281e818761264e565b905082810360608401526128328186612736565b9050828103608084015261284681856122cc565b98975050505050505050565b60006020828403121561286457600080fd5b815161132d81611470565b848152608060208201526000612888608083018661264e565b828103604084015261289a8186612736565b90508281036060840152610de581856122cc565b8381526060602082015260006128c7606083018561264e565b82810360408401526128d981856122cc565b969550505050505056fea2646970667358221220fe9aeb2923c79b329e15f469ded294b7c8f953591673f78360a251462b46f9d064736f6c63430008170033", "devdoc": { "kind": "dev", "methods": { @@ -1540,6 +1555,7 @@ "owner": "The address to set as the owner of the project. The ERC-721 which confers this project's ownership will be sent to this address." }, "returns": { + "hook": "The 721 tiers hook that was deployed for the project.", "projectId": "The ID of the newly launched project." } }, @@ -1552,6 +1568,7 @@ "projectId": "The ID of the project that rulesets are being launched for." }, "returns": { + "hook": "The 721 tiers hook that was deployed for the project.", "rulesetId": "The ID of the successfully created ruleset." } }, @@ -1564,6 +1581,7 @@ "queueRulesetsConfig": "Configuration which dictates the project's newly queued rulesets." }, "returns": { + "hook": "The 721 tiers hook that was deployed for the project.", "rulesetId": "The ID of the successfully created ruleset." } } @@ -1594,7 +1612,7 @@ }, "version": 1 }, - "gitCommit": "4c5a6a4ff88604a9c0a981284b933b4e7757161c", + "gitCommit": "ad100ab7826a4aace8ac39612835a18c1e961ec2", "sourceName": "src/JB721TiersHookProjectDeployer.sol", "chainId": "421614", "linkReferences": {}, diff --git a/deployments/nana-721-hook-testnet/arbitrum_sepolia/execution/371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8.json b/deployments/nana-721-hook-testnet/arbitrum_sepolia/execution/371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8.json new file mode 100644 index 00000000..7a872373 --- /dev/null +++ b/deployments/nana-721-hook-testnet/arbitrum_sepolia/execution/371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8.json @@ -0,0 +1,221 @@ +{ + "_format": "sphinx-sol-execution-artifact-1", + "transactions": [ + { + "receipt": { + "blockHash": "0x4b6805c4544ad394c2aee74744d31963e641982251b3de02051a2f24ca44fe52", + "blockNumber": 82265564, + "contractAddress": null, + "cumulativeGasUsed": "612456", + "from": "0x0c1c9049564269275059032Fb484Aa2e7Ab779af", + "gasPrice": "100000000", + "gasUsed": "185177", + "hash": "0x2e79cc50e0ca41d9ec62dbff0da89cee3c648671177f4480affec57a799444db", + "index": 2, + "logs": [ + { + "address": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463", + "blockHash": "0x4b6805c4544ad394c2aee74744d31963e641982251b3de02051a2f24ca44fe52", + "blockNumber": 82265564, + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "index": 3, + "topics": [ + "0x572f161235911da04685a68c06adf558fc7e4a36909dca394650e0adc19cc93d", + "0x0000000000000000000000000c1c9049564269275059032fb484aa2e7ab779af", + "0x000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c3", + "0xc367c3d36100ebb58661eac47b230d4cdb11de6d84f96286dfccebca889de04c" + ], + "transactionHash": "0x2e79cc50e0ca41d9ec62dbff0da89cee3c648671177f4480affec57a799444db", + "transactionIndex": 2 + }, + { + "address": "0xcd414DF3f7b7dA1F867fF6B5499879308087F0c3", + "blockHash": "0x4b6805c4544ad394c2aee74744d31963e641982251b3de02051a2f24ca44fe52", + "blockNumber": 82265564, + "data": "0x000000000000000000000000a2ea7657440875bf916cbfc0cfa88f13e38ad463000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "index": 4, + "topics": [ + "0x382c7aec02462c9b086aba9a7f8dbb1fb8bf336e7b624b0149eeca6726d0fb4a", + "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8", + "0x0000000000000000000000000000000000000000000000000000000000000003" + ], + "transactionHash": "0x2e79cc50e0ca41d9ec62dbff0da89cee3c648671177f4480affec57a799444db", + "transactionIndex": 2 + } + ], + "logsBloom": "0x000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000400200001000000200000000200000000000000040000000000200000000000000000000100000000000000000001000000000000000100000000000000000000000000000000000000000000000000000000040000000000000000001000000000000000000000080000000000000000000000040000000000000080000020000000020000000008000001000000000004000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000404000400000a0000000000000000000", + "status": 1, + "to": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463" + }, + "response": { + "accessList": [], + "blockNumber": 82265564, + "blockHash": "0x4b6805c4544ad394c2aee74744d31963e641982251b3de02051a2f24ca44fe52", + "chainId": "421614", + "data": "0xbe6002c2000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c3000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000003448f38f835371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000066eee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000010000000000000000000000000094bbb774520c1e0bd2afb9b3b63cc11102ed7a7b000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a2ea7657440875bf916cbfc0cfa88f13e38ad46300000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000376d7ec12658fd843211b81bc470068998684c058b1253408051992cabfd1f4058e130fd74e159a30fddc9a4e914ad1cdfcf3fd11ff4b9817a6bb1bc9f9e8f73d8f580c8c7a0330aee655985cf3975e809df7589b0bf9e1752533b3a7e1d895e5000000000000000000000000000000000000000000000000000000000000004156788b273eba8848384686f9540ee3d92ddcdc26c8271f29a00d5b08f003ecc465ec6968a34470418793c1f1cf4cf744e9131595eabdb81e083505aba2c0e1ac1b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "from": "0x0c1c9049564269275059032Fb484Aa2e7Ab779af", + "gasLimit": "201043", + "gasPrice": "100000000", + "hash": "0x2e79cc50e0ca41d9ec62dbff0da89cee3c648671177f4480affec57a799444db", + "maxFeePerGas": "200000000", + "maxPriorityFeePerGas": "0", + "nonce": 219, + "signature": { + "networkV": null, + "r": "0xf2771026fecd97d165a35c3d22d5d731f6fc12fa533a3ab544f1f1e69f2e8591", + "s": "0x202723bf84e5ed93ab1c7d579476d6901677fc8698640b204cc2dc3cb0e8c110", + "v": 28 + }, + "to": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463", + "type": 2, + "value": "0" + } + }, + { + "receipt": { + "blockHash": "0x68578308d1b41296357f995a17893b977d71d2225077121450030ab121a03705", + "blockNumber": 82265790, + "contractAddress": null, + "cumulativeGasUsed": "2557695", + "from": "0x0c1c9049564269275059032Fb484Aa2e7Ab779af", + "gasPrice": "100000000", + "gasUsed": "2557695", + "hash": "0xd8689de284c98dd00974040fb157eaa2cffdbc7e7a6fec4592d1c91358aca0b9", + "index": 1, + "logs": [ + { + "address": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463", + "blockHash": "0x68578308d1b41296357f995a17893b977d71d2225077121450030ab121a03705", + "blockNumber": 82265790, + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "index": 0, + "topics": [ + "0x572f161235911da04685a68c06adf558fc7e4a36909dca394650e0adc19cc93d", + "0x0000000000000000000000000c1c9049564269275059032fb484aa2e7ab779af", + "0x000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c3", + "0x52d5a4ad8564944a8323a31087a524dd5ec8a4eaa436887d7572720ba83a7bdb" + ], + "transactionHash": "0xd8689de284c98dd00974040fb157eaa2cffdbc7e7a6fec4592d1c91358aca0b9", + "transactionIndex": 1 + }, + { + "address": "0x94BBb774520C1E0Bd2aFb9b3B63cc11102ED7A7B", + "blockHash": "0x68578308d1b41296357f995a17893b977d71d2225077121450030ab121a03705", + "blockNumber": 82265790, + "data": "0x", + "index": 1, + "topics": [ + "0x6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8", + "0x000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c3" + ], + "transactionHash": "0xd8689de284c98dd00974040fb157eaa2cffdbc7e7a6fec4592d1c91358aca0b9", + "transactionIndex": 1 + }, + { + "address": "0xcd414DF3f7b7dA1F867fF6B5499879308087F0c3", + "blockHash": "0x68578308d1b41296357f995a17893b977d71d2225077121450030ab121a03705", + "blockNumber": 82265790, + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "index": 2, + "topics": [ + "0xa65fb05c5808f5f389d72edeaf719ce38f4cc55c1f69ca3cbfb31c21501caa07", + "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8" + ], + "transactionHash": "0xd8689de284c98dd00974040fb157eaa2cffdbc7e7a6fec4592d1c91358aca0b9", + "transactionIndex": 1 + }, + { + "address": "0xcd414DF3f7b7dA1F867fF6B5499879308087F0c3", + "blockHash": "0x68578308d1b41296357f995a17893b977d71d2225077121450030ab121a03705", + "blockNumber": 82265790, + "data": "0x", + "index": 3, + "topics": [ + "0x4383d976757d67ca920616be0b6430a681ea9d3dcce8d6d61d4603ca4a9bff63", + "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8" + ], + "transactionHash": "0xd8689de284c98dd00974040fb157eaa2cffdbc7e7a6fec4592d1c91358aca0b9", + "transactionIndex": 1 + } + ], + "logsBloom": "0x00000000000010000000000000080000000000000000000000000000000000000080000000000000000000000040020000100000000000000020000000000000000000000000220000000000000000000010000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000004000000000000000000100000000000000000000008000000000000800000000004000800000000000000002000000002200000000000000100002000004000000000002000000000000000000000000040000000000000000000000000000010000000000000008000010000000000240000040000080000000000008000000", + "status": 1, + "to": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463" + }, + "response": { + "accessList": [], + "blockNumber": 82265790, + "blockHash": "0x68578308d1b41296357f995a17893b977d71d2225077121450030ab121a03705", + "chainId": "421614", + "data": "0xbe6002c2000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000002d64e65ec46d00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000066eee0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000004e59b44847b379578588920ca78fbf26c0b4956c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029e88700000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000002ab84a423732315469657273486f6f6b50726f6a6563744465706c6f79657200000060e06040523480156200001157600080fd5b5060405162002a3838038062002a3883398101604081905262000034916200006b565b6001600160a01b0391821660805291811660a0521660c052620000bf565b6001600160a01b03811681146200006857600080fd5b50565b6000806000606084860312156200008157600080fd5b83516200008e8162000052565b6020850151909350620000a18162000052565b6040850151909250620000b48162000052565b809150509250925092565b60805160a05160c0516129196200011f600039600081816101030152818161026a0152818161047201526105e401526000818160b10152818161016401528181610365015261057101526000818161013d0152610a3001526129196000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063abf8c5c811610050578063abf8c5c8146100fe578063ac6a26f814610125578063f434c9141461013857600080fd5b80633c3a22bb1461007757806388bc2ef3146100ac5780638b716777146100eb575b600080fd5b61008a6100853660046111d8565b61015f565b604080519283526001600160a01b039091166020830152015b60405180910390f35b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100a3565b61008a6100f9366004611261565b61035d565b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b61008a610133366004611296565b610569565b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e49190611310565b6001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102459190611334565b61025090600161134d565b60405163cc7bb31f60e01b81529092506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f906102a190859089906004016116d3565b6020604051808303816000875af11580156102c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e49190611310565b90506102fa866102f386612141565b83866106d0565b6040516351106b4b60e11b8152600481018390526001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561033c57600080fd5b505af1158015610350573d6000803e3d6000fd5b5050505094509492505050565b60008061045b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e59190611310565b6001600160a01b0316636352211e886040518263ffffffff1660e01b815260040161041291815260200190565b602060405180830381865afa15801561042f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104539190611310565b8760026109d8565b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f906104a990899089906004016116d3565b6020604051808303816000875af11580156104c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ec9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b5050505061055e8685610557906121f8565b8386610ae6565b915094509492505050565b6000806105cd7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f9061061b90899089906004016116d3565b6020604051808303816000875af115801561063a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065e9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b1580156106a357600080fd5b505af11580156106b7573d6000803e3d6000fd5b5050505061055e86856106c990612238565b8386610df0565b60208301515160008167ffffffffffffffff8111156106f1576106f16117f3565b60405190808252806020026020018201604052801561072a57816020015b6107176110a7565b81526020019060019003908161070f5790505b50905060005b8281101561095057600086602001518281518110610750576107506122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e0015115158152602001896001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061093c5761093c6122b6565b602090810291909101015250600101610730565b50845160408087015160608801519151634e530d8960e11b81526001600160a01b03871693639ca61b129361098c938c938892906004016127ea565b6020604051808303816000875af11580156109ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cf9190611334565b50505050505050565b336001600160a01b0384168114801590610a9d5750604051631a45b42760e11b81526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000000000000000000000000000000000000000000000169063348b684e9060c401602060405180830381865afa158015610a77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9b9190612852565b155b15610ae057604051631326f75560e11b81526001600160a01b03808616600483015282166024820152604481018490526064810183905260840160405180910390fd5b50505050565b602083015151600090818167ffffffffffffffff811115610b0957610b096117f3565b604051908082528060200260200182016040528015610b4257816020015b610b2f6110a7565b815260200190600190039081610b275790505b50905060005b82811015610d6857600087602001518281518110610b6857610b686122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610d5457610d546122b6565b602090810291909101015250600101610b48565b5060408087015160608801519151632a550fab60e11b81526001600160a01b038716926354aa1f5692610da2928c9287929160040161286f565b6020604051808303816000875af1158015610dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de59190611334565b979650505050505050565b602083015151600090818167ffffffffffffffff811115610e1357610e136117f3565b604051908082528060200260200182016040528015610e4c57816020015b610e396110a7565b815260200190600190039081610e315790505b50905060005b8281101561107257600087602001518281518110610e7257610e726122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061105e5761105e6122b6565b602090810291909101015250600101610e52565b506040808701519051630e18de6b60e41b81526001600160a01b0386169163e18de6b091610da2918b918691906004016128ae565b6040805161010080820183526000808352602080840182905283850182905260608085018390526080808601849052865161028081018852848152928301849052958201839052810182905293840181905260a084810182905260c0850182905260e0850182905291840181905261012084018190526101408401819052610160840181905261018084018190526101a084018190526101c084018190526101e08401819052610200840181905261022084018190526102408401819052610260840152909190820190815260200160608152602001606081525090565b6001600160a01b038116811461119a57600080fd5b50565b80356111a881611185565b919050565b600061016082840312156111c057600080fd5b50919050565b6000608082840312156111c057600080fd5b600080600080608085870312156111ee57600080fd5b84356111f981611185565b9350602085013567ffffffffffffffff8082111561121657600080fd5b611222888389016111ad565b9450604087013591508082111561123857600080fd5b50611245878288016111c6565b925050606085013561125681611185565b939692955090935050565b6000806000806080858703121561127757600080fd5b84359350602085013567ffffffffffffffff8082111561121657600080fd5b600080600080608085870312156112ac57600080fd5b84359350602085013567ffffffffffffffff808211156112cb57600080fd5b6112d7888389016111ad565b945060408701359150808211156112ed57600080fd5b5085016060818803121561130057600080fd5b9150606085013561125681611185565b60006020828403121561132257600080fd5b815161132d81611185565b9392505050565b60006020828403121561134657600080fd5b5051919050565b8082018082111561136e57634e487b7160e01b600052601160045260246000fd5b92915050565b6000808335601e1984360301811261138b57600080fd5b830160208101925035905067ffffffffffffffff8111156113ab57600080fd5b8036038213156113ba57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008235607e1983360301811261140057600080fd5b90910192915050565b80356cffffffffffffffffffffffffff811681146111a857600080fd5b803563ffffffff811681146111a857600080fd5b803561ffff811681146111a857600080fd5b803562ffffff811681146111a857600080fd5b803560ff811681146111a857600080fd5b801515811461119a57600080fd5b80356111a881611470565b600060808084018335601e198536030181126114a457600080fd5b8401602081810191359067ffffffffffffffff8211156114c357600080fd5b6101c080830236038413156114d757600080fd5b608089529382905260a09384890160005b8481101561162357611510826114fd88611409565b6cffffffffffffffffffffffffff169052565b61151b848701611426565b63ffffffff16848301526040611532878201611426565b63ffffffff1690830152606061154987820161143a565b61ffff169083015261155c86890161119d565b6001600160a01b031688830152858701358783015260c061157e81880161144c565b62ffffff169083015260e061159487820161145f565b60ff16908301526101006115a987820161147e565b1515908301526101206115bd87820161147e565b1515908301526101406115d187820161147e565b1515908301526101606115e587820161147e565b1515908301526101806115f987820161147e565b1515908301526101a061160d87820161147e565b15159083015294820194908201906001016114e8565b5061163060208a01611426565b63ffffffff811660208c0152965061164a60408a0161145f565b60ff811660408c0152965061166160608a0161119d565b6001600160a01b03811660608c015296509998505050505050505050565b803561168a81611470565b15158252602081013561169c81611470565b1515602083015260408101356116b181611470565b1515604083015260608101356116c681611470565b8015156060840152505050565b8281526040602082015260006116e98384611374565b61016060408501526117006101a0850182846113c1565b9150506117106020850185611374565b603f19808685030160608701526117288483856113c1565b93506117376040880188611374565b93509150808685030160808701526117508484846113c1565b935061175e6060880161119d565b6001600160a01b03811660a0880152925061177c6080880188611374565b93509150808685030160c08701526117958484846113c1565b93506117a460a08801886113ea565b9250808685030160e087015250506117bc8282611489565b9150506117cb60c0850161119d565b6001600160a01b03166101008401526117eb610120840160e0860161167f565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405290565b6040805190810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405160c0810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516080810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051610100810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516060810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051601f8201601f1916810167ffffffffffffffff8111828210171561190c5761190c6117f3565b604052919050565b600082601f83011261192557600080fd5b813567ffffffffffffffff81111561193f5761193f6117f3565b611952601f8201601f19166020016118e3565b81815284602083860101111561196757600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff82111561199e5761199e6117f3565b5060051b60200190565b803565ffffffffffff811681146111a857600080fd5b80356dffffffffffffffffffffffffffff811681146111a857600080fd5b600061022082840312156119ef57600080fd5b6119f7611809565b9050611a028261143a565b8152611a106020830161143a565b6020820152611a2160408301611426565b6040820152611a326060830161147e565b6060820152611a436080830161147e565b6080820152611a5460a0830161147e565b60a0820152611a6560c0830161147e565b60c0820152611a7660e0830161147e565b60e0820152610100611a8981840161147e565b90820152610120611a9b83820161147e565b90820152610140611aad83820161147e565b90820152610160611abf83820161147e565b90820152610180611ad183820161147e565b908201526101a0611ae383820161147e565b908201526101c0611af583820161147e565b908201526101e0611b0783820161147e565b90820152610200611b1983820161143a565b9082015292915050565b803566ffffffffffffff811681146111a857600080fd5b600082601f830112611b4b57600080fd5b81356020611b60611b5b83611984565b6118e3565b82815260059290921b84018101918181019086841115611b7f57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ba357600080fd5b908801906040828b03601f1901811315611bbc57600080fd5b611bc4611833565b8784013581528184013583811115611bdb57600080fd5b8085019450508b603f850112611bf057600080fd5b878401359250611c02611b5b84611984565b83815260c09093028401820192888101908d851115611c2057600080fd5b948301945b84861015611cb95760c0868f031215611c3d57600080fd5b611c45611856565b8635611c5081611470565b8152611c5d878c01611426565b8b820152611c6c858801611b23565b858201526060870135611c7e81611185565b6060820152611c8f608088016119a8565b608082015260a0870135611ca281611185565b60a0820152825260c0959095019490890190611c25565b828a0152508652505050918301918301611b83565b509695505050505050565b600082601f830112611cea57600080fd5b81356020611cfa611b5b83611984565b82815260069290921b84018101918181019086841115611d1957600080fd5b8286015b84811015611cce5760408189031215611d365760008081fd5b611d3e611833565b81357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81168114611d6b5760008081fd5b8152611d78828601611426565b81860152835291830191604001611d1d565b600082601f830112611d9b57600080fd5b81356020611dab611b5b83611984565b82815260059290921b84018101918181019086841115611dca57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611def5760008081fd5b908801906080828b03601f1901811315611e095760008081fd5b611e11611879565b87840135611e1e81611185565b8152604084810135611e2f81611185565b828a015260608581013585811115611e475760008081fd5b611e558f8c838a0101611cd9565b8484015250928501359284841115611e6f57600091508182fd5b611e7d8e8b86890101611cd9565b90830152508652505050918301918301611dce565b600082601f830112611ea357600080fd5b81356020611eb3611b5b83611984565b82815260059290921b84018101918181019086841115611ed257600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ef75760008081fd5b90880190610300828b03601f1901811315611f125760008081fd5b611f1a61189c565b611f258885016119a8565b81526040611f34818601611426565b898301526060611f458187016119be565b8284015260809150611f58828701611426565b9083015260a0611f6986820161119d565b8284015260c09150611f7d8e8388016119dc565b908301526102e085013584811115611f955760008081fd5b611fa38e8b83890101611b3a565b82840152505081840135915082821115611fbd5760008081fd5b611fcb8c8984870101611d8a565b60e08201528652505050918301918301611ed6565b600082601f830112611ff157600080fd5b81356020612001611b5b83611984565b82815260059290921b8401810191818101908684111561202057600080fd5b8286015b84811015611cce57803567ffffffffffffffff8082111561204457600080fd5b908801906040828b03601f190181131561205d57600080fd5b612065611833565b8784013561207281611185565b8152838201358381111561208557600080fd5b8085019450508b603f85011261209a57600080fd5b8784013592506120ac611b5b84611984565b83815260609093028401820192888101908d8511156120ca57600080fd5b948301945b8486101561212c576060868f0312156120e757600080fd5b6120ef6118c0565b86356120fa81611185565b8152612107878c0161145f565b8b820152612116858801611426565b81860152825260609590950194908901906120cf565b828a0152508652505050918301918301612024565b60006080823603121561215357600080fd5b61215b611879565b823567ffffffffffffffff8082111561217357600080fd5b61217f36838701611914565b8352602085013591508082111561219557600080fd5b6121a136838701611e92565b602084015260408501359150808211156121ba57600080fd5b6121c636838701611fe0565b604084015260608501359150808211156121df57600080fd5b506121ec36828601611914565b60608301525092915050565b60006080823603121561220a57600080fd5b612212611879565b61221b83611b23565b8152602083013567ffffffffffffffff8082111561219557600080fd5b60006060823603121561224a57600080fd5b6122526118c0565b61225b83611b23565b8152602083013567ffffffffffffffff8082111561227857600080fd5b61228436838701611e92565b6020840152604085013591508082111561229d57600080fd5b506122aa36828601611914565b60408301525092915050565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156122f2576020818501810151868301820152016122d6565b506000602082860101526020601f19601f83011685010191505092915050565b805161ffff168252602081015161232f602084018261ffff169052565b506040810151612347604084018263ffffffff169052565b50606081015161235b606084018215159052565b50608081015161236f608084018215159052565b5060a081015161238360a084018215159052565b5060c081015161239760c084018215159052565b5060e08101516123ab60e084018215159052565b5061010081810151151590830152610120808201511515908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c0808201511515908301526101e0808201511515908301526102008082015115159083015261022080820151151590830152610240808201516001600160a01b0316908301526102608082015161ffff811682850152610ae0565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180518552850151604086860181905281518187018190529187019160609081880190865b8181101561251d5785518051151584528b81015163ffffffff168c8501528581015166ffffffffffffff1686850152848101516001600160a01b039081168686015260808083015165ffffffffffff169086015260a0918201511690840152948a019460c0909201916001016124ac565b50509c88019c965050509285019250600101612475565b509198975050505050505050565b60008151808452602080850194506020840160005b838110156125a257815180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16885283015163ffffffff168388015260409096019590820190600101612557565b509495945050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f19868403018952815160806001600160a01b038083511686528087840151168787015250604080830151828288015261260f83880182612542565b925050506060808301519250858203818701525061262d8183612542565b9a86019a94505050908301906001016125ca565b5090979650505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f198684030189528151805165ffffffffffff1684528481015163ffffffff908116868601526040808301516dffffffffffffffffffffffffffff1690860152606080830151909116908501526080808201516001600160a01b03169085015260a08082015161036091906126eb82880182612312565b505060c08201518161032087015261270582870182612457565b91505060e0820151915084810361034086015261272281836125ad565b9a86019a945050509083019060010161266b565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180516001600160a01b03908116865290860151604087870181905281518188018190529188019290916060919082890190875b818110156127d25786518051851684528c81015160ff168d85015286015163ffffffff1686840152958b01959184019160010161279a565b50509d89019d97505050938601935050600101612754565b6001600160a01b038616815260a06020820152600061280c60a08301876122cc565b828103604084015261281e818761264e565b905082810360608401526128328186612736565b9050828103608084015261284681856122cc565b98975050505050505050565b60006020828403121561286457600080fd5b815161132d81611470565b848152608060208201526000612888608083018661264e565b828103604084015261289a8186612736565b90508281036060840152610de581856122cc565b8381526060602082015260006128c7606083018561264e565b82810360408401526128d981856122cc565b969550505050505056fea2646970667358221220fe9aeb2923c79b329e15f469ded294b7c8f953591673f78360a251462b46f9d064736f6c63430008170033000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad220000000000000000000000004cdb4200e4e65a277676cd5e8d3c7c7c4da7fbe50000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be0000000000000000000000000000000000000000000000000000000000000000000000000000000357c8f2646e7ee5c3b8a430602bee44fb4fb84b5829637f658226a63d69421ecb16209b5acfcf9f6e00ddd2d4b9dc93d5431e005d1be914e6cb735db3754ce62614a49fdb0b549e9c144fc1aa88fa725fa415d5b5055d3a633eb501cb489fd9b400000000000000000000000000000000000000000000000000000000", + "from": "0x0c1c9049564269275059032Fb484Aa2e7Ab779af", + "gasLimit": "3259615", + "gasPrice": "100000000", + "hash": "0xd8689de284c98dd00974040fb157eaa2cffdbc7e7a6fec4592d1c91358aca0b9", + "maxFeePerGas": "200000000", + "maxPriorityFeePerGas": "0", + "nonce": 220, + "signature": { + "networkV": null, + "r": "0x5ca98e3b457dd6829c4137d6a788d7972edd70ca23c1846fe374b147a7341971", + "s": "0x1c070a788872cb4c49ad95ef0de334898ee0a55c03a9930b3ba5d0a8d207268b", + "v": 28 + }, + "to": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463", + "type": 2, + "value": "0" + } + } + ], + "merkleRoot": "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8", + "solcInputHashes": [ + "2fd444c97aa0fa789adae5192c86e854" + ], + "safeAddress": "0x94BBb774520C1E0Bd2aFb9b3B63cc11102ED7A7B", + "moduleAddress": "0xcd414DF3f7b7dA1F867fF6B5499879308087F0c3", + "executorAddress": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463", + "nonce": "3", + "chainId": "421614", + "actions": [ + { + "to": "0x4e59b44847b379578588920cA78FbF26c0B4956C", + "value": "0", + "txData": "0x4a423732315469657273486f6f6b50726f6a6563744465706c6f79657200000060e06040523480156200001157600080fd5b5060405162002a3838038062002a3883398101604081905262000034916200006b565b6001600160a01b0391821660805291811660a0521660c052620000bf565b6001600160a01b03811681146200006857600080fd5b50565b6000806000606084860312156200008157600080fd5b83516200008e8162000052565b6020850151909350620000a18162000052565b6040850151909250620000b48162000052565b809150509250925092565b60805160a05160c0516129196200011f600039600081816101030152818161026a0152818161047201526105e401526000818160b10152818161016401528181610365015261057101526000818161013d0152610a3001526129196000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063abf8c5c811610050578063abf8c5c8146100fe578063ac6a26f814610125578063f434c9141461013857600080fd5b80633c3a22bb1461007757806388bc2ef3146100ac5780638b716777146100eb575b600080fd5b61008a6100853660046111d8565b61015f565b604080519283526001600160a01b039091166020830152015b60405180910390f35b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100a3565b61008a6100f9366004611261565b61035d565b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b61008a610133366004611296565b610569565b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e49190611310565b6001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102459190611334565b61025090600161134d565b60405163cc7bb31f60e01b81529092506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f906102a190859089906004016116d3565b6020604051808303816000875af11580156102c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e49190611310565b90506102fa866102f386612141565b83866106d0565b6040516351106b4b60e11b8152600481018390526001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561033c57600080fd5b505af1158015610350573d6000803e3d6000fd5b5050505094509492505050565b60008061045b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e59190611310565b6001600160a01b0316636352211e886040518263ffffffff1660e01b815260040161041291815260200190565b602060405180830381865afa15801561042f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104539190611310565b8760026109d8565b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f906104a990899089906004016116d3565b6020604051808303816000875af11580156104c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ec9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b5050505061055e8685610557906121f8565b8386610ae6565b915094509492505050565b6000806105cd7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f9061061b90899089906004016116d3565b6020604051808303816000875af115801561063a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065e9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b1580156106a357600080fd5b505af11580156106b7573d6000803e3d6000fd5b5050505061055e86856106c990612238565b8386610df0565b60208301515160008167ffffffffffffffff8111156106f1576106f16117f3565b60405190808252806020026020018201604052801561072a57816020015b6107176110a7565b81526020019060019003908161070f5790505b50905060005b8281101561095057600086602001518281518110610750576107506122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e0015115158152602001896001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061093c5761093c6122b6565b602090810291909101015250600101610730565b50845160408087015160608801519151634e530d8960e11b81526001600160a01b03871693639ca61b129361098c938c938892906004016127ea565b6020604051808303816000875af11580156109ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cf9190611334565b50505050505050565b336001600160a01b0384168114801590610a9d5750604051631a45b42760e11b81526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000000000000000000000000000000000000000000000169063348b684e9060c401602060405180830381865afa158015610a77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9b9190612852565b155b15610ae057604051631326f75560e11b81526001600160a01b03808616600483015282166024820152604481018490526064810183905260840160405180910390fd5b50505050565b602083015151600090818167ffffffffffffffff811115610b0957610b096117f3565b604051908082528060200260200182016040528015610b4257816020015b610b2f6110a7565b815260200190600190039081610b275790505b50905060005b82811015610d6857600087602001518281518110610b6857610b686122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610d5457610d546122b6565b602090810291909101015250600101610b48565b5060408087015160608801519151632a550fab60e11b81526001600160a01b038716926354aa1f5692610da2928c9287929160040161286f565b6020604051808303816000875af1158015610dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de59190611334565b979650505050505050565b602083015151600090818167ffffffffffffffff811115610e1357610e136117f3565b604051908082528060200260200182016040528015610e4c57816020015b610e396110a7565b815260200190600190039081610e315790505b50905060005b8281101561107257600087602001518281518110610e7257610e726122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061105e5761105e6122b6565b602090810291909101015250600101610e52565b506040808701519051630e18de6b60e41b81526001600160a01b0386169163e18de6b091610da2918b918691906004016128ae565b6040805161010080820183526000808352602080840182905283850182905260608085018390526080808601849052865161028081018852848152928301849052958201839052810182905293840181905260a084810182905260c0850182905260e0850182905291840181905261012084018190526101408401819052610160840181905261018084018190526101a084018190526101c084018190526101e08401819052610200840181905261022084018190526102408401819052610260840152909190820190815260200160608152602001606081525090565b6001600160a01b038116811461119a57600080fd5b50565b80356111a881611185565b919050565b600061016082840312156111c057600080fd5b50919050565b6000608082840312156111c057600080fd5b600080600080608085870312156111ee57600080fd5b84356111f981611185565b9350602085013567ffffffffffffffff8082111561121657600080fd5b611222888389016111ad565b9450604087013591508082111561123857600080fd5b50611245878288016111c6565b925050606085013561125681611185565b939692955090935050565b6000806000806080858703121561127757600080fd5b84359350602085013567ffffffffffffffff8082111561121657600080fd5b600080600080608085870312156112ac57600080fd5b84359350602085013567ffffffffffffffff808211156112cb57600080fd5b6112d7888389016111ad565b945060408701359150808211156112ed57600080fd5b5085016060818803121561130057600080fd5b9150606085013561125681611185565b60006020828403121561132257600080fd5b815161132d81611185565b9392505050565b60006020828403121561134657600080fd5b5051919050565b8082018082111561136e57634e487b7160e01b600052601160045260246000fd5b92915050565b6000808335601e1984360301811261138b57600080fd5b830160208101925035905067ffffffffffffffff8111156113ab57600080fd5b8036038213156113ba57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008235607e1983360301811261140057600080fd5b90910192915050565b80356cffffffffffffffffffffffffff811681146111a857600080fd5b803563ffffffff811681146111a857600080fd5b803561ffff811681146111a857600080fd5b803562ffffff811681146111a857600080fd5b803560ff811681146111a857600080fd5b801515811461119a57600080fd5b80356111a881611470565b600060808084018335601e198536030181126114a457600080fd5b8401602081810191359067ffffffffffffffff8211156114c357600080fd5b6101c080830236038413156114d757600080fd5b608089529382905260a09384890160005b8481101561162357611510826114fd88611409565b6cffffffffffffffffffffffffff169052565b61151b848701611426565b63ffffffff16848301526040611532878201611426565b63ffffffff1690830152606061154987820161143a565b61ffff169083015261155c86890161119d565b6001600160a01b031688830152858701358783015260c061157e81880161144c565b62ffffff169083015260e061159487820161145f565b60ff16908301526101006115a987820161147e565b1515908301526101206115bd87820161147e565b1515908301526101406115d187820161147e565b1515908301526101606115e587820161147e565b1515908301526101806115f987820161147e565b1515908301526101a061160d87820161147e565b15159083015294820194908201906001016114e8565b5061163060208a01611426565b63ffffffff811660208c0152965061164a60408a0161145f565b60ff811660408c0152965061166160608a0161119d565b6001600160a01b03811660608c015296509998505050505050505050565b803561168a81611470565b15158252602081013561169c81611470565b1515602083015260408101356116b181611470565b1515604083015260608101356116c681611470565b8015156060840152505050565b8281526040602082015260006116e98384611374565b61016060408501526117006101a0850182846113c1565b9150506117106020850185611374565b603f19808685030160608701526117288483856113c1565b93506117376040880188611374565b93509150808685030160808701526117508484846113c1565b935061175e6060880161119d565b6001600160a01b03811660a0880152925061177c6080880188611374565b93509150808685030160c08701526117958484846113c1565b93506117a460a08801886113ea565b9250808685030160e087015250506117bc8282611489565b9150506117cb60c0850161119d565b6001600160a01b03166101008401526117eb610120840160e0860161167f565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405290565b6040805190810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405160c0810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516080810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051610100810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516060810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051601f8201601f1916810167ffffffffffffffff8111828210171561190c5761190c6117f3565b604052919050565b600082601f83011261192557600080fd5b813567ffffffffffffffff81111561193f5761193f6117f3565b611952601f8201601f19166020016118e3565b81815284602083860101111561196757600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff82111561199e5761199e6117f3565b5060051b60200190565b803565ffffffffffff811681146111a857600080fd5b80356dffffffffffffffffffffffffffff811681146111a857600080fd5b600061022082840312156119ef57600080fd5b6119f7611809565b9050611a028261143a565b8152611a106020830161143a565b6020820152611a2160408301611426565b6040820152611a326060830161147e565b6060820152611a436080830161147e565b6080820152611a5460a0830161147e565b60a0820152611a6560c0830161147e565b60c0820152611a7660e0830161147e565b60e0820152610100611a8981840161147e565b90820152610120611a9b83820161147e565b90820152610140611aad83820161147e565b90820152610160611abf83820161147e565b90820152610180611ad183820161147e565b908201526101a0611ae383820161147e565b908201526101c0611af583820161147e565b908201526101e0611b0783820161147e565b90820152610200611b1983820161143a565b9082015292915050565b803566ffffffffffffff811681146111a857600080fd5b600082601f830112611b4b57600080fd5b81356020611b60611b5b83611984565b6118e3565b82815260059290921b84018101918181019086841115611b7f57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ba357600080fd5b908801906040828b03601f1901811315611bbc57600080fd5b611bc4611833565b8784013581528184013583811115611bdb57600080fd5b8085019450508b603f850112611bf057600080fd5b878401359250611c02611b5b84611984565b83815260c09093028401820192888101908d851115611c2057600080fd5b948301945b84861015611cb95760c0868f031215611c3d57600080fd5b611c45611856565b8635611c5081611470565b8152611c5d878c01611426565b8b820152611c6c858801611b23565b858201526060870135611c7e81611185565b6060820152611c8f608088016119a8565b608082015260a0870135611ca281611185565b60a0820152825260c0959095019490890190611c25565b828a0152508652505050918301918301611b83565b509695505050505050565b600082601f830112611cea57600080fd5b81356020611cfa611b5b83611984565b82815260069290921b84018101918181019086841115611d1957600080fd5b8286015b84811015611cce5760408189031215611d365760008081fd5b611d3e611833565b81357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81168114611d6b5760008081fd5b8152611d78828601611426565b81860152835291830191604001611d1d565b600082601f830112611d9b57600080fd5b81356020611dab611b5b83611984565b82815260059290921b84018101918181019086841115611dca57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611def5760008081fd5b908801906080828b03601f1901811315611e095760008081fd5b611e11611879565b87840135611e1e81611185565b8152604084810135611e2f81611185565b828a015260608581013585811115611e475760008081fd5b611e558f8c838a0101611cd9565b8484015250928501359284841115611e6f57600091508182fd5b611e7d8e8b86890101611cd9565b90830152508652505050918301918301611dce565b600082601f830112611ea357600080fd5b81356020611eb3611b5b83611984565b82815260059290921b84018101918181019086841115611ed257600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ef75760008081fd5b90880190610300828b03601f1901811315611f125760008081fd5b611f1a61189c565b611f258885016119a8565b81526040611f34818601611426565b898301526060611f458187016119be565b8284015260809150611f58828701611426565b9083015260a0611f6986820161119d565b8284015260c09150611f7d8e8388016119dc565b908301526102e085013584811115611f955760008081fd5b611fa38e8b83890101611b3a565b82840152505081840135915082821115611fbd5760008081fd5b611fcb8c8984870101611d8a565b60e08201528652505050918301918301611ed6565b600082601f830112611ff157600080fd5b81356020612001611b5b83611984565b82815260059290921b8401810191818101908684111561202057600080fd5b8286015b84811015611cce57803567ffffffffffffffff8082111561204457600080fd5b908801906040828b03601f190181131561205d57600080fd5b612065611833565b8784013561207281611185565b8152838201358381111561208557600080fd5b8085019450508b603f85011261209a57600080fd5b8784013592506120ac611b5b84611984565b83815260609093028401820192888101908d8511156120ca57600080fd5b948301945b8486101561212c576060868f0312156120e757600080fd5b6120ef6118c0565b86356120fa81611185565b8152612107878c0161145f565b8b820152612116858801611426565b81860152825260609590950194908901906120cf565b828a0152508652505050918301918301612024565b60006080823603121561215357600080fd5b61215b611879565b823567ffffffffffffffff8082111561217357600080fd5b61217f36838701611914565b8352602085013591508082111561219557600080fd5b6121a136838701611e92565b602084015260408501359150808211156121ba57600080fd5b6121c636838701611fe0565b604084015260608501359150808211156121df57600080fd5b506121ec36828601611914565b60608301525092915050565b60006080823603121561220a57600080fd5b612212611879565b61221b83611b23565b8152602083013567ffffffffffffffff8082111561219557600080fd5b60006060823603121561224a57600080fd5b6122526118c0565b61225b83611b23565b8152602083013567ffffffffffffffff8082111561227857600080fd5b61228436838701611e92565b6020840152604085013591508082111561229d57600080fd5b506122aa36828601611914565b60408301525092915050565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156122f2576020818501810151868301820152016122d6565b506000602082860101526020601f19601f83011685010191505092915050565b805161ffff168252602081015161232f602084018261ffff169052565b506040810151612347604084018263ffffffff169052565b50606081015161235b606084018215159052565b50608081015161236f608084018215159052565b5060a081015161238360a084018215159052565b5060c081015161239760c084018215159052565b5060e08101516123ab60e084018215159052565b5061010081810151151590830152610120808201511515908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c0808201511515908301526101e0808201511515908301526102008082015115159083015261022080820151151590830152610240808201516001600160a01b0316908301526102608082015161ffff811682850152610ae0565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180518552850151604086860181905281518187018190529187019160609081880190865b8181101561251d5785518051151584528b81015163ffffffff168c8501528581015166ffffffffffffff1686850152848101516001600160a01b039081168686015260808083015165ffffffffffff169086015260a0918201511690840152948a019460c0909201916001016124ac565b50509c88019c965050509285019250600101612475565b509198975050505050505050565b60008151808452602080850194506020840160005b838110156125a257815180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16885283015163ffffffff168388015260409096019590820190600101612557565b509495945050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f19868403018952815160806001600160a01b038083511686528087840151168787015250604080830151828288015261260f83880182612542565b925050506060808301519250858203818701525061262d8183612542565b9a86019a94505050908301906001016125ca565b5090979650505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f198684030189528151805165ffffffffffff1684528481015163ffffffff908116868601526040808301516dffffffffffffffffffffffffffff1690860152606080830151909116908501526080808201516001600160a01b03169085015260a08082015161036091906126eb82880182612312565b505060c08201518161032087015261270582870182612457565b91505060e0820151915084810361034086015261272281836125ad565b9a86019a945050509083019060010161266b565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180516001600160a01b03908116865290860151604087870181905281518188018190529188019290916060919082890190875b818110156127d25786518051851684528c81015160ff168d85015286015163ffffffff1686840152958b01959184019160010161279a565b50509d89019d97505050938601935050600101612754565b6001600160a01b038616815260a06020820152600061280c60a08301876122cc565b828103604084015261281e818761264e565b905082810360608401526128328186612736565b9050828103608084015261284681856122cc565b98975050505050505050565b60006020828403121561286457600080fd5b815161132d81611470565b848152608060208201526000612888608083018661264e565b828103604084015261289a8186612736565b90508281036060840152610de581856122cc565b8381526060602082015260006128c7606083018561264e565b82810360408401526128d981856122cc565b969550505050505056fea2646970667358221220fe9aeb2923c79b329e15f469ded294b7c8f953591673f78360a251462b46f9d064736f6c63430008170033000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad220000000000000000000000004cdb4200e4e65a277676cd5e8d3c7c7c4da7fbe50000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be", + "gas": "2746503", + "operation": 0, + "requireSuccess": true + } + ], + "sphinxConfig": { + "projectName": "nana-721-hook-testnet", + "orgId": "my-org-id", + "owners": [ + "0xba5ed94ab173e1242638F28d1449b24F1A883292" + ], + "mainnets": [ + "ethereum", + "optimism", + "base", + "arbitrum" + ], + "testnets": [ + "ethereum_sepolia", + "optimism_sepolia", + "base_sepolia", + "arbitrum_sepolia" + ], + "threshold": "1", + "saltNonce": "12" + }, + "executionMode": 2, + "initialState": { + "isSafeDeployed": true, + "isModuleDeployed": true, + "isExecuting": false + }, + "unlabeledContracts": [], + "arbitraryChain": false, + "libraries": [], + "gitCommit": "ad100ab7826a4aace8ac39612835a18c1e961ec2", + "safeInitData": null +} \ No newline at end of file diff --git a/deployments/nana-721-hook-testnet/base_sepolia/JB721TiersHookProjectDeployer.json b/deployments/nana-721-hook-testnet/base_sepolia/JB721TiersHookProjectDeployer.json index 6defefe9..c4a85546 100644 --- a/deployments/nana-721-hook-testnet/base_sepolia/JB721TiersHookProjectDeployer.json +++ b/deployments/nana-721-hook-testnet/base_sepolia/JB721TiersHookProjectDeployer.json @@ -1,8 +1,8 @@ { "_format": "sphinx-sol-ct-artifact-1", - "merkleRoot": "0xe86112c80b3fdcd00444f5bde04496941e8a62863097b6d607d04af137595289", + "merkleRoot": "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8", "contractName": "JB721TiersHookProjectDeployer", - "address": "0x0Fa5747B59042c9C2A5A9C68C22919fa00468141", + "address": "0x0b41a8Be7E30a01A7367e06601eD204c469eF94D", "abi": [ { "type": "constructor", @@ -522,6 +522,11 @@ "name": "projectId", "type": "uint256", "internalType": "uint256" + }, + { + "name": "hook", + "type": "address", + "internalType": "contract IJB721TiersHook" } ], "stateMutability": "nonpayable" @@ -984,6 +989,11 @@ "name": "rulesetId", "type": "uint256", "internalType": "uint256" + }, + { + "name": "hook", + "type": "address", + "internalType": "contract IJB721TiersHook" } ], "stateMutability": "nonpayable" @@ -1412,6 +1422,11 @@ "name": "rulesetId", "type": "uint256", "internalType": "uint256" + }, + { + "name": "hook", + "type": "address", + "internalType": "contract IJB721TiersHook" } ], "stateMutability": "nonpayable" @@ -1443,177 +1458,85 @@ ] } ], - "solcInputHash": "30cd0d125ed0677fcbbeafa2ca950580", + "solcInputHash": "2fd444c97aa0fa789adae5192c86e854", "receipt": { - "blockHash": "0x804f765603acb238d0e4cf7272aa589bc92b482c32dd40989f47de733c244dd1", - "blockNumber": 15374813, + "blockHash": "0xcdd983b45de85e2960bcfd5bf2c9478ed59f2b941c9d2216578ffd8274accd13", + "blockNumber": 15506872, "contractAddress": null, - "cumulativeGasUsed": "12538676", + "cumulativeGasUsed": "2671742", "from": "0x0c1c9049564269275059032Fb484Aa2e7Ab779af", - "gasPrice": "1000259", - "gasUsed": "12132541", - "hash": "0x83e9b1a60cf334a6c753ce4105710897e337502bb88abac19c4eaa67bb96a365", - "index": 5, + "gasPrice": "1000273", + "gasUsed": "2498303", + "hash": "0x7be88cbd7b9d3f64cba872f5bc27ca9c3e8e63a00e8fa8af21af89a26834f1f3", + "index": 7, "logs": [ { "address": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463", - "blockHash": "0x804f765603acb238d0e4cf7272aa589bc92b482c32dd40989f47de733c244dd1", - "blockNumber": 15374813, + "blockHash": "0xcdd983b45de85e2960bcfd5bf2c9478ed59f2b941c9d2216578ffd8274accd13", + "blockNumber": 15506872, "data": "0x0000000000000000000000000000000000000000000000000000000000000000", - "index": 6, + "index": 0, "topics": [ "0x572f161235911da04685a68c06adf558fc7e4a36909dca394650e0adc19cc93d", "0x0000000000000000000000000c1c9049564269275059032fb484aa2e7ab779af", "0x000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c3", - "0x696cfb0bf153a7ab265e69cb9e75651e03f8a8ab05adcc55b6b4b8d39d5440e9" + "0x60daca5818be3d22d22d09d5b895bbb2fe74ad370558bb23e29cbbe6080b6353" ], - "transactionHash": "0x83e9b1a60cf334a6c753ce4105710897e337502bb88abac19c4eaa67bb96a365", - "transactionIndex": 5 + "transactionHash": "0x7be88cbd7b9d3f64cba872f5bc27ca9c3e8e63a00e8fa8af21af89a26834f1f3", + "transactionIndex": 7 }, { "address": "0x94BBb774520C1E0Bd2aFb9b3B63cc11102ED7A7B", - "blockHash": "0x804f765603acb238d0e4cf7272aa589bc92b482c32dd40989f47de733c244dd1", - "blockNumber": 15374813, + "blockHash": "0xcdd983b45de85e2960bcfd5bf2c9478ed59f2b941c9d2216578ffd8274accd13", + "blockNumber": 15506872, "data": "0x", - "index": 7, + "index": 1, "topics": [ "0x6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8", "0x000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c3" ], - "transactionHash": "0x83e9b1a60cf334a6c753ce4105710897e337502bb88abac19c4eaa67bb96a365", - "transactionIndex": 5 + "transactionHash": "0x7be88cbd7b9d3f64cba872f5bc27ca9c3e8e63a00e8fa8af21af89a26834f1f3", + "transactionIndex": 7 }, { "address": "0xcd414DF3f7b7dA1F867fF6B5499879308087F0c3", - "blockHash": "0x804f765603acb238d0e4cf7272aa589bc92b482c32dd40989f47de733c244dd1", - "blockNumber": 15374813, + "blockHash": "0xcdd983b45de85e2960bcfd5bf2c9478ed59f2b941c9d2216578ffd8274accd13", + "blockNumber": 15506872, "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "index": 8, - "topics": [ - "0xa65fb05c5808f5f389d72edeaf719ce38f4cc55c1f69ca3cbfb31c21501caa07", - "0xe86112c80b3fdcd00444f5bde04496941e8a62863097b6d607d04af137595289" - ], - "transactionHash": "0x83e9b1a60cf334a6c753ce4105710897e337502bb88abac19c4eaa67bb96a365", - "transactionIndex": 5 - }, - { - "address": "0x4f2E788877B71fcDEB7DabF898572a556420896d", - "blockHash": "0x804f765603acb238d0e4cf7272aa589bc92b482c32dd40989f47de733c244dd1", - "blockNumber": 15374813, - "data": "0x0000000000000000000000004e59b44847b379578588920ca78fbf26c0b4956c", - "index": 9, - "topics": [ - "0xc8894f26f396ce8c004245c8b7cd1b92103a6e4302fcbab883987149ac01b7ec", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000004e59b44847b379578588920ca78fbf26c0b4956c" - ], - "transactionHash": "0x83e9b1a60cf334a6c753ce4105710897e337502bb88abac19c4eaa67bb96a365", - "transactionIndex": 5 - }, - { - "address": "0x94BBb774520C1E0Bd2aFb9b3B63cc11102ED7A7B", - "blockHash": "0x804f765603acb238d0e4cf7272aa589bc92b482c32dd40989f47de733c244dd1", - "blockNumber": 15374813, - "data": "0x", - "index": 10, - "topics": [ - "0x6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8", - "0x000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c3" - ], - "transactionHash": "0x83e9b1a60cf334a6c753ce4105710897e337502bb88abac19c4eaa67bb96a365", - "transactionIndex": 5 - }, - { - "address": "0xcd414DF3f7b7dA1F867fF6B5499879308087F0c3", - "blockHash": "0x804f765603acb238d0e4cf7272aa589bc92b482c32dd40989f47de733c244dd1", - "blockNumber": 15374813, - "data": "0x0000000000000000000000000000000000000000000000000000000000000002", - "index": 11, - "topics": [ - "0xa65fb05c5808f5f389d72edeaf719ce38f4cc55c1f69ca3cbfb31c21501caa07", - "0xe86112c80b3fdcd00444f5bde04496941e8a62863097b6d607d04af137595289" - ], - "transactionHash": "0x83e9b1a60cf334a6c753ce4105710897e337502bb88abac19c4eaa67bb96a365", - "transactionIndex": 5 - }, - { - "address": "0x94BBb774520C1E0Bd2aFb9b3B63cc11102ED7A7B", - "blockHash": "0x804f765603acb238d0e4cf7272aa589bc92b482c32dd40989f47de733c244dd1", - "blockNumber": 15374813, - "data": "0x", - "index": 12, - "topics": [ - "0x6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8", - "0x000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c3" - ], - "transactionHash": "0x83e9b1a60cf334a6c753ce4105710897e337502bb88abac19c4eaa67bb96a365", - "transactionIndex": 5 - }, - { - "address": "0xcd414DF3f7b7dA1F867fF6B5499879308087F0c3", - "blockHash": "0x804f765603acb238d0e4cf7272aa589bc92b482c32dd40989f47de733c244dd1", - "blockNumber": 15374813, - "data": "0x0000000000000000000000000000000000000000000000000000000000000003", - "index": 13, - "topics": [ - "0xa65fb05c5808f5f389d72edeaf719ce38f4cc55c1f69ca3cbfb31c21501caa07", - "0xe86112c80b3fdcd00444f5bde04496941e8a62863097b6d607d04af137595289" - ], - "transactionHash": "0x83e9b1a60cf334a6c753ce4105710897e337502bb88abac19c4eaa67bb96a365", - "transactionIndex": 5 - }, - { - "address": "0x94BBb774520C1E0Bd2aFb9b3B63cc11102ED7A7B", - "blockHash": "0x804f765603acb238d0e4cf7272aa589bc92b482c32dd40989f47de733c244dd1", - "blockNumber": 15374813, - "data": "0x", - "index": 14, - "topics": [ - "0x6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8", - "0x000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c3" - ], - "transactionHash": "0x83e9b1a60cf334a6c753ce4105710897e337502bb88abac19c4eaa67bb96a365", - "transactionIndex": 5 - }, - { - "address": "0xcd414DF3f7b7dA1F867fF6B5499879308087F0c3", - "blockHash": "0x804f765603acb238d0e4cf7272aa589bc92b482c32dd40989f47de733c244dd1", - "blockNumber": 15374813, - "data": "0x0000000000000000000000000000000000000000000000000000000000000004", - "index": 15, + "index": 2, "topics": [ "0xa65fb05c5808f5f389d72edeaf719ce38f4cc55c1f69ca3cbfb31c21501caa07", - "0xe86112c80b3fdcd00444f5bde04496941e8a62863097b6d607d04af137595289" + "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8" ], - "transactionHash": "0x83e9b1a60cf334a6c753ce4105710897e337502bb88abac19c4eaa67bb96a365", - "transactionIndex": 5 + "transactionHash": "0x7be88cbd7b9d3f64cba872f5bc27ca9c3e8e63a00e8fa8af21af89a26834f1f3", + "transactionIndex": 7 }, { "address": "0xcd414DF3f7b7dA1F867fF6B5499879308087F0c3", - "blockHash": "0x804f765603acb238d0e4cf7272aa589bc92b482c32dd40989f47de733c244dd1", - "blockNumber": 15374813, + "blockHash": "0xcdd983b45de85e2960bcfd5bf2c9478ed59f2b941c9d2216578ffd8274accd13", + "blockNumber": 15506872, "data": "0x", - "index": 16, + "index": 3, "topics": [ "0x4383d976757d67ca920616be0b6430a681ea9d3dcce8d6d61d4603ca4a9bff63", - "0xe86112c80b3fdcd00444f5bde04496941e8a62863097b6d607d04af137595289" + "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8" ], - "transactionHash": "0x83e9b1a60cf334a6c753ce4105710897e337502bb88abac19c4eaa67bb96a365", - "transactionIndex": 5 + "transactionHash": "0x7be88cbd7b9d3f64cba872f5bc27ca9c3e8e63a00e8fa8af21af89a26834f1f3", + "transactionIndex": 7 } ], - "logsBloom": "0x00000000000010000000000000180000000000000000000000000000000000000080000000000000000000000040020000100000000000000020000000000000100200000000210000000000000000000010000000000200000000000020000000000000020000000000001000040800000000000000000000008000000000004000000000000000000100000000000000000000009000000000000000000010004002800001000000000002000000002200000000000000100002000004000000000002000000000000000000000000040000000000000000000000000020000000000000000009000000000000000280000000000080000008000008000000", + "logsBloom": "0x00000000000010000000000000080000000000000000000000000000000000000080000000000000000000000040020000100000000000000020000000000000000000000000220000000000000000000010000000000800000000000000000000000000000000000000000000040000000000000000000000000002000000004000000000000000000100000000000000000000008000000000000000000000004000800000000000000002080000002200000000000000100002000004000000000002000000000000000000000000040000000000000000000000000000000000000000000008000000000000000240000040000080000000000008000000", "status": 1, "to": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463" }, - "metadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IJBDirectory\",\"name\":\"directory\",\"type\":\"address\"},{\"internalType\":\"contract IJBPermissions\",\"name\":\"permissions\",\"type\":\"address\"},{\"internalType\":\"contract IJB721TiersHookDeployer\",\"name\":\"hookDeployer\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"permissionId\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBPermissioned_Unauthorized\"},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DIRECTORY\",\"outputs\":[{\"internalType\":\"contract IJBDirectory\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"HOOK_DEPLOYER\",\"outputs\":[{\"internalType\":\"contract IJB721TiersHookDeployer\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"PERMISSIONS\",\"outputs\":[{\"internalType\":\"contract IJBPermissions\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"struct JBDeploy721TiersHookConfig\",\"name\":\"deployTiersHookConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"contract IJB721TokenUriResolver\",\"name\":\"tokenUriResolver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"},{\"internalType\":\"struct JB721InitTiersConfig\",\"name\":\"tiersConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JB721TierConfig[]\",\"name\":\"tiers\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"votingUnits\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useReserveBeneficiaryAsDefault\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useVotingUnits\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotIncreaseDiscountPercent\",\"type\":\"bool\"}]},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"contract IJBPrices\",\"name\":\"prices\",\"type\":\"address\"}]},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"struct JB721TiersHookFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"noNewTiersWithReserves\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithVotes\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"preventOverspending\",\"type\":\"bool\"}]}]},{\"internalType\":\"struct JBLaunchProjectConfig\",\"name\":\"launchProjectConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"projectUri\",\"type\":\"string\"},{\"internalType\":\"struct JBPayDataHookRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"decayPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBPayDataHookRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"redemptionRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowCrosschainSuckerExtension\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useTotalSurplusForRedemptions\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForRedeem\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"struct JBTerminalConfig[]\",\"name\":\"terminalConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"contract IJBTerminal\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"struct JBAccountingContext[]\",\"name\":\"accountingContextsToAccept\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}]},{\"internalType\":\"contract IJBController\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"launchProjectFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBDeploy721TiersHookConfig\",\"name\":\"deployTiersHookConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"contract IJB721TokenUriResolver\",\"name\":\"tokenUriResolver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"},{\"internalType\":\"struct JB721InitTiersConfig\",\"name\":\"tiersConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JB721TierConfig[]\",\"name\":\"tiers\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"votingUnits\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useReserveBeneficiaryAsDefault\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useVotingUnits\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotIncreaseDiscountPercent\",\"type\":\"bool\"}]},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"contract IJBPrices\",\"name\":\"prices\",\"type\":\"address\"}]},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"struct JB721TiersHookFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"noNewTiersWithReserves\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithVotes\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"preventOverspending\",\"type\":\"bool\"}]}]},{\"internalType\":\"struct JBLaunchRulesetsConfig\",\"name\":\"launchRulesetsConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"struct JBPayDataHookRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"decayPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBPayDataHookRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"redemptionRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowCrosschainSuckerExtension\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useTotalSurplusForRedemptions\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForRedeem\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"struct JBTerminalConfig[]\",\"name\":\"terminalConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"contract IJBTerminal\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"struct JBAccountingContext[]\",\"name\":\"accountingContextsToAccept\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}]},{\"internalType\":\"contract IJBController\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"launchRulesetsFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rulesetId\",\"type\":\"uint256\"}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBDeploy721TiersHookConfig\",\"name\":\"deployTiersHookConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"contract IJB721TokenUriResolver\",\"name\":\"tokenUriResolver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"},{\"internalType\":\"struct JB721InitTiersConfig\",\"name\":\"tiersConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JB721TierConfig[]\",\"name\":\"tiers\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"votingUnits\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useReserveBeneficiaryAsDefault\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useVotingUnits\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotIncreaseDiscountPercent\",\"type\":\"bool\"}]},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"contract IJBPrices\",\"name\":\"prices\",\"type\":\"address\"}]},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"struct JB721TiersHookFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"noNewTiersWithReserves\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithVotes\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"preventOverspending\",\"type\":\"bool\"}]}]},{\"internalType\":\"struct JBQueueRulesetsConfig\",\"name\":\"queueRulesetsConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"struct JBPayDataHookRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"decayPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBPayDataHookRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"redemptionRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowCrosschainSuckerExtension\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useTotalSurplusForRedemptions\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForRedeem\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}]},{\"internalType\":\"contract IJBController\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"queueRulesetsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rulesetId\",\"type\":\"uint256\"}]}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"directory\":\"The directory of terminals and controllers for projects.\",\"hookDeployer\":\"The 721 tiers hook deployer.\",\"permissions\":\"A contract storing permissions.\"}},\"launchProjectFor(address,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(string,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"params\":{\"controller\":\"The controller that the project's rulesets will be queued with.\",\"deployTiersHookConfig\":\"Configuration which dictates the behavior of the 721 tiers hook which is being deployed.\",\"launchProjectConfig\":\"Configuration which dictates the behavior of the project which is being launched.\",\"owner\":\"The address to set as the owner of the project. The ERC-721 which confers this project's ownership will be sent to this address.\"},\"returns\":{\"projectId\":\"The ID of the newly launched project.\"}},\"launchRulesetsFor(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"details\":\"Only a project's owner or an operator with the `QUEUE_RULESETS` permission can launch its rulesets.\",\"params\":{\"controller\":\"The controller that the project's rulesets will be queued with.\",\"deployTiersHookConfig\":\"Configuration which dictates the behavior of the 721 tiers hook which is being deployed.\",\"launchRulesetsConfig\":\"Configuration which dictates the project's new rulesets.\",\"projectId\":\"The ID of the project that rulesets are being launched for.\"},\"returns\":{\"rulesetId\":\"The ID of the successfully created ruleset.\"}},\"queueRulesetsOf(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],string),address)\":{\"details\":\"Only a project's owner or an operator with the `QUEUE_RULESETS` permission can queue its rulesets.\",\"params\":{\"controller\":\"The controller that the project's rulesets will be queued with.\",\"deployTiersHookConfig\":\"Configuration which dictates the behavior of the 721 tiers hook which is being deployed.\",\"projectId\":\"The ID of the project that rulesets are being queued for.\",\"queueRulesetsConfig\":\"Configuration which dictates the project's newly queued rulesets.\"},\"returns\":{\"rulesetId\":\"The ID of the successfully created ruleset.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DIRECTORY()\":{\"notice\":\"The directory of terminals and controllers for projects.\"},\"HOOK_DEPLOYER()\":{\"notice\":\"The 721 tiers hook deployer.\"},\"PERMISSIONS()\":{\"notice\":\"A contract storing permissions.\"},\"launchProjectFor(address,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(string,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"notice\":\"Launches a new project with a 721 tiers hook attached.\"},\"launchRulesetsFor(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"notice\":\"Launches rulesets for a project with an attached 721 tiers hook.\"},\"queueRulesetsOf(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],string),address)\":{\"notice\":\"Queues rulesets for a project with an attached 721 tiers hook.\"}},\"version\":1}},\"settings\":{\"remappings\":[\"@bananapus/=node_modules/@bananapus/\",\"@chainlink/=node_modules/@chainlink/\",\"@eth-optimism/=node_modules/@eth-optimism/\",\"@openzeppelin/=node_modules/@openzeppelin/\",\"@prb/=node_modules/@prb/\",\"@scroll-tech/=node_modules/@scroll-tech/\",\"@sphinx-labs/contracts/=node_modules/@sphinx-labs/contracts/contracts/foundry/\",\"@uniswap/=node_modules/@uniswap/\",\"ds-test/=lib/forge-std/lib/ds-test/src/\",\"forge-std/=lib/forge-std/src/\",\"hardhat/=node_modules/hardhat/\",\"solmate/=node_modules/solmate/\",\"sphinx/=lib/sphinx/packages/contracts/contracts/forge-std/src/\"],\"optimizer\":{\"enabled\":true,\"runs\":800},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"compilationTarget\":{\"src/JB721TiersHookProjectDeployer.sol\":\"JB721TiersHookProjectDeployer\"},\"evmVersion\":\"paris\",\"libraries\":{}},\"sources\":{\"node_modules/@bananapus/core/src/abstract/JBPermissioned.sol\":{\"keccak256\":\"0xbaaa61c6aa043522617d3c1a86960c23b9978ee2a6c9d593b00beeeb6ce64423\",\"urls\":[\"bzz-raw://09beed8608e02ce9dbf28814309aaf62c9eec67e0701a26113bdbb4cbae56c42\",\"dweb:/ipfs/QmZrHFnpjX9uBzbFrSjqQgQBkvpJ1ZyvjtT9RfneNGv32S\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/enums/JBApprovalStatus.sol\":{\"keccak256\":\"0x61c69b6bac7d24b566d87cda23a77e4ca9cdb87200b106aba8534cb9a0973e33\",\"urls\":[\"bzz-raw://6a9ca7249de76f77a8252eefe6bd1b63d47952f25a2acfa2c8db967cdff4470c\",\"dweb:/ipfs/QmaxSxptRQNj8bNy96EreENmrnRWdKmhyihBcxyWzBX5BN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBController.sol\":{\"keccak256\":\"0xf577428966a4db4ca17fb73abf2ff2e21cc0e231df2d7247bf410f926d6cb5f7\",\"urls\":[\"bzz-raw://7c1d847382f731b8c464b55ead0ed5c517aa3fa606aaf78b7881aab18108d504\",\"dweb:/ipfs/QmXW3DpPgjYw33A8bMxJFRVZRYjCnWTp28M8sSdPHbDq7E\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBDirectory.sol\":{\"keccak256\":\"0xcb97db460d2948a7f51c660fe0d1b1749047a419027711c476b86ad3573534c5\",\"urls\":[\"bzz-raw://a909c7a3d471054537894dca827e6e018e92ac25299b43026e5b1e335ec4de68\",\"dweb:/ipfs/QmU1GT3F8PNMjSiPPP5cSLLofefHYFJXnywMCdqqM9xUeh\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBDirectoryAccessControl.sol\":{\"keccak256\":\"0x1ea768919979d9f625920c05a5e633739febc822ce14b1e4724d739b19c10fb8\",\"urls\":[\"bzz-raw://7c5391a510bd610a97978245b7306d8d21c79d7c45c15f590ba9b603ea751154\",\"dweb:/ipfs/QmPSJvVWswqzv3bVq422UhA2BybMsiHoYFWGPp5Jh6Xs6a\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBFundAccessLimits.sol\":{\"keccak256\":\"0xfd8ea4cffd289e7fef6e53b5c8983eb6b941de306517f40c047048d3a8a2ca08\",\"urls\":[\"bzz-raw://2765cdee206f8b1b53874448e2481db001cd3706753190cfc9381318c7a7c41c\",\"dweb:/ipfs/QmQ5UYSadtzrb7BcTR93KnAYKXawdyDUG5HjjASV1zbys5\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPayHook.sol\":{\"keccak256\":\"0x9438866782c652c2942f4d114e35f393cd3c8b0334abce8387eed90bca35e8b2\",\"urls\":[\"bzz-raw://cfd99daf57213f92325aad7d7d16e98476d38e870470e95ba01e3ae3cdecc95d\",\"dweb:/ipfs/QmUKKAVGf7ki8BHksr99tFcRW8APveeB5tNH63ctTbbCW8\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPermissioned.sol\":{\"keccak256\":\"0x5b038d4dee116584e88b230920e56d48e135053e3f7e5642eaea14a775c1dad7\",\"urls\":[\"bzz-raw://19e43102f349fd4a1da1c0943ffb8f2950007fe4bb4bb7e8f74fc142575d091b\",\"dweb:/ipfs/QmXHAt4KzDTdDZgDDefEXH2WKi7NcfkJb9R7nxW5uDqsNp\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPermissions.sol\":{\"keccak256\":\"0x49d2b91a866004af098a6770b28040071885b048b4b50744b12a1e5b212c5e5e\",\"urls\":[\"bzz-raw://089b4dda50be91412ffe1fbe333f78cc894f073c1a7afe469f10a2cee12fbf9e\",\"dweb:/ipfs/QmYPPBZ6HwBa1RNkNGqGcR2xgj4fnWBzrPHHoJG3kZA6AN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPriceFeed.sol\":{\"keccak256\":\"0x4bd84c0f1a5d4729ed709bcddd43f4c50ec4a165ece79780af8dce482ed07d4a\",\"urls\":[\"bzz-raw://62bac4bfb6982fb002f620c77e5c445e62d50241a5aa64a07e51d929f5a42180\",\"dweb:/ipfs/QmWgJUDreVY2BuMX38a1iUUR5kNbMwGnKG3VvurB7oZtuM\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPrices.sol\":{\"keccak256\":\"0xb4d5244daa52aafab0c9b8806b7f973afa6a3b298add5966d586d27b78424cfb\",\"urls\":[\"bzz-raw://a819f74455aaa4f679ded378424702f3992608a640d7f943b19938eb4ff711da\",\"dweb:/ipfs/QmSMGvVTsMW3L5YSUyXTKoEsgNpGEutnq4frEZHuDdeDvz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBProjectUriRegistry.sol\":{\"keccak256\":\"0xc9ab647179d7d0c857fdd881d6ce96f06254739440ed08e85a1c2042218f7c7d\",\"urls\":[\"bzz-raw://8529368f30c98c8d5a69acdbe4ac79e3eeb4afa5a9cd278325c5f2184ef3d50f\",\"dweb:/ipfs/QmfUaozYiAGt1UwBDUEZvon1tEBS5sLPzqpN9dNdjQotPN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBProjects.sol\":{\"keccak256\":\"0x4ae42a9cc29b517b26d2b9b635deb82c16696b777deeca92dfcad33b0f81c0a0\",\"urls\":[\"bzz-raw://1dcbd860e7d7f05232d90c5e9cfd3d01e2ce986ffcdb053473d8a4d387b1a48a\",\"dweb:/ipfs/QmWKWoSJJbVWDumbnzXJBJyXmAacgC97bxMtchh8te41bn\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBRulesetApprovalHook.sol\":{\"keccak256\":\"0x592e95d159494421c6b1bcb362d0cee1df0132921697351304e9cd7af4fbd386\",\"urls\":[\"bzz-raw://5bebfd5fa67c1b6ea16fa2e76e9520e9dfe52a579f48dd94d0c2ec45f78ad178\",\"dweb:/ipfs/QmRUawEGtfYoYSHmHELGhvJoWuMsxLPKtqAXgsrb7fJboP\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBRulesets.sol\":{\"keccak256\":\"0x29b56a91e8cd4d3e718e18cd934eccbc22c668d08dc26adb43c958722497d3ab\",\"urls\":[\"bzz-raw://7ae1a723eaf16809b9bd73cd235985801aff85283976be342416fa301c3b4793\",\"dweb:/ipfs/QmZYSY7C9dPvR5EnT8YCjVSy842dBVP3wZdYQ71wyPkx2F\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBSplitHook.sol\":{\"keccak256\":\"0xeb8dfac7a4b81897a1c3b5d0d853a406bcff33720fb187d5ca5bb3dcc0ba3a12\",\"urls\":[\"bzz-raw://36aaeef6107cfe5b0127e063ea215aac7200f8af02e28a48e61111abd3254688\",\"dweb:/ipfs/QmQ8yQANXnhQCAWBGKsKCDsJ3A8hnTKNg5tyo79GfWXTcV\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBSplits.sol\":{\"keccak256\":\"0x424e6d1189b9ba7a5d441e7675ae09ff893c13c62b9ddde4dd6bc2690e96c6f3\",\"urls\":[\"bzz-raw://7e30ed7ab1daf20ff324aacfef7150a243b5db496eceaf032c7012ccb3c4227d\",\"dweb:/ipfs/QmRj5EZKmDjJy8tpvKbpz8vPSKHR5C9Q5ENe7oSLij4H8M\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBTerminal.sol\":{\"keccak256\":\"0xe440530f1d0cc16578981e1d2e4e13674360c677d19a74a4b08f9f7268c70aee\",\"urls\":[\"bzz-raw://ddea4aeaf523f48a1364a02d2ccb75f3dfd8a2b9af465964e9adf3ce53f4196a\",\"dweb:/ipfs/QmVWhN1Nn9khUN8ctAgh2Ypo2vnFBgDHtDw6S232A6RkFw\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBToken.sol\":{\"keccak256\":\"0xd33757cd3da65a9d66404b7e6ddb7a27b4902885a3498b9db1673c218e9fab2d\",\"urls\":[\"bzz-raw://de28759920dab1db6cfcb4ff2ffae76491be371b791a2a0ec054ff17653872dc\",\"dweb:/ipfs/QmPXnhdxbgoV4dBRJCi9siQYRfrvcJLDtY1rp3H2vtU1Cz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBTokenUriResolver.sol\":{\"keccak256\":\"0xfa5cb00dcd6085d1ef912d071fe73c63f9478a2cd0f9d8bddaf659b6af2d0967\",\"urls\":[\"bzz-raw://282e4e7c342d65f77cde0e9a08fcaf20ef5cf379c7a48b639842c0ffd0b2afb8\",\"dweb:/ipfs/QmbnN3PEQeZaXdPLT75V1J79kMg7KqSMru37RHrL3z8Yf2\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBTokens.sol\":{\"keccak256\":\"0x1348b416ebf501409acc9970d46be89ffd076566001ceff9b96fce1b0b2c405d\",\"urls\":[\"bzz-raw://74327019f5174345afed10d9a60caa9ef908382e131882c27588b13be8364b36\",\"dweb:/ipfs/QmZAqB6hFSymTEbjqHWgE4t9NRose9AJh4etGyWnvDkhJt\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBAccountingContext.sol\":{\"keccak256\":\"0x9c47e048a719f784f601df69a583505432217b9868a0244876d277f84dd1ebdf\",\"urls\":[\"bzz-raw://8565f194b87914da9a02af2e760ae2ed2a9d185c6f11229f7035140776d2fec9\",\"dweb:/ipfs/QmPs2fic8W3F5e5zNRwmGmJFjb3JWGPWJ3YUe5o82nQgEn\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBAfterPayRecordedContext.sol\":{\"keccak256\":\"0xd26c3a774ff38be79064085970454fe2603a23a638c76270d5b1b3829206c3e8\",\"urls\":[\"bzz-raw://3b55dbe3bf1ef625b7ca04efab3de35406e6041d5b3d82c7265469c500e2b702\",\"dweb:/ipfs/QmUdBDo4Lt3mcsFcsXT2mqq3czFwZjQJFPLM89YA2VtD7k\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBCurrencyAmount.sol\":{\"keccak256\":\"0x7f321bbcbd13abfbc8f0d08a5adaaf8ef312db5bb899012fcffb6170fbb962a9\",\"urls\":[\"bzz-raw://bf9301ef1dbb3abda7b492585377617508ba048c6170f21a5e7d2b3c034eb384\",\"dweb:/ipfs/QmcetEFxSYLLNSZzPBpNn3Fc8sFcrFE8A8h12ZSj2tLgxD\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBFundAccessLimitGroup.sol\":{\"keccak256\":\"0x9fdaa8d017b72da25f583700a444a86849df053f7fb8eac874ec5139bcf651e5\",\"urls\":[\"bzz-raw://c8e44c49ee444a98424a0dbeb6897a76a0bf00d88a613f62ac2012afdac754ee\",\"dweb:/ipfs/QmdYkAiRi5bXM1YYNkc7BiqimHSFodMGn1cjHR5hcpm4xH\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBPermissionsData.sol\":{\"keccak256\":\"0xd5a5fe65b1deb40b5cd9c8e05bc1352d0e95f3a18b4986fab7abdc621beb19c7\",\"urls\":[\"bzz-raw://a6141eaa414d3d61de671ae3584b87e98044bf6392cb94d2acd1bb5cc7c19db4\",\"dweb:/ipfs/QmbtvALmburKLRC5fHXscoeZii1N2qQrJAdqarfvSKaKEk\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRuleset.sol\":{\"keccak256\":\"0x03ad7bd257d4ac55ecc42b85156dce1c70eec8572dbf8feb093c033912f305e7\",\"urls\":[\"bzz-raw://9665b4c018cd469f94bec4471222cc9e5fd58ac421a0959f70e72618fe37d55b\",\"dweb:/ipfs/QmSUf6HQv2Ckcoy5tSH1UPdD8vDMerfK29G8kaxmxB3Kow\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRulesetConfig.sol\":{\"keccak256\":\"0x7a57ed3d73bd9457d8e1fb40f5204c364df87cbfdbf42412d5bbc08beabb49c9\",\"urls\":[\"bzz-raw://8b9a83916ee67d32b5f434b35b171c6122bbc4efeaa4fabb8dec2ca4e9e32c6e\",\"dweb:/ipfs/QmNquzUQn6ZvE2wBcMCgru3resV9UNvBWPPetyDChoh8vM\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRulesetMetadata.sol\":{\"keccak256\":\"0x7f49fe89eefe848e6af12aa452bd882430ff35e9dd44e9ff3d7be6911496486c\",\"urls\":[\"bzz-raw://136f3baeb71f8ac1c2721eb94b1d469d35cf3fba82f9138760dde6d451d052ef\",\"dweb:/ipfs/QmVeBaYMS9K3rPfneKiVYnFXbp3X8qxrw4qhN4PmuYHppz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRulesetWithMetadata.sol\":{\"keccak256\":\"0x1bcfadf20488f6df65227f8d4d0fbf9b7539456a2389567f7fe3900d23289bc3\",\"urls\":[\"bzz-raw://0a15c399a71e5373f8c0484c6d6b83521eda31e063a2c53e4c5cec4e74550343\",\"dweb:/ipfs/QmQwi8zkjoTVXbK89NeETYimWCacTrNsesJdpLSvGdqMPX\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBSplit.sol\":{\"keccak256\":\"0x0e1351e80cf9967caee90094712a4fc884a83f07df23a844d8cb33ebcd00721e\",\"urls\":[\"bzz-raw://19d5793c08834f2ec1d6942bd43d05042b0ecc351a57235d748a8f2ff74b6638\",\"dweb:/ipfs/QmUWjyNg7x62KsvMwAzNdpmwqCo5qK5ip9pLdshj9B2Kbf\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBSplitGroup.sol\":{\"keccak256\":\"0x8dc98fa9e730bee8bcc0a8acf1bc4db1c9b0edf307d969c9c9caa4d6b8d856d9\",\"urls\":[\"bzz-raw://66f4306e0e69c82033927952564fd617e7c4b29aa8b165d5b53a0ebe3109ea12\",\"dweb:/ipfs/QmQqN1u7FHAdEtEZNRcKvZwYtXEQVQnLd6FMzHESP7wDtx\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBSplitHookContext.sol\":{\"keccak256\":\"0x1cef82bf434f91d518092ea7e57db4a72ce7654f48a7db9bf44882900b6b6623\",\"urls\":[\"bzz-raw://cc5012008ab7e74cf766fe1c202a23e3a73365356bcf1e0b04ec01baf21b204b\",\"dweb:/ipfs/QmSwJvd6Yrg9XZMhjquBcak5sfUswbR5nPEuJBfpjM54VT\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBTerminalConfig.sol\":{\"keccak256\":\"0x9e31505080d3754b6d7db96095b0545930ef6dbc035b91fcc32fdc76a0e7c2a5\",\"urls\":[\"bzz-raw://f7702ab33a1b713c37e5397a55d8ef089289f4da8034cfe9622cbc69a98c47de\",\"dweb:/ipfs/QmXyiXps4aJyiM7vtDC373QUoqwB4DMETaZzC5cZPJKaAK\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBTokenAmount.sol\":{\"keccak256\":\"0xc61593d33d5ec30e695d382948a1b944d01e29a8f2bfd29f75ecebcdbc7816de\",\"urls\":[\"bzz-raw://8992c1e5fca0c2342ecc0e734dfba6a2a752e4c29184784931d0971e44305051\",\"dweb:/ipfs/QmYNcaW3qeCkgAExUaFTq238fgfJuoYCTwjCn7jm94U4dJ\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/JBOwnable.sol\":{\"keccak256\":\"0x8cb8f41b5c3482f1eb558d49fd56b5487f1dd0ef5c29a068f0638f4fa466aa3e\",\"urls\":[\"bzz-raw://21a9da6e467b117c31eaee30a027207cd07da3311ba830f0b26a2c168ffd9b19\",\"dweb:/ipfs/QmbedU61hLHttGe2aas4zwypBy86K8kqR9fmzW8vhS4oVH\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/JBOwnableOverrides.sol\":{\"keccak256\":\"0xae09b9163b196e10f833966f11f0005001a11792bfa01167f8d693094e024e2b\",\"urls\":[\"bzz-raw://ea26b51472e4180adf37fd6b3e7ec4e4467dbf30dfe56f64a307d882c03a8a14\",\"dweb:/ipfs/QmQmz1HdxUFHYDtgYFEHsPFqTzqa7nBKw9ZCW7Xt8iUN2c\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/interfaces/IJBOwnable.sol\":{\"keccak256\":\"0xbfdca68abf028e9df18b1885b1163fa6a89bfef0878855a1834b382e2fe924b3\",\"urls\":[\"bzz-raw://34e6a3ffd79453942d74a50bed850e7cdd796dad316b6d6be2654ecd6917f62d\",\"dweb:/ipfs/QmeZ2BwJtgomDfQ8K3gJFX9L7HFTuDQJGwYPVbcMEn1xE4\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/struct/JBOwner.sol\":{\"keccak256\":\"0xb2187c4fb303e94814d192284537e4dfac85adecb309f9fa4b2beede63800fad\",\"urls\":[\"bzz-raw://c35989c4f8f77fc8357edf473acd6a223388e24341d67240fd5f66823f595a3b\",\"dweb:/ipfs/QmSFqQ1thNTo7N33TrgPTETtXc29dfgZGeRc7ZGHk1dUGh\"],\"license\":\"MIT\"},\"node_modules/@bananapus/permission-ids/src/JBPermissionIds.sol\":{\"keccak256\":\"0x089932e597c40f1d0f277f8f2acaef065aebcbe8f69012a471b1ead688ccaa47\",\"urls\":[\"bzz-raw://9d9a0a316265d86299e110d56e3f3a1ea9e685b577ef93d6af778e788c8677bb\",\"dweb:/ipfs/QmcHUMAwfdSQknLvPF5N2jT7RM7NnERK9h3kchw18iQqFB\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"],\"license\":\"MIT\"},\"src/JB721TiersHookProjectDeployer.sol\":{\"keccak256\":\"0xd6fea0166c96291b0b4654738d0426f192af6c6e911a936e22b41fab40bc7d7e\",\"urls\":[\"bzz-raw://e90ef39d1c899a46d4e620090b310a46fcb689dc52336cc246ea3d6a2af69521\",\"dweb:/ipfs/QmT5WQhoSVNKGn5dnmJDeaUJVcjt8CSBkDthaRALLRgGdF\"],\"license\":\"MIT\"},\"src/interfaces/IJB721Hook.sol\":{\"keccak256\":\"0xc4c1b2da6354c37e67e4463ca3dc652daf98769a7dc1af5b6e8bc31dc11bdc69\",\"urls\":[\"bzz-raw://583553ab050c7a96dbee7ffe8436a0f345617a816331bba0fb3d1c1e77b39110\",\"dweb:/ipfs/QmXj783jhFVdGzFqpiCgGaNjnmDE2qNGEGE7HidhzGgrSR\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHook.sol\":{\"keccak256\":\"0x1b17153dcb3901a8d9156976ffb20c1047849ad1ce94c3a1934f7ca012b45bb5\",\"urls\":[\"bzz-raw://e86b10609f4ff4279592a7c185c6b202c0ff2572fad40dcbcfab878dbc735daa\",\"dweb:/ipfs/QmSJE6yTqKuA94BKAixiEFRGUUYhwtngsYDW3VCfrbMzKP\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHookDeployer.sol\":{\"keccak256\":\"0xdcf34032c2a22a782b7121e777715766cce471e9e8186cb710865de674d646bf\",\"urls\":[\"bzz-raw://00c19707f9fd04b9393a2081a50d69a14ed37d4a8f689c39219da6379aaacb53\",\"dweb:/ipfs/QmPdJYKrEEJxVYYaoV5rVRhoBuxmBTEH7u3J2TZtom1Sof\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHookProjectDeployer.sol\":{\"keccak256\":\"0x9ec3cdc330019db6a8aeefac543f43054814e5a8a8beed15d51729e94df9ece1\",\"urls\":[\"bzz-raw://20632197d5f24e72999e3af9106fafa3fecbe1bc58c4cebb7cb7cdd73d573959\",\"dweb:/ipfs/QmdpF5NpGzWfCXupszxTjMN616vEGZtsiW35vGmTTxycwX\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHookStore.sol\":{\"keccak256\":\"0x6f3acee1130717bf1ac5c513cb167a8f121a64c047b505e9aced2b23793b79d7\",\"urls\":[\"bzz-raw://9f4dfe3be9e21c8b5446e9d37e699071f9df257a3c7a2fb8a8791e062617acbc\",\"dweb:/ipfs/QmarDks3DcMyHPVsKdj5qpma5ZBMzH8ti92MY38K76hvSA\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TokenUriResolver.sol\":{\"keccak256\":\"0xfa599167098f4459320ec4141a98a17b2dfffbce422baa27d8b4e4530f61ece1\",\"urls\":[\"bzz-raw://8b758b161f4c7b520b2c34b4d91e585e961b8f4ca278eebb91d791f7f2f45140\",\"dweb:/ipfs/QmcD9DF7NJ9QykQpT4KPzm4bs3fkjzukdAUWwdU6Atfw85\"],\"license\":\"MIT\"},\"src/structs/JB721InitTiersConfig.sol\":{\"keccak256\":\"0xff362fcd46992e56996e1b162b129a1d03ca2342a482421f279bd930b7af79dd\",\"urls\":[\"bzz-raw://56a52c0d4461fd1b278789cd31ccc77b5eab9a0d7e2fab5074bae9c8a79d0cb1\",\"dweb:/ipfs/QmagorkFXB4rEq5rfLcoZHu6jtjcMicMBPfVqMQT86xZoB\"],\"license\":\"MIT\"},\"src/structs/JB721Tier.sol\":{\"keccak256\":\"0x99232aa73d5715977332dc7c93b03552a93259e59ae00e86b4ddc200f06adaf1\",\"urls\":[\"bzz-raw://721c0cf10a29fa11677718faafb3a2ecfcb4fbe4e1c09e70a7fac681c80fcc94\",\"dweb:/ipfs/QmSUR77E9PqnpB5kBcKNz2CGBjG9XL9FH57RWVYu3Q7GMR\"],\"license\":\"MIT\"},\"src/structs/JB721TierConfig.sol\":{\"keccak256\":\"0x86e54a0de4deab9d105bf276586aebe256188b193e83eb7a6f6f93e4a29ae9c5\",\"urls\":[\"bzz-raw://04bfcc07d452c26dfc50d3a5eb62df4b3b81e063defd752e0aa5ed049a78eef4\",\"dweb:/ipfs/QmWd5nJHUvZPHxJXkrYCboXaqdtiWWkQG26sNM6qkJuAgD\"],\"license\":\"MIT\"},\"src/structs/JB721TiersHookFlags.sol\":{\"keccak256\":\"0x283d8429f31bd58875c056515aa42abd09c95362bd929e85cfc44a0d92585766\",\"urls\":[\"bzz-raw://9a580b89fe99d9f8e930c58a4d0d63a5ff7c01c79d210af01373d066c9e72ed6\",\"dweb:/ipfs/QmdY1eSGSoTjv4KSdsG4Tm5CzJN6iqk3qTRga5ZWNbejRz\"],\"license\":\"MIT\"},\"src/structs/JB721TiersMintReservesConfig.sol\":{\"keccak256\":\"0x86fe586a05e6d4bc6fab9b68996a7f4b74c5362ca6f24b9d8057ed7e4cd1c5ac\",\"urls\":[\"bzz-raw://0915f17d1f958ab1fe6b214d99ed62f1f858684898c803f1a8a6a557472dd140\",\"dweb:/ipfs/QmUhdnSV8UzkgvbtkYEKHrpyDEmc2aJxW5HQ1gucuxxu5A\"],\"license\":\"MIT\"},\"src/structs/JB721TiersSetDiscountPercentConfig.sol\":{\"keccak256\":\"0x4672eacb6b0cda5e6f5f72ddb91463c52fb90b4df421053e3b40024f19a59954\",\"urls\":[\"bzz-raw://9d8e3a0b35d6b2a6ec66527594263400189b6c766bfd6943c83704380a989aec\",\"dweb:/ipfs/QmUE7NhFWsxjFRzTuRyHJ7oRx3JXD9CnG83t29PjGAhwPR\"],\"license\":\"MIT\"},\"src/structs/JBDeploy721TiersHookConfig.sol\":{\"keccak256\":\"0x0ce457736946394772afe54d575b68a74269cbf37a250de2d27dca6d9dd45005\",\"urls\":[\"bzz-raw://2010a8f6e19354038d3906ddb174f34464c5f341103313a5c4d628aa7732d5a8\",\"dweb:/ipfs/QmU9m18oWtYNV7UHLcW9kdwE3uzoQuGBe6sASvQTk8GZRL\"],\"license\":\"MIT\"},\"src/structs/JBLaunchProjectConfig.sol\":{\"keccak256\":\"0x0a8f87072dd6e5dd7c5cd5af7153172275de7e85625aa4a97da4fed65ad5b029\",\"urls\":[\"bzz-raw://b1d230835bf8fa17e8308d5d2ce4c820c4a719f451a65477f75956e100984047\",\"dweb:/ipfs/QmX6BwoYNJx1SssBLcBoPJBsg2Hv6ZP2uErXUvoMrAaQ71\"],\"license\":\"MIT\"},\"src/structs/JBLaunchRulesetsConfig.sol\":{\"keccak256\":\"0x0088bc7133e3fae1944247370a4eec227aeae8b371534e1d54439499644c0ede\",\"urls\":[\"bzz-raw://31847d92e9eb5e3125f07c23a651c0972e1784f748c4ce9d0c66853ee892c690\",\"dweb:/ipfs/QmRmoXg2MrkUFkMkgKvU7igkHQjhStbbc6CeiHkLCYAn7P\"],\"license\":\"MIT\"},\"src/structs/JBPayDataHookRulesetConfig.sol\":{\"keccak256\":\"0x06fdbc5c40750b8d81e4c079f86a96f5ce922a0ddbb81ddc5a044aa166723f59\",\"urls\":[\"bzz-raw://b810a5768501951e08c46f1907a7f561a49c4e16f339f1679a493fcddd30cc50\",\"dweb:/ipfs/QmfCF85EAdQCnsixXCdkKb5Xz2bL9dqAoDhmiR1QoBo81P\"],\"license\":\"MIT\"},\"src/structs/JBPayDataHookRulesetMetadata.sol\":{\"keccak256\":\"0x087280b3a959933c68ad19acbf07d80f9bbf632d902986c2ff624b6c31a6eeeb\",\"urls\":[\"bzz-raw://a2ddf9483f89b8a9012bc7714db4547b68a0df5fe3bf953e190d2021377f9811\",\"dweb:/ipfs/QmZcs1fuufGwWYy4fW3puX7ZRrribMMzEyEEL7WVCnrMer\"],\"license\":\"MIT\"},\"src/structs/JBQueueRulesetsConfig.sol\":{\"keccak256\":\"0x3ad05bfa31a90070eb4a026a13d508f9a68ca2474c3737bcda97a07307ffa554\",\"urls\":[\"bzz-raw://357f0193da0840e4b012ff1f97c65c8b6f5fea39e323a3777baf2b0625491f12\",\"dweb:/ipfs/QmZkJb8MuZ3wimiV6kry4RMp9ZkUFQA9yhfJDVUWTBWFcq\"],\"license\":\"MIT\"}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IJBDirectory\",\"name\":\"directory\",\"type\":\"address\"},{\"internalType\":\"contract IJBPermissions\",\"name\":\"permissions\",\"type\":\"address\"},{\"internalType\":\"contract IJB721TiersHookDeployer\",\"name\":\"hookDeployer\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"permissionId\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBPermissioned_Unauthorized\"},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DIRECTORY\",\"outputs\":[{\"internalType\":\"contract IJBDirectory\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"HOOK_DEPLOYER\",\"outputs\":[{\"internalType\":\"contract IJB721TiersHookDeployer\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"PERMISSIONS\",\"outputs\":[{\"internalType\":\"contract IJBPermissions\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"struct JBDeploy721TiersHookConfig\",\"name\":\"deployTiersHookConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"contract IJB721TokenUriResolver\",\"name\":\"tokenUriResolver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"},{\"internalType\":\"struct JB721InitTiersConfig\",\"name\":\"tiersConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JB721TierConfig[]\",\"name\":\"tiers\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"votingUnits\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useReserveBeneficiaryAsDefault\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useVotingUnits\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotIncreaseDiscountPercent\",\"type\":\"bool\"}]},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"contract IJBPrices\",\"name\":\"prices\",\"type\":\"address\"}]},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"struct JB721TiersHookFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"noNewTiersWithReserves\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithVotes\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"preventOverspending\",\"type\":\"bool\"}]}]},{\"internalType\":\"struct JBLaunchProjectConfig\",\"name\":\"launchProjectConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"projectUri\",\"type\":\"string\"},{\"internalType\":\"struct JBPayDataHookRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"decayPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBPayDataHookRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"redemptionRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowCrosschainSuckerExtension\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useTotalSurplusForRedemptions\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForRedeem\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"struct JBTerminalConfig[]\",\"name\":\"terminalConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"contract IJBTerminal\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"struct JBAccountingContext[]\",\"name\":\"accountingContextsToAccept\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}]},{\"internalType\":\"contract IJBController\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"launchProjectFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"contract IJB721TiersHook\",\"name\":\"hook\",\"type\":\"address\"}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBDeploy721TiersHookConfig\",\"name\":\"deployTiersHookConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"contract IJB721TokenUriResolver\",\"name\":\"tokenUriResolver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"},{\"internalType\":\"struct JB721InitTiersConfig\",\"name\":\"tiersConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JB721TierConfig[]\",\"name\":\"tiers\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"votingUnits\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useReserveBeneficiaryAsDefault\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useVotingUnits\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotIncreaseDiscountPercent\",\"type\":\"bool\"}]},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"contract IJBPrices\",\"name\":\"prices\",\"type\":\"address\"}]},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"struct JB721TiersHookFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"noNewTiersWithReserves\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithVotes\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"preventOverspending\",\"type\":\"bool\"}]}]},{\"internalType\":\"struct JBLaunchRulesetsConfig\",\"name\":\"launchRulesetsConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"struct JBPayDataHookRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"decayPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBPayDataHookRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"redemptionRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowCrosschainSuckerExtension\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useTotalSurplusForRedemptions\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForRedeem\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"struct JBTerminalConfig[]\",\"name\":\"terminalConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"contract IJBTerminal\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"struct JBAccountingContext[]\",\"name\":\"accountingContextsToAccept\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}]},{\"internalType\":\"contract IJBController\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"launchRulesetsFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rulesetId\",\"type\":\"uint256\"},{\"internalType\":\"contract IJB721TiersHook\",\"name\":\"hook\",\"type\":\"address\"}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBDeploy721TiersHookConfig\",\"name\":\"deployTiersHookConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"contract IJB721TokenUriResolver\",\"name\":\"tokenUriResolver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"},{\"internalType\":\"struct JB721InitTiersConfig\",\"name\":\"tiersConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JB721TierConfig[]\",\"name\":\"tiers\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"votingUnits\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useReserveBeneficiaryAsDefault\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useVotingUnits\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotIncreaseDiscountPercent\",\"type\":\"bool\"}]},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"contract IJBPrices\",\"name\":\"prices\",\"type\":\"address\"}]},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"struct JB721TiersHookFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"noNewTiersWithReserves\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithVotes\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"preventOverspending\",\"type\":\"bool\"}]}]},{\"internalType\":\"struct JBQueueRulesetsConfig\",\"name\":\"queueRulesetsConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"struct JBPayDataHookRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"decayPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBPayDataHookRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"redemptionRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowCrosschainSuckerExtension\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useTotalSurplusForRedemptions\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForRedeem\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}]},{\"internalType\":\"contract IJBController\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"queueRulesetsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rulesetId\",\"type\":\"uint256\"},{\"internalType\":\"contract IJB721TiersHook\",\"name\":\"hook\",\"type\":\"address\"}]}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"directory\":\"The directory of terminals and controllers for projects.\",\"hookDeployer\":\"The 721 tiers hook deployer.\",\"permissions\":\"A contract storing permissions.\"}},\"launchProjectFor(address,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(string,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"params\":{\"controller\":\"The controller that the project's rulesets will be queued with.\",\"deployTiersHookConfig\":\"Configuration which dictates the behavior of the 721 tiers hook which is being deployed.\",\"launchProjectConfig\":\"Configuration which dictates the behavior of the project which is being launched.\",\"owner\":\"The address to set as the owner of the project. The ERC-721 which confers this project's ownership will be sent to this address.\"},\"returns\":{\"hook\":\"The 721 tiers hook that was deployed for the project.\",\"projectId\":\"The ID of the newly launched project.\"}},\"launchRulesetsFor(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"details\":\"Only a project's owner or an operator with the `QUEUE_RULESETS` permission can launch its rulesets.\",\"params\":{\"controller\":\"The controller that the project's rulesets will be queued with.\",\"deployTiersHookConfig\":\"Configuration which dictates the behavior of the 721 tiers hook which is being deployed.\",\"launchRulesetsConfig\":\"Configuration which dictates the project's new rulesets.\",\"projectId\":\"The ID of the project that rulesets are being launched for.\"},\"returns\":{\"hook\":\"The 721 tiers hook that was deployed for the project.\",\"rulesetId\":\"The ID of the successfully created ruleset.\"}},\"queueRulesetsOf(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],string),address)\":{\"details\":\"Only a project's owner or an operator with the `QUEUE_RULESETS` permission can queue its rulesets.\",\"params\":{\"controller\":\"The controller that the project's rulesets will be queued with.\",\"deployTiersHookConfig\":\"Configuration which dictates the behavior of the 721 tiers hook which is being deployed.\",\"projectId\":\"The ID of the project that rulesets are being queued for.\",\"queueRulesetsConfig\":\"Configuration which dictates the project's newly queued rulesets.\"},\"returns\":{\"hook\":\"The 721 tiers hook that was deployed for the project.\",\"rulesetId\":\"The ID of the successfully created ruleset.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DIRECTORY()\":{\"notice\":\"The directory of terminals and controllers for projects.\"},\"HOOK_DEPLOYER()\":{\"notice\":\"The 721 tiers hook deployer.\"},\"PERMISSIONS()\":{\"notice\":\"A contract storing permissions.\"},\"launchProjectFor(address,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(string,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"notice\":\"Launches a new project with a 721 tiers hook attached.\"},\"launchRulesetsFor(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"notice\":\"Launches rulesets for a project with an attached 721 tiers hook.\"},\"queueRulesetsOf(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],string),address)\":{\"notice\":\"Queues rulesets for a project with an attached 721 tiers hook.\"}},\"version\":1}},\"settings\":{\"remappings\":[\"@bananapus/=node_modules/@bananapus/\",\"@chainlink/=node_modules/@chainlink/\",\"@eth-optimism/=node_modules/@eth-optimism/\",\"@openzeppelin/=node_modules/@openzeppelin/\",\"@prb/=node_modules/@prb/\",\"@scroll-tech/=node_modules/@scroll-tech/\",\"@sphinx-labs/contracts/=node_modules/@sphinx-labs/contracts/contracts/foundry/\",\"@uniswap/=node_modules/@uniswap/\",\"ds-test/=lib/forge-std/lib/ds-test/src/\",\"forge-std/=lib/forge-std/src/\",\"hardhat/=node_modules/hardhat/\",\"solmate/=node_modules/solmate/\",\"sphinx/=lib/sphinx/packages/contracts/contracts/forge-std/src/\"],\"optimizer\":{\"enabled\":true,\"runs\":800},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"compilationTarget\":{\"src/JB721TiersHookProjectDeployer.sol\":\"JB721TiersHookProjectDeployer\"},\"evmVersion\":\"paris\",\"libraries\":{}},\"sources\":{\"node_modules/@bananapus/core/src/abstract/JBPermissioned.sol\":{\"keccak256\":\"0xbaaa61c6aa043522617d3c1a86960c23b9978ee2a6c9d593b00beeeb6ce64423\",\"urls\":[\"bzz-raw://09beed8608e02ce9dbf28814309aaf62c9eec67e0701a26113bdbb4cbae56c42\",\"dweb:/ipfs/QmZrHFnpjX9uBzbFrSjqQgQBkvpJ1ZyvjtT9RfneNGv32S\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/enums/JBApprovalStatus.sol\":{\"keccak256\":\"0x61c69b6bac7d24b566d87cda23a77e4ca9cdb87200b106aba8534cb9a0973e33\",\"urls\":[\"bzz-raw://6a9ca7249de76f77a8252eefe6bd1b63d47952f25a2acfa2c8db967cdff4470c\",\"dweb:/ipfs/QmaxSxptRQNj8bNy96EreENmrnRWdKmhyihBcxyWzBX5BN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBController.sol\":{\"keccak256\":\"0xf577428966a4db4ca17fb73abf2ff2e21cc0e231df2d7247bf410f926d6cb5f7\",\"urls\":[\"bzz-raw://7c1d847382f731b8c464b55ead0ed5c517aa3fa606aaf78b7881aab18108d504\",\"dweb:/ipfs/QmXW3DpPgjYw33A8bMxJFRVZRYjCnWTp28M8sSdPHbDq7E\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBDirectory.sol\":{\"keccak256\":\"0xcb97db460d2948a7f51c660fe0d1b1749047a419027711c476b86ad3573534c5\",\"urls\":[\"bzz-raw://a909c7a3d471054537894dca827e6e018e92ac25299b43026e5b1e335ec4de68\",\"dweb:/ipfs/QmU1GT3F8PNMjSiPPP5cSLLofefHYFJXnywMCdqqM9xUeh\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBDirectoryAccessControl.sol\":{\"keccak256\":\"0x1ea768919979d9f625920c05a5e633739febc822ce14b1e4724d739b19c10fb8\",\"urls\":[\"bzz-raw://7c5391a510bd610a97978245b7306d8d21c79d7c45c15f590ba9b603ea751154\",\"dweb:/ipfs/QmPSJvVWswqzv3bVq422UhA2BybMsiHoYFWGPp5Jh6Xs6a\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBFundAccessLimits.sol\":{\"keccak256\":\"0xfd8ea4cffd289e7fef6e53b5c8983eb6b941de306517f40c047048d3a8a2ca08\",\"urls\":[\"bzz-raw://2765cdee206f8b1b53874448e2481db001cd3706753190cfc9381318c7a7c41c\",\"dweb:/ipfs/QmQ5UYSadtzrb7BcTR93KnAYKXawdyDUG5HjjASV1zbys5\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPayHook.sol\":{\"keccak256\":\"0x9438866782c652c2942f4d114e35f393cd3c8b0334abce8387eed90bca35e8b2\",\"urls\":[\"bzz-raw://cfd99daf57213f92325aad7d7d16e98476d38e870470e95ba01e3ae3cdecc95d\",\"dweb:/ipfs/QmUKKAVGf7ki8BHksr99tFcRW8APveeB5tNH63ctTbbCW8\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPermissioned.sol\":{\"keccak256\":\"0x5b038d4dee116584e88b230920e56d48e135053e3f7e5642eaea14a775c1dad7\",\"urls\":[\"bzz-raw://19e43102f349fd4a1da1c0943ffb8f2950007fe4bb4bb7e8f74fc142575d091b\",\"dweb:/ipfs/QmXHAt4KzDTdDZgDDefEXH2WKi7NcfkJb9R7nxW5uDqsNp\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPermissions.sol\":{\"keccak256\":\"0x49d2b91a866004af098a6770b28040071885b048b4b50744b12a1e5b212c5e5e\",\"urls\":[\"bzz-raw://089b4dda50be91412ffe1fbe333f78cc894f073c1a7afe469f10a2cee12fbf9e\",\"dweb:/ipfs/QmYPPBZ6HwBa1RNkNGqGcR2xgj4fnWBzrPHHoJG3kZA6AN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPriceFeed.sol\":{\"keccak256\":\"0x4bd84c0f1a5d4729ed709bcddd43f4c50ec4a165ece79780af8dce482ed07d4a\",\"urls\":[\"bzz-raw://62bac4bfb6982fb002f620c77e5c445e62d50241a5aa64a07e51d929f5a42180\",\"dweb:/ipfs/QmWgJUDreVY2BuMX38a1iUUR5kNbMwGnKG3VvurB7oZtuM\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPrices.sol\":{\"keccak256\":\"0xb4d5244daa52aafab0c9b8806b7f973afa6a3b298add5966d586d27b78424cfb\",\"urls\":[\"bzz-raw://a819f74455aaa4f679ded378424702f3992608a640d7f943b19938eb4ff711da\",\"dweb:/ipfs/QmSMGvVTsMW3L5YSUyXTKoEsgNpGEutnq4frEZHuDdeDvz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBProjectUriRegistry.sol\":{\"keccak256\":\"0xc9ab647179d7d0c857fdd881d6ce96f06254739440ed08e85a1c2042218f7c7d\",\"urls\":[\"bzz-raw://8529368f30c98c8d5a69acdbe4ac79e3eeb4afa5a9cd278325c5f2184ef3d50f\",\"dweb:/ipfs/QmfUaozYiAGt1UwBDUEZvon1tEBS5sLPzqpN9dNdjQotPN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBProjects.sol\":{\"keccak256\":\"0x4ae42a9cc29b517b26d2b9b635deb82c16696b777deeca92dfcad33b0f81c0a0\",\"urls\":[\"bzz-raw://1dcbd860e7d7f05232d90c5e9cfd3d01e2ce986ffcdb053473d8a4d387b1a48a\",\"dweb:/ipfs/QmWKWoSJJbVWDumbnzXJBJyXmAacgC97bxMtchh8te41bn\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBRulesetApprovalHook.sol\":{\"keccak256\":\"0x592e95d159494421c6b1bcb362d0cee1df0132921697351304e9cd7af4fbd386\",\"urls\":[\"bzz-raw://5bebfd5fa67c1b6ea16fa2e76e9520e9dfe52a579f48dd94d0c2ec45f78ad178\",\"dweb:/ipfs/QmRUawEGtfYoYSHmHELGhvJoWuMsxLPKtqAXgsrb7fJboP\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBRulesets.sol\":{\"keccak256\":\"0x29b56a91e8cd4d3e718e18cd934eccbc22c668d08dc26adb43c958722497d3ab\",\"urls\":[\"bzz-raw://7ae1a723eaf16809b9bd73cd235985801aff85283976be342416fa301c3b4793\",\"dweb:/ipfs/QmZYSY7C9dPvR5EnT8YCjVSy842dBVP3wZdYQ71wyPkx2F\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBSplitHook.sol\":{\"keccak256\":\"0xeb8dfac7a4b81897a1c3b5d0d853a406bcff33720fb187d5ca5bb3dcc0ba3a12\",\"urls\":[\"bzz-raw://36aaeef6107cfe5b0127e063ea215aac7200f8af02e28a48e61111abd3254688\",\"dweb:/ipfs/QmQ8yQANXnhQCAWBGKsKCDsJ3A8hnTKNg5tyo79GfWXTcV\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBSplits.sol\":{\"keccak256\":\"0x424e6d1189b9ba7a5d441e7675ae09ff893c13c62b9ddde4dd6bc2690e96c6f3\",\"urls\":[\"bzz-raw://7e30ed7ab1daf20ff324aacfef7150a243b5db496eceaf032c7012ccb3c4227d\",\"dweb:/ipfs/QmRj5EZKmDjJy8tpvKbpz8vPSKHR5C9Q5ENe7oSLij4H8M\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBTerminal.sol\":{\"keccak256\":\"0xe440530f1d0cc16578981e1d2e4e13674360c677d19a74a4b08f9f7268c70aee\",\"urls\":[\"bzz-raw://ddea4aeaf523f48a1364a02d2ccb75f3dfd8a2b9af465964e9adf3ce53f4196a\",\"dweb:/ipfs/QmVWhN1Nn9khUN8ctAgh2Ypo2vnFBgDHtDw6S232A6RkFw\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBToken.sol\":{\"keccak256\":\"0xd33757cd3da65a9d66404b7e6ddb7a27b4902885a3498b9db1673c218e9fab2d\",\"urls\":[\"bzz-raw://de28759920dab1db6cfcb4ff2ffae76491be371b791a2a0ec054ff17653872dc\",\"dweb:/ipfs/QmPXnhdxbgoV4dBRJCi9siQYRfrvcJLDtY1rp3H2vtU1Cz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBTokenUriResolver.sol\":{\"keccak256\":\"0xfa5cb00dcd6085d1ef912d071fe73c63f9478a2cd0f9d8bddaf659b6af2d0967\",\"urls\":[\"bzz-raw://282e4e7c342d65f77cde0e9a08fcaf20ef5cf379c7a48b639842c0ffd0b2afb8\",\"dweb:/ipfs/QmbnN3PEQeZaXdPLT75V1J79kMg7KqSMru37RHrL3z8Yf2\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBTokens.sol\":{\"keccak256\":\"0x1348b416ebf501409acc9970d46be89ffd076566001ceff9b96fce1b0b2c405d\",\"urls\":[\"bzz-raw://74327019f5174345afed10d9a60caa9ef908382e131882c27588b13be8364b36\",\"dweb:/ipfs/QmZAqB6hFSymTEbjqHWgE4t9NRose9AJh4etGyWnvDkhJt\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBAccountingContext.sol\":{\"keccak256\":\"0x9c47e048a719f784f601df69a583505432217b9868a0244876d277f84dd1ebdf\",\"urls\":[\"bzz-raw://8565f194b87914da9a02af2e760ae2ed2a9d185c6f11229f7035140776d2fec9\",\"dweb:/ipfs/QmPs2fic8W3F5e5zNRwmGmJFjb3JWGPWJ3YUe5o82nQgEn\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBAfterPayRecordedContext.sol\":{\"keccak256\":\"0xd26c3a774ff38be79064085970454fe2603a23a638c76270d5b1b3829206c3e8\",\"urls\":[\"bzz-raw://3b55dbe3bf1ef625b7ca04efab3de35406e6041d5b3d82c7265469c500e2b702\",\"dweb:/ipfs/QmUdBDo4Lt3mcsFcsXT2mqq3czFwZjQJFPLM89YA2VtD7k\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBCurrencyAmount.sol\":{\"keccak256\":\"0x7f321bbcbd13abfbc8f0d08a5adaaf8ef312db5bb899012fcffb6170fbb962a9\",\"urls\":[\"bzz-raw://bf9301ef1dbb3abda7b492585377617508ba048c6170f21a5e7d2b3c034eb384\",\"dweb:/ipfs/QmcetEFxSYLLNSZzPBpNn3Fc8sFcrFE8A8h12ZSj2tLgxD\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBFundAccessLimitGroup.sol\":{\"keccak256\":\"0x9fdaa8d017b72da25f583700a444a86849df053f7fb8eac874ec5139bcf651e5\",\"urls\":[\"bzz-raw://c8e44c49ee444a98424a0dbeb6897a76a0bf00d88a613f62ac2012afdac754ee\",\"dweb:/ipfs/QmdYkAiRi5bXM1YYNkc7BiqimHSFodMGn1cjHR5hcpm4xH\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBPermissionsData.sol\":{\"keccak256\":\"0xd5a5fe65b1deb40b5cd9c8e05bc1352d0e95f3a18b4986fab7abdc621beb19c7\",\"urls\":[\"bzz-raw://a6141eaa414d3d61de671ae3584b87e98044bf6392cb94d2acd1bb5cc7c19db4\",\"dweb:/ipfs/QmbtvALmburKLRC5fHXscoeZii1N2qQrJAdqarfvSKaKEk\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRuleset.sol\":{\"keccak256\":\"0x03ad7bd257d4ac55ecc42b85156dce1c70eec8572dbf8feb093c033912f305e7\",\"urls\":[\"bzz-raw://9665b4c018cd469f94bec4471222cc9e5fd58ac421a0959f70e72618fe37d55b\",\"dweb:/ipfs/QmSUf6HQv2Ckcoy5tSH1UPdD8vDMerfK29G8kaxmxB3Kow\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRulesetConfig.sol\":{\"keccak256\":\"0x7a57ed3d73bd9457d8e1fb40f5204c364df87cbfdbf42412d5bbc08beabb49c9\",\"urls\":[\"bzz-raw://8b9a83916ee67d32b5f434b35b171c6122bbc4efeaa4fabb8dec2ca4e9e32c6e\",\"dweb:/ipfs/QmNquzUQn6ZvE2wBcMCgru3resV9UNvBWPPetyDChoh8vM\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRulesetMetadata.sol\":{\"keccak256\":\"0x7f49fe89eefe848e6af12aa452bd882430ff35e9dd44e9ff3d7be6911496486c\",\"urls\":[\"bzz-raw://136f3baeb71f8ac1c2721eb94b1d469d35cf3fba82f9138760dde6d451d052ef\",\"dweb:/ipfs/QmVeBaYMS9K3rPfneKiVYnFXbp3X8qxrw4qhN4PmuYHppz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRulesetWithMetadata.sol\":{\"keccak256\":\"0x1bcfadf20488f6df65227f8d4d0fbf9b7539456a2389567f7fe3900d23289bc3\",\"urls\":[\"bzz-raw://0a15c399a71e5373f8c0484c6d6b83521eda31e063a2c53e4c5cec4e74550343\",\"dweb:/ipfs/QmQwi8zkjoTVXbK89NeETYimWCacTrNsesJdpLSvGdqMPX\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBSplit.sol\":{\"keccak256\":\"0x0e1351e80cf9967caee90094712a4fc884a83f07df23a844d8cb33ebcd00721e\",\"urls\":[\"bzz-raw://19d5793c08834f2ec1d6942bd43d05042b0ecc351a57235d748a8f2ff74b6638\",\"dweb:/ipfs/QmUWjyNg7x62KsvMwAzNdpmwqCo5qK5ip9pLdshj9B2Kbf\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBSplitGroup.sol\":{\"keccak256\":\"0x8dc98fa9e730bee8bcc0a8acf1bc4db1c9b0edf307d969c9c9caa4d6b8d856d9\",\"urls\":[\"bzz-raw://66f4306e0e69c82033927952564fd617e7c4b29aa8b165d5b53a0ebe3109ea12\",\"dweb:/ipfs/QmQqN1u7FHAdEtEZNRcKvZwYtXEQVQnLd6FMzHESP7wDtx\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBSplitHookContext.sol\":{\"keccak256\":\"0x1cef82bf434f91d518092ea7e57db4a72ce7654f48a7db9bf44882900b6b6623\",\"urls\":[\"bzz-raw://cc5012008ab7e74cf766fe1c202a23e3a73365356bcf1e0b04ec01baf21b204b\",\"dweb:/ipfs/QmSwJvd6Yrg9XZMhjquBcak5sfUswbR5nPEuJBfpjM54VT\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBTerminalConfig.sol\":{\"keccak256\":\"0x9e31505080d3754b6d7db96095b0545930ef6dbc035b91fcc32fdc76a0e7c2a5\",\"urls\":[\"bzz-raw://f7702ab33a1b713c37e5397a55d8ef089289f4da8034cfe9622cbc69a98c47de\",\"dweb:/ipfs/QmXyiXps4aJyiM7vtDC373QUoqwB4DMETaZzC5cZPJKaAK\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBTokenAmount.sol\":{\"keccak256\":\"0xc61593d33d5ec30e695d382948a1b944d01e29a8f2bfd29f75ecebcdbc7816de\",\"urls\":[\"bzz-raw://8992c1e5fca0c2342ecc0e734dfba6a2a752e4c29184784931d0971e44305051\",\"dweb:/ipfs/QmYNcaW3qeCkgAExUaFTq238fgfJuoYCTwjCn7jm94U4dJ\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/JBOwnable.sol\":{\"keccak256\":\"0x8cb8f41b5c3482f1eb558d49fd56b5487f1dd0ef5c29a068f0638f4fa466aa3e\",\"urls\":[\"bzz-raw://21a9da6e467b117c31eaee30a027207cd07da3311ba830f0b26a2c168ffd9b19\",\"dweb:/ipfs/QmbedU61hLHttGe2aas4zwypBy86K8kqR9fmzW8vhS4oVH\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/JBOwnableOverrides.sol\":{\"keccak256\":\"0xae09b9163b196e10f833966f11f0005001a11792bfa01167f8d693094e024e2b\",\"urls\":[\"bzz-raw://ea26b51472e4180adf37fd6b3e7ec4e4467dbf30dfe56f64a307d882c03a8a14\",\"dweb:/ipfs/QmQmz1HdxUFHYDtgYFEHsPFqTzqa7nBKw9ZCW7Xt8iUN2c\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/interfaces/IJBOwnable.sol\":{\"keccak256\":\"0xbfdca68abf028e9df18b1885b1163fa6a89bfef0878855a1834b382e2fe924b3\",\"urls\":[\"bzz-raw://34e6a3ffd79453942d74a50bed850e7cdd796dad316b6d6be2654ecd6917f62d\",\"dweb:/ipfs/QmeZ2BwJtgomDfQ8K3gJFX9L7HFTuDQJGwYPVbcMEn1xE4\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/struct/JBOwner.sol\":{\"keccak256\":\"0xb2187c4fb303e94814d192284537e4dfac85adecb309f9fa4b2beede63800fad\",\"urls\":[\"bzz-raw://c35989c4f8f77fc8357edf473acd6a223388e24341d67240fd5f66823f595a3b\",\"dweb:/ipfs/QmSFqQ1thNTo7N33TrgPTETtXc29dfgZGeRc7ZGHk1dUGh\"],\"license\":\"MIT\"},\"node_modules/@bananapus/permission-ids/src/JBPermissionIds.sol\":{\"keccak256\":\"0x089932e597c40f1d0f277f8f2acaef065aebcbe8f69012a471b1ead688ccaa47\",\"urls\":[\"bzz-raw://9d9a0a316265d86299e110d56e3f3a1ea9e685b577ef93d6af778e788c8677bb\",\"dweb:/ipfs/QmcHUMAwfdSQknLvPF5N2jT7RM7NnERK9h3kchw18iQqFB\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"],\"license\":\"MIT\"},\"src/JB721TiersHookProjectDeployer.sol\":{\"keccak256\":\"0xcd7165987797aca8e0fa948e69b77e8b7da1f0ccbb7b487d52cd601b3a9f678e\",\"urls\":[\"bzz-raw://935ad4437be2b3bdeb263718b53adc51a1812e914b03f8a8d720e10b05faaa70\",\"dweb:/ipfs/QmQ85fKayU5cLTCEV4ZfYTTYdJwiZuq1rSNZFAeXsBkRu9\"],\"license\":\"MIT\"},\"src/interfaces/IJB721Hook.sol\":{\"keccak256\":\"0xc4c1b2da6354c37e67e4463ca3dc652daf98769a7dc1af5b6e8bc31dc11bdc69\",\"urls\":[\"bzz-raw://583553ab050c7a96dbee7ffe8436a0f345617a816331bba0fb3d1c1e77b39110\",\"dweb:/ipfs/QmXj783jhFVdGzFqpiCgGaNjnmDE2qNGEGE7HidhzGgrSR\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHook.sol\":{\"keccak256\":\"0x1b17153dcb3901a8d9156976ffb20c1047849ad1ce94c3a1934f7ca012b45bb5\",\"urls\":[\"bzz-raw://e86b10609f4ff4279592a7c185c6b202c0ff2572fad40dcbcfab878dbc735daa\",\"dweb:/ipfs/QmSJE6yTqKuA94BKAixiEFRGUUYhwtngsYDW3VCfrbMzKP\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHookDeployer.sol\":{\"keccak256\":\"0xdcf34032c2a22a782b7121e777715766cce471e9e8186cb710865de674d646bf\",\"urls\":[\"bzz-raw://00c19707f9fd04b9393a2081a50d69a14ed37d4a8f689c39219da6379aaacb53\",\"dweb:/ipfs/QmPdJYKrEEJxVYYaoV5rVRhoBuxmBTEH7u3J2TZtom1Sof\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHookProjectDeployer.sol\":{\"keccak256\":\"0xffcee695bbdf4960b99b905b966ba6225a1909e65397c1f32389e77ec49207d0\",\"urls\":[\"bzz-raw://7aadbb2a046524b164e0886b9deb049823e5b1c92efcf2ad7fd8e22d5a746d51\",\"dweb:/ipfs/QmbhafFJmJ6MUtrSzHqLnshz1PNUz3rgcvB8zif1p8sf7d\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHookStore.sol\":{\"keccak256\":\"0x6f3acee1130717bf1ac5c513cb167a8f121a64c047b505e9aced2b23793b79d7\",\"urls\":[\"bzz-raw://9f4dfe3be9e21c8b5446e9d37e699071f9df257a3c7a2fb8a8791e062617acbc\",\"dweb:/ipfs/QmarDks3DcMyHPVsKdj5qpma5ZBMzH8ti92MY38K76hvSA\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TokenUriResolver.sol\":{\"keccak256\":\"0xfa599167098f4459320ec4141a98a17b2dfffbce422baa27d8b4e4530f61ece1\",\"urls\":[\"bzz-raw://8b758b161f4c7b520b2c34b4d91e585e961b8f4ca278eebb91d791f7f2f45140\",\"dweb:/ipfs/QmcD9DF7NJ9QykQpT4KPzm4bs3fkjzukdAUWwdU6Atfw85\"],\"license\":\"MIT\"},\"src/structs/JB721InitTiersConfig.sol\":{\"keccak256\":\"0xff362fcd46992e56996e1b162b129a1d03ca2342a482421f279bd930b7af79dd\",\"urls\":[\"bzz-raw://56a52c0d4461fd1b278789cd31ccc77b5eab9a0d7e2fab5074bae9c8a79d0cb1\",\"dweb:/ipfs/QmagorkFXB4rEq5rfLcoZHu6jtjcMicMBPfVqMQT86xZoB\"],\"license\":\"MIT\"},\"src/structs/JB721Tier.sol\":{\"keccak256\":\"0x99232aa73d5715977332dc7c93b03552a93259e59ae00e86b4ddc200f06adaf1\",\"urls\":[\"bzz-raw://721c0cf10a29fa11677718faafb3a2ecfcb4fbe4e1c09e70a7fac681c80fcc94\",\"dweb:/ipfs/QmSUR77E9PqnpB5kBcKNz2CGBjG9XL9FH57RWVYu3Q7GMR\"],\"license\":\"MIT\"},\"src/structs/JB721TierConfig.sol\":{\"keccak256\":\"0x86e54a0de4deab9d105bf276586aebe256188b193e83eb7a6f6f93e4a29ae9c5\",\"urls\":[\"bzz-raw://04bfcc07d452c26dfc50d3a5eb62df4b3b81e063defd752e0aa5ed049a78eef4\",\"dweb:/ipfs/QmWd5nJHUvZPHxJXkrYCboXaqdtiWWkQG26sNM6qkJuAgD\"],\"license\":\"MIT\"},\"src/structs/JB721TiersHookFlags.sol\":{\"keccak256\":\"0x283d8429f31bd58875c056515aa42abd09c95362bd929e85cfc44a0d92585766\",\"urls\":[\"bzz-raw://9a580b89fe99d9f8e930c58a4d0d63a5ff7c01c79d210af01373d066c9e72ed6\",\"dweb:/ipfs/QmdY1eSGSoTjv4KSdsG4Tm5CzJN6iqk3qTRga5ZWNbejRz\"],\"license\":\"MIT\"},\"src/structs/JB721TiersMintReservesConfig.sol\":{\"keccak256\":\"0x86fe586a05e6d4bc6fab9b68996a7f4b74c5362ca6f24b9d8057ed7e4cd1c5ac\",\"urls\":[\"bzz-raw://0915f17d1f958ab1fe6b214d99ed62f1f858684898c803f1a8a6a557472dd140\",\"dweb:/ipfs/QmUhdnSV8UzkgvbtkYEKHrpyDEmc2aJxW5HQ1gucuxxu5A\"],\"license\":\"MIT\"},\"src/structs/JB721TiersSetDiscountPercentConfig.sol\":{\"keccak256\":\"0x4672eacb6b0cda5e6f5f72ddb91463c52fb90b4df421053e3b40024f19a59954\",\"urls\":[\"bzz-raw://9d8e3a0b35d6b2a6ec66527594263400189b6c766bfd6943c83704380a989aec\",\"dweb:/ipfs/QmUE7NhFWsxjFRzTuRyHJ7oRx3JXD9CnG83t29PjGAhwPR\"],\"license\":\"MIT\"},\"src/structs/JBDeploy721TiersHookConfig.sol\":{\"keccak256\":\"0x0ce457736946394772afe54d575b68a74269cbf37a250de2d27dca6d9dd45005\",\"urls\":[\"bzz-raw://2010a8f6e19354038d3906ddb174f34464c5f341103313a5c4d628aa7732d5a8\",\"dweb:/ipfs/QmU9m18oWtYNV7UHLcW9kdwE3uzoQuGBe6sASvQTk8GZRL\"],\"license\":\"MIT\"},\"src/structs/JBLaunchProjectConfig.sol\":{\"keccak256\":\"0x0a8f87072dd6e5dd7c5cd5af7153172275de7e85625aa4a97da4fed65ad5b029\",\"urls\":[\"bzz-raw://b1d230835bf8fa17e8308d5d2ce4c820c4a719f451a65477f75956e100984047\",\"dweb:/ipfs/QmX6BwoYNJx1SssBLcBoPJBsg2Hv6ZP2uErXUvoMrAaQ71\"],\"license\":\"MIT\"},\"src/structs/JBLaunchRulesetsConfig.sol\":{\"keccak256\":\"0x0088bc7133e3fae1944247370a4eec227aeae8b371534e1d54439499644c0ede\",\"urls\":[\"bzz-raw://31847d92e9eb5e3125f07c23a651c0972e1784f748c4ce9d0c66853ee892c690\",\"dweb:/ipfs/QmRmoXg2MrkUFkMkgKvU7igkHQjhStbbc6CeiHkLCYAn7P\"],\"license\":\"MIT\"},\"src/structs/JBPayDataHookRulesetConfig.sol\":{\"keccak256\":\"0x06fdbc5c40750b8d81e4c079f86a96f5ce922a0ddbb81ddc5a044aa166723f59\",\"urls\":[\"bzz-raw://b810a5768501951e08c46f1907a7f561a49c4e16f339f1679a493fcddd30cc50\",\"dweb:/ipfs/QmfCF85EAdQCnsixXCdkKb5Xz2bL9dqAoDhmiR1QoBo81P\"],\"license\":\"MIT\"},\"src/structs/JBPayDataHookRulesetMetadata.sol\":{\"keccak256\":\"0x087280b3a959933c68ad19acbf07d80f9bbf632d902986c2ff624b6c31a6eeeb\",\"urls\":[\"bzz-raw://a2ddf9483f89b8a9012bc7714db4547b68a0df5fe3bf953e190d2021377f9811\",\"dweb:/ipfs/QmZcs1fuufGwWYy4fW3puX7ZRrribMMzEyEEL7WVCnrMer\"],\"license\":\"MIT\"},\"src/structs/JBQueueRulesetsConfig.sol\":{\"keccak256\":\"0x3ad05bfa31a90070eb4a026a13d508f9a68ca2474c3737bcda97a07307ffa554\",\"urls\":[\"bzz-raw://357f0193da0840e4b012ff1f97c65c8b6f5fea39e323a3777baf2b0625491f12\",\"dweb:/ipfs/QmZkJb8MuZ3wimiV6kry4RMp9ZkUFQA9yhfJDVUWTBWFcq\"],\"license\":\"MIT\"}},\"version\":1}", "args": [ "0xE0B2860344bA476e12eD1d559656dA9D04F1AD22", "0x4CDb4200e4E65a277676Cd5E8d3c7C7C4dA7fBe5", "0x2BAd941E6c2f9CdBbfc9C25F804f060ffEA1d7bE" ], - "bytecode": "0x60e06040523480156200001157600080fd5b5060405162002a2138038062002a2183398101604081905262000034916200006b565b6001600160a01b0391821660805291811660a0521660c052620000bf565b6001600160a01b03811681146200006857600080fd5b50565b6000806000606084860312156200008157600080fd5b83516200008e8162000052565b6020850151909350620000a18162000052565b6040850151909250620000b48162000052565b809150509250925092565b60805160a05160c0516129036200011e6000396000818160f4015281816102460152818161046501526105d801526000818160a20152818161015401528181610355015261056201526000818161012e0152610a2401526129036000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063abf8c5c811610050578063abf8c5c8146100ef578063ac6a26f814610116578063f434c9141461012957600080fd5b80633c3a22bb1461007757806388bc2ef31461009d5780638b716777146100dc575b600080fd5b61008a6100853660046111cc565b610150565b6040519081526020015b60405180910390f35b6100c47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610094565b61008a6100ea366004611255565b61034e565b6100c47f000000000000000000000000000000000000000000000000000000000000000081565b61008a61012436600461128a565b61055b565b6100c47f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d49190611304565b6001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610211573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102359190611328565b610240906001611341565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663cc7bb31f83876040518363ffffffff1660e01b81526004016102929291906116c7565b6020604051808303816000875af11580156102b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d59190611304565b90506102eb866102e486612135565b83866106c4565b6040516351106b4b60e11b8152600481018390526001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561032d57600080fd5b505af1158015610341573d6000803e3d6000fd5b5050505050949350505050565b600061044b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d59190611304565b6001600160a01b0316636352211e876040518263ffffffff1660e01b815260040161040291815260200190565b602060405180830381865afa15801561041f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104439190611304565b8660026109cc565b60405163cc7bb31f60e01b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f9061049c90899089906004016116c7565b6020604051808303816000875af11580156104bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104df9190611304565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561052457600080fd5b505af1158015610538573d6000803e3d6000fd5b50505050610551868561054a906121ec565b8386610ada565b9695505050505050565b60006105be7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b1573d6000803e3d6000fd5b60405163cc7bb31f60e01b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f9061060f90899089906004016116c7565b6020604051808303816000875af115801561062e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106529190611304565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561069757600080fd5b505af11580156106ab573d6000803e3d6000fd5b5050505061055186856106bd9061222c565b8386610de4565b60208301515160008167ffffffffffffffff8111156106e5576106e56117e7565b60405190808252806020026020018201604052801561071e57816020015b61070b61109b565b8152602001906001900390816107035790505b50905060005b8281101561094457600086602001518281518110610744576107446122aa565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e0015115158152602001896001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610930576109306122aa565b602090810291909101015250600101610724565b50845160408087015160608801519151634e530d8960e11b81526001600160a01b03871693639ca61b1293610980938c938892906004016127de565b6020604051808303816000875af115801561099f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c39190611328565b50505050505050565b336001600160a01b0384168114801590610a915750604051631a45b42760e11b81526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000000000000000000000000000000000000000000000169063348b684e9060c401602060405180830381865afa158015610a6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8f9190612846565b155b15610ad457604051631326f75560e11b81526001600160a01b03808616600483015282166024820152604481018490526064810183905260840160405180910390fd5b50505050565b602083015151600090818167ffffffffffffffff811115610afd57610afd6117e7565b604051908082528060200260200182016040528015610b3657816020015b610b2361109b565b815260200190600190039081610b1b5790505b50905060005b82811015610d5c57600087602001518281518110610b5c57610b5c6122aa565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610d4857610d486122aa565b602090810291909101015250600101610b3c565b5060408087015160608801519151632a550fab60e11b81526001600160a01b038716926354aa1f5692610d96928c92879291600401612863565b6020604051808303816000875af1158015610db5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd99190611328565b979650505050505050565b602083015151600090818167ffffffffffffffff811115610e0757610e076117e7565b604051908082528060200260200182016040528015610e4057816020015b610e2d61109b565b815260200190600190039081610e255790505b50905060005b8281101561106657600087602001518281518110610e6657610e666122aa565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110611052576110526122aa565b602090810291909101015250600101610e46565b506040808701519051630e18de6b60e41b81526001600160a01b0386169163e18de6b091610d96918b918691906004016128a2565b6040805161010080820183526000808352602080840182905283850182905260608085018390526080808601849052865161028081018852848152928301849052958201839052810182905293840181905260a084810182905260c0850182905260e0850182905291840181905261012084018190526101408401819052610160840181905261018084018190526101a084018190526101c084018190526101e08401819052610200840181905261022084018190526102408401819052610260840152909190820190815260200160608152602001606081525090565b6001600160a01b038116811461118e57600080fd5b50565b803561119c81611179565b919050565b600061016082840312156111b457600080fd5b50919050565b6000608082840312156111b457600080fd5b600080600080608085870312156111e257600080fd5b84356111ed81611179565b9350602085013567ffffffffffffffff8082111561120a57600080fd5b611216888389016111a1565b9450604087013591508082111561122c57600080fd5b50611239878288016111ba565b925050606085013561124a81611179565b939692955090935050565b6000806000806080858703121561126b57600080fd5b84359350602085013567ffffffffffffffff8082111561120a57600080fd5b600080600080608085870312156112a057600080fd5b84359350602085013567ffffffffffffffff808211156112bf57600080fd5b6112cb888389016111a1565b945060408701359150808211156112e157600080fd5b508501606081880312156112f457600080fd5b9150606085013561124a81611179565b60006020828403121561131657600080fd5b815161132181611179565b9392505050565b60006020828403121561133a57600080fd5b5051919050565b8082018082111561136257634e487b7160e01b600052601160045260246000fd5b92915050565b6000808335601e1984360301811261137f57600080fd5b830160208101925035905067ffffffffffffffff81111561139f57600080fd5b8036038213156113ae57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008235607e198336030181126113f457600080fd5b90910192915050565b80356cffffffffffffffffffffffffff8116811461119c57600080fd5b803563ffffffff8116811461119c57600080fd5b803561ffff8116811461119c57600080fd5b803562ffffff8116811461119c57600080fd5b803560ff8116811461119c57600080fd5b801515811461118e57600080fd5b803561119c81611464565b600060808084018335601e1985360301811261149857600080fd5b8401602081810191359067ffffffffffffffff8211156114b757600080fd5b6101c080830236038413156114cb57600080fd5b608089529382905260a09384890160005b8481101561161757611504826114f1886113fd565b6cffffffffffffffffffffffffff169052565b61150f84870161141a565b63ffffffff1684830152604061152687820161141a565b63ffffffff1690830152606061153d87820161142e565b61ffff1690830152611550868901611191565b6001600160a01b031688830152858701358783015260c0611572818801611440565b62ffffff169083015260e0611588878201611453565b60ff169083015261010061159d878201611472565b1515908301526101206115b1878201611472565b1515908301526101406115c5878201611472565b1515908301526101606115d9878201611472565b1515908301526101806115ed878201611472565b1515908301526101a0611601878201611472565b15159083015294820194908201906001016114dc565b5061162460208a0161141a565b63ffffffff811660208c0152965061163e60408a01611453565b60ff811660408c0152965061165560608a01611191565b6001600160a01b03811660608c015296509998505050505050505050565b803561167e81611464565b15158252602081013561169081611464565b1515602083015260408101356116a581611464565b1515604083015260608101356116ba81611464565b8015156060840152505050565b8281526040602082015260006116dd8384611368565b61016060408501526116f46101a0850182846113b5565b9150506117046020850185611368565b603f198086850301606087015261171c8483856113b5565b935061172b6040880188611368565b93509150808685030160808701526117448484846113b5565b935061175260608801611191565b6001600160a01b03811660a088015292506117706080880188611368565b93509150808685030160c08701526117898484846113b5565b935061179860a08801886113de565b9250808685030160e087015250506117b0828261147d565b9150506117bf60c08501611191565b6001600160a01b03166101008401526117df610120840160e08601611673565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff81118282101715611821576118216117e7565b60405290565b6040805190810167ffffffffffffffff81118282101715611821576118216117e7565b60405160c0810167ffffffffffffffff81118282101715611821576118216117e7565b6040516080810167ffffffffffffffff81118282101715611821576118216117e7565b604051610100810167ffffffffffffffff81118282101715611821576118216117e7565b6040516060810167ffffffffffffffff81118282101715611821576118216117e7565b604051601f8201601f1916810167ffffffffffffffff81118282101715611900576119006117e7565b604052919050565b600082601f83011261191957600080fd5b813567ffffffffffffffff811115611933576119336117e7565b611946601f8201601f19166020016118d7565b81815284602083860101111561195b57600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff821115611992576119926117e7565b5060051b60200190565b803565ffffffffffff8116811461119c57600080fd5b80356dffffffffffffffffffffffffffff8116811461119c57600080fd5b600061022082840312156119e357600080fd5b6119eb6117fd565b90506119f68261142e565b8152611a046020830161142e565b6020820152611a156040830161141a565b6040820152611a2660608301611472565b6060820152611a3760808301611472565b6080820152611a4860a08301611472565b60a0820152611a5960c08301611472565b60c0820152611a6a60e08301611472565b60e0820152610100611a7d818401611472565b90820152610120611a8f838201611472565b90820152610140611aa1838201611472565b90820152610160611ab3838201611472565b90820152610180611ac5838201611472565b908201526101a0611ad7838201611472565b908201526101c0611ae9838201611472565b908201526101e0611afb838201611472565b90820152610200611b0d83820161142e565b9082015292915050565b803566ffffffffffffff8116811461119c57600080fd5b600082601f830112611b3f57600080fd5b81356020611b54611b4f83611978565b6118d7565b82815260059290921b84018101918181019086841115611b7357600080fd5b8286015b84811015611cc257803567ffffffffffffffff80821115611b9757600080fd5b908801906040828b03601f1901811315611bb057600080fd5b611bb8611827565b8784013581528184013583811115611bcf57600080fd5b8085019450508b603f850112611be457600080fd5b878401359250611bf6611b4f84611978565b83815260c09093028401820192888101908d851115611c1457600080fd5b948301945b84861015611cad5760c0868f031215611c3157600080fd5b611c3961184a565b8635611c4481611464565b8152611c51878c0161141a565b8b820152611c60858801611b17565b858201526060870135611c7281611179565b6060820152611c836080880161199c565b608082015260a0870135611c9681611179565b60a0820152825260c0959095019490890190611c19565b828a0152508652505050918301918301611b77565b509695505050505050565b600082601f830112611cde57600080fd5b81356020611cee611b4f83611978565b82815260069290921b84018101918181019086841115611d0d57600080fd5b8286015b84811015611cc25760408189031215611d2a5760008081fd5b611d32611827565b81357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81168114611d5f5760008081fd5b8152611d6c82860161141a565b81860152835291830191604001611d11565b600082601f830112611d8f57600080fd5b81356020611d9f611b4f83611978565b82815260059290921b84018101918181019086841115611dbe57600080fd5b8286015b84811015611cc257803567ffffffffffffffff80821115611de35760008081fd5b908801906080828b03601f1901811315611dfd5760008081fd5b611e0561186d565b87840135611e1281611179565b8152604084810135611e2381611179565b828a015260608581013585811115611e3b5760008081fd5b611e498f8c838a0101611ccd565b8484015250928501359284841115611e6357600091508182fd5b611e718e8b86890101611ccd565b90830152508652505050918301918301611dc2565b600082601f830112611e9757600080fd5b81356020611ea7611b4f83611978565b82815260059290921b84018101918181019086841115611ec657600080fd5b8286015b84811015611cc257803567ffffffffffffffff80821115611eeb5760008081fd5b90880190610300828b03601f1901811315611f065760008081fd5b611f0e611890565b611f1988850161199c565b81526040611f2881860161141a565b898301526060611f398187016119b2565b8284015260809150611f4c82870161141a565b9083015260a0611f5d868201611191565b8284015260c09150611f718e8388016119d0565b908301526102e085013584811115611f895760008081fd5b611f978e8b83890101611b2e565b82840152505081840135915082821115611fb15760008081fd5b611fbf8c8984870101611d7e565b60e08201528652505050918301918301611eca565b600082601f830112611fe557600080fd5b81356020611ff5611b4f83611978565b82815260059290921b8401810191818101908684111561201457600080fd5b8286015b84811015611cc257803567ffffffffffffffff8082111561203857600080fd5b908801906040828b03601f190181131561205157600080fd5b612059611827565b8784013561206681611179565b8152838201358381111561207957600080fd5b8085019450508b603f85011261208e57600080fd5b8784013592506120a0611b4f84611978565b83815260609093028401820192888101908d8511156120be57600080fd5b948301945b84861015612120576060868f0312156120db57600080fd5b6120e36118b4565b86356120ee81611179565b81526120fb878c01611453565b8b82015261210a85880161141a565b81860152825260609590950194908901906120c3565b828a0152508652505050918301918301612018565b60006080823603121561214757600080fd5b61214f61186d565b823567ffffffffffffffff8082111561216757600080fd5b61217336838701611908565b8352602085013591508082111561218957600080fd5b61219536838701611e86565b602084015260408501359150808211156121ae57600080fd5b6121ba36838701611fd4565b604084015260608501359150808211156121d357600080fd5b506121e036828601611908565b60608301525092915050565b6000608082360312156121fe57600080fd5b61220661186d565b61220f83611b17565b8152602083013567ffffffffffffffff8082111561218957600080fd5b60006060823603121561223e57600080fd5b6122466118b4565b61224f83611b17565b8152602083013567ffffffffffffffff8082111561226c57600080fd5b61227836838701611e86565b6020840152604085013591508082111561229157600080fd5b5061229e36828601611908565b60408301525092915050565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156122e6576020818501810151868301820152016122ca565b506000602082860101526020601f19601f83011685010191505092915050565b805161ffff1682526020810151612323602084018261ffff169052565b50604081015161233b604084018263ffffffff169052565b50606081015161234f606084018215159052565b506080810151612363608084018215159052565b5060a081015161237760a084018215159052565b5060c081015161238b60c084018215159052565b5060e081015161239f60e084018215159052565b5061010081810151151590830152610120808201511515908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c0808201511515908301526101e0808201511515908301526102008082015115159083015261022080820151151590830152610240808201516001600160a01b0316908301526102608082015161ffff811682850152610ad4565b600082825180855260208086019550808260051b8401018186016000805b8581101561252857868403601f19018a52825180518552850151604086860181905281518187018190529187019160609081880190865b818110156125115785518051151584528b81015163ffffffff168c8501528581015166ffffffffffffff1686850152848101516001600160a01b039081168686015260808083015165ffffffffffff169086015260a0918201511690840152948a019460c0909201916001016124a0565b50509c88019c965050509285019250600101612469565b509198975050505050505050565b60008151808452602080850194506020840160005b8381101561259657815180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16885283015163ffffffff16838801526040909601959082019060010161254b565b509495945050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561263557601f19868403018952815160806001600160a01b038083511686528087840151168787015250604080830151828288015261260383880182612536565b92505050606080830151925085820381870152506126218183612536565b9a86019a94505050908301906001016125be565b5090979650505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561263557601f198684030189528151805165ffffffffffff1684528481015163ffffffff908116868601526040808301516dffffffffffffffffffffffffffff1690860152606080830151909116908501526080808201516001600160a01b03169085015260a08082015161036091906126df82880182612306565b505060c0820151816103208701526126f98287018261244b565b91505060e0820151915084810361034086015261271681836125a1565b9a86019a945050509083019060010161265f565b600082825180855260208086019550808260051b8401018186016000805b8581101561252857868403601f19018a52825180516001600160a01b03908116865290860151604087870181905281518188018190529188019290916060919082890190875b818110156127c65786518051851684528c81015160ff168d85015286015163ffffffff1686840152958b01959184019160010161278e565b50509d89019d97505050938601935050600101612748565b6001600160a01b038616815260a06020820152600061280060a08301876122c0565b82810360408401526128128187612642565b90508281036060840152612826818661272a565b9050828103608084015261283a81856122c0565b98975050505050505050565b60006020828403121561285857600080fd5b815161132181611464565b84815260806020820152600061287c6080830186612642565b828103604084015261288e818661272a565b90508281036060840152610dd981856122c0565b8381526060602082015260006128bb6060830185612642565b828103604084015261055181856122c056fea264697066735822122065bea5c5b12a0b599df982d500bc196b031d7371de559ac209ff46d6b263a22064736f6c63430008170033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100725760003560e01c8063abf8c5c811610050578063abf8c5c8146100ef578063ac6a26f814610116578063f434c9141461012957600080fd5b80633c3a22bb1461007757806388bc2ef31461009d5780638b716777146100dc575b600080fd5b61008a6100853660046111cc565b610150565b6040519081526020015b60405180910390f35b6100c47f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad2281565b6040516001600160a01b039091168152602001610094565b61008a6100ea366004611255565b61034e565b6100c47f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be81565b61008a61012436600461128a565b61055b565b6100c47f0000000000000000000000004cdb4200e4e65a277676cd5e8d3c7c7c4da7fbe581565b60007f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad226001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d49190611304565b6001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610211573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102359190611328565b610240906001611341565b905060007f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be6001600160a01b031663cc7bb31f83876040518363ffffffff1660e01b81526004016102929291906116c7565b6020604051808303816000875af11580156102b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d59190611304565b90506102eb866102e486612135565b83866106c4565b6040516351106b4b60e11b8152600481018390526001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561032d57600080fd5b505af1158015610341573d6000803e3d6000fd5b5050505050949350505050565b600061044b7f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad226001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d59190611304565b6001600160a01b0316636352211e876040518263ffffffff1660e01b815260040161040291815260200190565b602060405180830381865afa15801561041f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104439190611304565b8660026109cc565b60405163cc7bb31f60e01b81526000906001600160a01b037f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be169063cc7bb31f9061049c90899089906004016116c7565b6020604051808303816000875af11580156104bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104df9190611304565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561052457600080fd5b505af1158015610538573d6000803e3d6000fd5b50505050610551868561054a906121ec565b8386610ada565b9695505050505050565b60006105be7f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad226001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b1573d6000803e3d6000fd5b60405163cc7bb31f60e01b81526000906001600160a01b037f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be169063cc7bb31f9061060f90899089906004016116c7565b6020604051808303816000875af115801561062e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106529190611304565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561069757600080fd5b505af11580156106ab573d6000803e3d6000fd5b5050505061055186856106bd9061222c565b8386610de4565b60208301515160008167ffffffffffffffff8111156106e5576106e56117e7565b60405190808252806020026020018201604052801561071e57816020015b61070b61109b565b8152602001906001900390816107035790505b50905060005b8281101561094457600086602001518281518110610744576107446122aa565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e0015115158152602001896001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610930576109306122aa565b602090810291909101015250600101610724565b50845160408087015160608801519151634e530d8960e11b81526001600160a01b03871693639ca61b1293610980938c938892906004016127de565b6020604051808303816000875af115801561099f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c39190611328565b50505050505050565b336001600160a01b0384168114801590610a915750604051631a45b42760e11b81526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000004cdb4200e4e65a277676cd5e8d3c7c7c4da7fbe5169063348b684e9060c401602060405180830381865afa158015610a6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8f9190612846565b155b15610ad457604051631326f75560e11b81526001600160a01b03808616600483015282166024820152604481018490526064810183905260840160405180910390fd5b50505050565b602083015151600090818167ffffffffffffffff811115610afd57610afd6117e7565b604051908082528060200260200182016040528015610b3657816020015b610b2361109b565b815260200190600190039081610b1b5790505b50905060005b82811015610d5c57600087602001518281518110610b5c57610b5c6122aa565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610d4857610d486122aa565b602090810291909101015250600101610b3c565b5060408087015160608801519151632a550fab60e11b81526001600160a01b038716926354aa1f5692610d96928c92879291600401612863565b6020604051808303816000875af1158015610db5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd99190611328565b979650505050505050565b602083015151600090818167ffffffffffffffff811115610e0757610e076117e7565b604051908082528060200260200182016040528015610e4057816020015b610e2d61109b565b815260200190600190039081610e255790505b50905060005b8281101561106657600087602001518281518110610e6657610e666122aa565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110611052576110526122aa565b602090810291909101015250600101610e46565b506040808701519051630e18de6b60e41b81526001600160a01b0386169163e18de6b091610d96918b918691906004016128a2565b6040805161010080820183526000808352602080840182905283850182905260608085018390526080808601849052865161028081018852848152928301849052958201839052810182905293840181905260a084810182905260c0850182905260e0850182905291840181905261012084018190526101408401819052610160840181905261018084018190526101a084018190526101c084018190526101e08401819052610200840181905261022084018190526102408401819052610260840152909190820190815260200160608152602001606081525090565b6001600160a01b038116811461118e57600080fd5b50565b803561119c81611179565b919050565b600061016082840312156111b457600080fd5b50919050565b6000608082840312156111b457600080fd5b600080600080608085870312156111e257600080fd5b84356111ed81611179565b9350602085013567ffffffffffffffff8082111561120a57600080fd5b611216888389016111a1565b9450604087013591508082111561122c57600080fd5b50611239878288016111ba565b925050606085013561124a81611179565b939692955090935050565b6000806000806080858703121561126b57600080fd5b84359350602085013567ffffffffffffffff8082111561120a57600080fd5b600080600080608085870312156112a057600080fd5b84359350602085013567ffffffffffffffff808211156112bf57600080fd5b6112cb888389016111a1565b945060408701359150808211156112e157600080fd5b508501606081880312156112f457600080fd5b9150606085013561124a81611179565b60006020828403121561131657600080fd5b815161132181611179565b9392505050565b60006020828403121561133a57600080fd5b5051919050565b8082018082111561136257634e487b7160e01b600052601160045260246000fd5b92915050565b6000808335601e1984360301811261137f57600080fd5b830160208101925035905067ffffffffffffffff81111561139f57600080fd5b8036038213156113ae57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008235607e198336030181126113f457600080fd5b90910192915050565b80356cffffffffffffffffffffffffff8116811461119c57600080fd5b803563ffffffff8116811461119c57600080fd5b803561ffff8116811461119c57600080fd5b803562ffffff8116811461119c57600080fd5b803560ff8116811461119c57600080fd5b801515811461118e57600080fd5b803561119c81611464565b600060808084018335601e1985360301811261149857600080fd5b8401602081810191359067ffffffffffffffff8211156114b757600080fd5b6101c080830236038413156114cb57600080fd5b608089529382905260a09384890160005b8481101561161757611504826114f1886113fd565b6cffffffffffffffffffffffffff169052565b61150f84870161141a565b63ffffffff1684830152604061152687820161141a565b63ffffffff1690830152606061153d87820161142e565b61ffff1690830152611550868901611191565b6001600160a01b031688830152858701358783015260c0611572818801611440565b62ffffff169083015260e0611588878201611453565b60ff169083015261010061159d878201611472565b1515908301526101206115b1878201611472565b1515908301526101406115c5878201611472565b1515908301526101606115d9878201611472565b1515908301526101806115ed878201611472565b1515908301526101a0611601878201611472565b15159083015294820194908201906001016114dc565b5061162460208a0161141a565b63ffffffff811660208c0152965061163e60408a01611453565b60ff811660408c0152965061165560608a01611191565b6001600160a01b03811660608c015296509998505050505050505050565b803561167e81611464565b15158252602081013561169081611464565b1515602083015260408101356116a581611464565b1515604083015260608101356116ba81611464565b8015156060840152505050565b8281526040602082015260006116dd8384611368565b61016060408501526116f46101a0850182846113b5565b9150506117046020850185611368565b603f198086850301606087015261171c8483856113b5565b935061172b6040880188611368565b93509150808685030160808701526117448484846113b5565b935061175260608801611191565b6001600160a01b03811660a088015292506117706080880188611368565b93509150808685030160c08701526117898484846113b5565b935061179860a08801886113de565b9250808685030160e087015250506117b0828261147d565b9150506117bf60c08501611191565b6001600160a01b03166101008401526117df610120840160e08601611673565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff81118282101715611821576118216117e7565b60405290565b6040805190810167ffffffffffffffff81118282101715611821576118216117e7565b60405160c0810167ffffffffffffffff81118282101715611821576118216117e7565b6040516080810167ffffffffffffffff81118282101715611821576118216117e7565b604051610100810167ffffffffffffffff81118282101715611821576118216117e7565b6040516060810167ffffffffffffffff81118282101715611821576118216117e7565b604051601f8201601f1916810167ffffffffffffffff81118282101715611900576119006117e7565b604052919050565b600082601f83011261191957600080fd5b813567ffffffffffffffff811115611933576119336117e7565b611946601f8201601f19166020016118d7565b81815284602083860101111561195b57600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff821115611992576119926117e7565b5060051b60200190565b803565ffffffffffff8116811461119c57600080fd5b80356dffffffffffffffffffffffffffff8116811461119c57600080fd5b600061022082840312156119e357600080fd5b6119eb6117fd565b90506119f68261142e565b8152611a046020830161142e565b6020820152611a156040830161141a565b6040820152611a2660608301611472565b6060820152611a3760808301611472565b6080820152611a4860a08301611472565b60a0820152611a5960c08301611472565b60c0820152611a6a60e08301611472565b60e0820152610100611a7d818401611472565b90820152610120611a8f838201611472565b90820152610140611aa1838201611472565b90820152610160611ab3838201611472565b90820152610180611ac5838201611472565b908201526101a0611ad7838201611472565b908201526101c0611ae9838201611472565b908201526101e0611afb838201611472565b90820152610200611b0d83820161142e565b9082015292915050565b803566ffffffffffffff8116811461119c57600080fd5b600082601f830112611b3f57600080fd5b81356020611b54611b4f83611978565b6118d7565b82815260059290921b84018101918181019086841115611b7357600080fd5b8286015b84811015611cc257803567ffffffffffffffff80821115611b9757600080fd5b908801906040828b03601f1901811315611bb057600080fd5b611bb8611827565b8784013581528184013583811115611bcf57600080fd5b8085019450508b603f850112611be457600080fd5b878401359250611bf6611b4f84611978565b83815260c09093028401820192888101908d851115611c1457600080fd5b948301945b84861015611cad5760c0868f031215611c3157600080fd5b611c3961184a565b8635611c4481611464565b8152611c51878c0161141a565b8b820152611c60858801611b17565b858201526060870135611c7281611179565b6060820152611c836080880161199c565b608082015260a0870135611c9681611179565b60a0820152825260c0959095019490890190611c19565b828a0152508652505050918301918301611b77565b509695505050505050565b600082601f830112611cde57600080fd5b81356020611cee611b4f83611978565b82815260069290921b84018101918181019086841115611d0d57600080fd5b8286015b84811015611cc25760408189031215611d2a5760008081fd5b611d32611827565b81357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81168114611d5f5760008081fd5b8152611d6c82860161141a565b81860152835291830191604001611d11565b600082601f830112611d8f57600080fd5b81356020611d9f611b4f83611978565b82815260059290921b84018101918181019086841115611dbe57600080fd5b8286015b84811015611cc257803567ffffffffffffffff80821115611de35760008081fd5b908801906080828b03601f1901811315611dfd5760008081fd5b611e0561186d565b87840135611e1281611179565b8152604084810135611e2381611179565b828a015260608581013585811115611e3b5760008081fd5b611e498f8c838a0101611ccd565b8484015250928501359284841115611e6357600091508182fd5b611e718e8b86890101611ccd565b90830152508652505050918301918301611dc2565b600082601f830112611e9757600080fd5b81356020611ea7611b4f83611978565b82815260059290921b84018101918181019086841115611ec657600080fd5b8286015b84811015611cc257803567ffffffffffffffff80821115611eeb5760008081fd5b90880190610300828b03601f1901811315611f065760008081fd5b611f0e611890565b611f1988850161199c565b81526040611f2881860161141a565b898301526060611f398187016119b2565b8284015260809150611f4c82870161141a565b9083015260a0611f5d868201611191565b8284015260c09150611f718e8388016119d0565b908301526102e085013584811115611f895760008081fd5b611f978e8b83890101611b2e565b82840152505081840135915082821115611fb15760008081fd5b611fbf8c8984870101611d7e565b60e08201528652505050918301918301611eca565b600082601f830112611fe557600080fd5b81356020611ff5611b4f83611978565b82815260059290921b8401810191818101908684111561201457600080fd5b8286015b84811015611cc257803567ffffffffffffffff8082111561203857600080fd5b908801906040828b03601f190181131561205157600080fd5b612059611827565b8784013561206681611179565b8152838201358381111561207957600080fd5b8085019450508b603f85011261208e57600080fd5b8784013592506120a0611b4f84611978565b83815260609093028401820192888101908d8511156120be57600080fd5b948301945b84861015612120576060868f0312156120db57600080fd5b6120e36118b4565b86356120ee81611179565b81526120fb878c01611453565b8b82015261210a85880161141a565b81860152825260609590950194908901906120c3565b828a0152508652505050918301918301612018565b60006080823603121561214757600080fd5b61214f61186d565b823567ffffffffffffffff8082111561216757600080fd5b61217336838701611908565b8352602085013591508082111561218957600080fd5b61219536838701611e86565b602084015260408501359150808211156121ae57600080fd5b6121ba36838701611fd4565b604084015260608501359150808211156121d357600080fd5b506121e036828601611908565b60608301525092915050565b6000608082360312156121fe57600080fd5b61220661186d565b61220f83611b17565b8152602083013567ffffffffffffffff8082111561218957600080fd5b60006060823603121561223e57600080fd5b6122466118b4565b61224f83611b17565b8152602083013567ffffffffffffffff8082111561226c57600080fd5b61227836838701611e86565b6020840152604085013591508082111561229157600080fd5b5061229e36828601611908565b60408301525092915050565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156122e6576020818501810151868301820152016122ca565b506000602082860101526020601f19601f83011685010191505092915050565b805161ffff1682526020810151612323602084018261ffff169052565b50604081015161233b604084018263ffffffff169052565b50606081015161234f606084018215159052565b506080810151612363608084018215159052565b5060a081015161237760a084018215159052565b5060c081015161238b60c084018215159052565b5060e081015161239f60e084018215159052565b5061010081810151151590830152610120808201511515908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c0808201511515908301526101e0808201511515908301526102008082015115159083015261022080820151151590830152610240808201516001600160a01b0316908301526102608082015161ffff811682850152610ad4565b600082825180855260208086019550808260051b8401018186016000805b8581101561252857868403601f19018a52825180518552850151604086860181905281518187018190529187019160609081880190865b818110156125115785518051151584528b81015163ffffffff168c8501528581015166ffffffffffffff1686850152848101516001600160a01b039081168686015260808083015165ffffffffffff169086015260a0918201511690840152948a019460c0909201916001016124a0565b50509c88019c965050509285019250600101612469565b509198975050505050505050565b60008151808452602080850194506020840160005b8381101561259657815180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16885283015163ffffffff16838801526040909601959082019060010161254b565b509495945050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561263557601f19868403018952815160806001600160a01b038083511686528087840151168787015250604080830151828288015261260383880182612536565b92505050606080830151925085820381870152506126218183612536565b9a86019a94505050908301906001016125be565b5090979650505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561263557601f198684030189528151805165ffffffffffff1684528481015163ffffffff908116868601526040808301516dffffffffffffffffffffffffffff1690860152606080830151909116908501526080808201516001600160a01b03169085015260a08082015161036091906126df82880182612306565b505060c0820151816103208701526126f98287018261244b565b91505060e0820151915084810361034086015261271681836125a1565b9a86019a945050509083019060010161265f565b600082825180855260208086019550808260051b8401018186016000805b8581101561252857868403601f19018a52825180516001600160a01b03908116865290860151604087870181905281518188018190529188019290916060919082890190875b818110156127c65786518051851684528c81015160ff168d85015286015163ffffffff1686840152958b01959184019160010161278e565b50509d89019d97505050938601935050600101612748565b6001600160a01b038616815260a06020820152600061280060a08301876122c0565b82810360408401526128128187612642565b90508281036060840152612826818661272a565b9050828103608084015261283a81856122c0565b98975050505050505050565b60006020828403121561285857600080fd5b815161132181611464565b84815260806020820152600061287c6080830186612642565b828103604084015261288e818661272a565b90508281036060840152610dd981856122c0565b8381526060602082015260006128bb6060830185612642565b828103604084015261055181856122c056fea264697066735822122065bea5c5b12a0b599df982d500bc196b031d7371de559ac209ff46d6b263a22064736f6c63430008170033", + "bytecode": "0x60e06040523480156200001157600080fd5b5060405162002a3838038062002a3883398101604081905262000034916200006b565b6001600160a01b0391821660805291811660a0521660c052620000bf565b6001600160a01b03811681146200006857600080fd5b50565b6000806000606084860312156200008157600080fd5b83516200008e8162000052565b6020850151909350620000a18162000052565b6040850151909250620000b48162000052565b809150509250925092565b60805160a05160c0516129196200011f600039600081816101030152818161026a0152818161047201526105e401526000818160b10152818161016401528181610365015261057101526000818161013d0152610a3001526129196000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063abf8c5c811610050578063abf8c5c8146100fe578063ac6a26f814610125578063f434c9141461013857600080fd5b80633c3a22bb1461007757806388bc2ef3146100ac5780638b716777146100eb575b600080fd5b61008a6100853660046111d8565b61015f565b604080519283526001600160a01b039091166020830152015b60405180910390f35b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100a3565b61008a6100f9366004611261565b61035d565b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b61008a610133366004611296565b610569565b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e49190611310565b6001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102459190611334565b61025090600161134d565b60405163cc7bb31f60e01b81529092506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f906102a190859089906004016116d3565b6020604051808303816000875af11580156102c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e49190611310565b90506102fa866102f386612141565b83866106d0565b6040516351106b4b60e11b8152600481018390526001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561033c57600080fd5b505af1158015610350573d6000803e3d6000fd5b5050505094509492505050565b60008061045b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e59190611310565b6001600160a01b0316636352211e886040518263ffffffff1660e01b815260040161041291815260200190565b602060405180830381865afa15801561042f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104539190611310565b8760026109d8565b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f906104a990899089906004016116d3565b6020604051808303816000875af11580156104c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ec9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b5050505061055e8685610557906121f8565b8386610ae6565b915094509492505050565b6000806105cd7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f9061061b90899089906004016116d3565b6020604051808303816000875af115801561063a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065e9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b1580156106a357600080fd5b505af11580156106b7573d6000803e3d6000fd5b5050505061055e86856106c990612238565b8386610df0565b60208301515160008167ffffffffffffffff8111156106f1576106f16117f3565b60405190808252806020026020018201604052801561072a57816020015b6107176110a7565b81526020019060019003908161070f5790505b50905060005b8281101561095057600086602001518281518110610750576107506122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e0015115158152602001896001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061093c5761093c6122b6565b602090810291909101015250600101610730565b50845160408087015160608801519151634e530d8960e11b81526001600160a01b03871693639ca61b129361098c938c938892906004016127ea565b6020604051808303816000875af11580156109ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cf9190611334565b50505050505050565b336001600160a01b0384168114801590610a9d5750604051631a45b42760e11b81526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000000000000000000000000000000000000000000000169063348b684e9060c401602060405180830381865afa158015610a77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9b9190612852565b155b15610ae057604051631326f75560e11b81526001600160a01b03808616600483015282166024820152604481018490526064810183905260840160405180910390fd5b50505050565b602083015151600090818167ffffffffffffffff811115610b0957610b096117f3565b604051908082528060200260200182016040528015610b4257816020015b610b2f6110a7565b815260200190600190039081610b275790505b50905060005b82811015610d6857600087602001518281518110610b6857610b686122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610d5457610d546122b6565b602090810291909101015250600101610b48565b5060408087015160608801519151632a550fab60e11b81526001600160a01b038716926354aa1f5692610da2928c9287929160040161286f565b6020604051808303816000875af1158015610dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de59190611334565b979650505050505050565b602083015151600090818167ffffffffffffffff811115610e1357610e136117f3565b604051908082528060200260200182016040528015610e4c57816020015b610e396110a7565b815260200190600190039081610e315790505b50905060005b8281101561107257600087602001518281518110610e7257610e726122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061105e5761105e6122b6565b602090810291909101015250600101610e52565b506040808701519051630e18de6b60e41b81526001600160a01b0386169163e18de6b091610da2918b918691906004016128ae565b6040805161010080820183526000808352602080840182905283850182905260608085018390526080808601849052865161028081018852848152928301849052958201839052810182905293840181905260a084810182905260c0850182905260e0850182905291840181905261012084018190526101408401819052610160840181905261018084018190526101a084018190526101c084018190526101e08401819052610200840181905261022084018190526102408401819052610260840152909190820190815260200160608152602001606081525090565b6001600160a01b038116811461119a57600080fd5b50565b80356111a881611185565b919050565b600061016082840312156111c057600080fd5b50919050565b6000608082840312156111c057600080fd5b600080600080608085870312156111ee57600080fd5b84356111f981611185565b9350602085013567ffffffffffffffff8082111561121657600080fd5b611222888389016111ad565b9450604087013591508082111561123857600080fd5b50611245878288016111c6565b925050606085013561125681611185565b939692955090935050565b6000806000806080858703121561127757600080fd5b84359350602085013567ffffffffffffffff8082111561121657600080fd5b600080600080608085870312156112ac57600080fd5b84359350602085013567ffffffffffffffff808211156112cb57600080fd5b6112d7888389016111ad565b945060408701359150808211156112ed57600080fd5b5085016060818803121561130057600080fd5b9150606085013561125681611185565b60006020828403121561132257600080fd5b815161132d81611185565b9392505050565b60006020828403121561134657600080fd5b5051919050565b8082018082111561136e57634e487b7160e01b600052601160045260246000fd5b92915050565b6000808335601e1984360301811261138b57600080fd5b830160208101925035905067ffffffffffffffff8111156113ab57600080fd5b8036038213156113ba57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008235607e1983360301811261140057600080fd5b90910192915050565b80356cffffffffffffffffffffffffff811681146111a857600080fd5b803563ffffffff811681146111a857600080fd5b803561ffff811681146111a857600080fd5b803562ffffff811681146111a857600080fd5b803560ff811681146111a857600080fd5b801515811461119a57600080fd5b80356111a881611470565b600060808084018335601e198536030181126114a457600080fd5b8401602081810191359067ffffffffffffffff8211156114c357600080fd5b6101c080830236038413156114d757600080fd5b608089529382905260a09384890160005b8481101561162357611510826114fd88611409565b6cffffffffffffffffffffffffff169052565b61151b848701611426565b63ffffffff16848301526040611532878201611426565b63ffffffff1690830152606061154987820161143a565b61ffff169083015261155c86890161119d565b6001600160a01b031688830152858701358783015260c061157e81880161144c565b62ffffff169083015260e061159487820161145f565b60ff16908301526101006115a987820161147e565b1515908301526101206115bd87820161147e565b1515908301526101406115d187820161147e565b1515908301526101606115e587820161147e565b1515908301526101806115f987820161147e565b1515908301526101a061160d87820161147e565b15159083015294820194908201906001016114e8565b5061163060208a01611426565b63ffffffff811660208c0152965061164a60408a0161145f565b60ff811660408c0152965061166160608a0161119d565b6001600160a01b03811660608c015296509998505050505050505050565b803561168a81611470565b15158252602081013561169c81611470565b1515602083015260408101356116b181611470565b1515604083015260608101356116c681611470565b8015156060840152505050565b8281526040602082015260006116e98384611374565b61016060408501526117006101a0850182846113c1565b9150506117106020850185611374565b603f19808685030160608701526117288483856113c1565b93506117376040880188611374565b93509150808685030160808701526117508484846113c1565b935061175e6060880161119d565b6001600160a01b03811660a0880152925061177c6080880188611374565b93509150808685030160c08701526117958484846113c1565b93506117a460a08801886113ea565b9250808685030160e087015250506117bc8282611489565b9150506117cb60c0850161119d565b6001600160a01b03166101008401526117eb610120840160e0860161167f565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405290565b6040805190810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405160c0810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516080810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051610100810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516060810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051601f8201601f1916810167ffffffffffffffff8111828210171561190c5761190c6117f3565b604052919050565b600082601f83011261192557600080fd5b813567ffffffffffffffff81111561193f5761193f6117f3565b611952601f8201601f19166020016118e3565b81815284602083860101111561196757600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff82111561199e5761199e6117f3565b5060051b60200190565b803565ffffffffffff811681146111a857600080fd5b80356dffffffffffffffffffffffffffff811681146111a857600080fd5b600061022082840312156119ef57600080fd5b6119f7611809565b9050611a028261143a565b8152611a106020830161143a565b6020820152611a2160408301611426565b6040820152611a326060830161147e565b6060820152611a436080830161147e565b6080820152611a5460a0830161147e565b60a0820152611a6560c0830161147e565b60c0820152611a7660e0830161147e565b60e0820152610100611a8981840161147e565b90820152610120611a9b83820161147e565b90820152610140611aad83820161147e565b90820152610160611abf83820161147e565b90820152610180611ad183820161147e565b908201526101a0611ae383820161147e565b908201526101c0611af583820161147e565b908201526101e0611b0783820161147e565b90820152610200611b1983820161143a565b9082015292915050565b803566ffffffffffffff811681146111a857600080fd5b600082601f830112611b4b57600080fd5b81356020611b60611b5b83611984565b6118e3565b82815260059290921b84018101918181019086841115611b7f57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ba357600080fd5b908801906040828b03601f1901811315611bbc57600080fd5b611bc4611833565b8784013581528184013583811115611bdb57600080fd5b8085019450508b603f850112611bf057600080fd5b878401359250611c02611b5b84611984565b83815260c09093028401820192888101908d851115611c2057600080fd5b948301945b84861015611cb95760c0868f031215611c3d57600080fd5b611c45611856565b8635611c5081611470565b8152611c5d878c01611426565b8b820152611c6c858801611b23565b858201526060870135611c7e81611185565b6060820152611c8f608088016119a8565b608082015260a0870135611ca281611185565b60a0820152825260c0959095019490890190611c25565b828a0152508652505050918301918301611b83565b509695505050505050565b600082601f830112611cea57600080fd5b81356020611cfa611b5b83611984565b82815260069290921b84018101918181019086841115611d1957600080fd5b8286015b84811015611cce5760408189031215611d365760008081fd5b611d3e611833565b81357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81168114611d6b5760008081fd5b8152611d78828601611426565b81860152835291830191604001611d1d565b600082601f830112611d9b57600080fd5b81356020611dab611b5b83611984565b82815260059290921b84018101918181019086841115611dca57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611def5760008081fd5b908801906080828b03601f1901811315611e095760008081fd5b611e11611879565b87840135611e1e81611185565b8152604084810135611e2f81611185565b828a015260608581013585811115611e475760008081fd5b611e558f8c838a0101611cd9565b8484015250928501359284841115611e6f57600091508182fd5b611e7d8e8b86890101611cd9565b90830152508652505050918301918301611dce565b600082601f830112611ea357600080fd5b81356020611eb3611b5b83611984565b82815260059290921b84018101918181019086841115611ed257600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ef75760008081fd5b90880190610300828b03601f1901811315611f125760008081fd5b611f1a61189c565b611f258885016119a8565b81526040611f34818601611426565b898301526060611f458187016119be565b8284015260809150611f58828701611426565b9083015260a0611f6986820161119d565b8284015260c09150611f7d8e8388016119dc565b908301526102e085013584811115611f955760008081fd5b611fa38e8b83890101611b3a565b82840152505081840135915082821115611fbd5760008081fd5b611fcb8c8984870101611d8a565b60e08201528652505050918301918301611ed6565b600082601f830112611ff157600080fd5b81356020612001611b5b83611984565b82815260059290921b8401810191818101908684111561202057600080fd5b8286015b84811015611cce57803567ffffffffffffffff8082111561204457600080fd5b908801906040828b03601f190181131561205d57600080fd5b612065611833565b8784013561207281611185565b8152838201358381111561208557600080fd5b8085019450508b603f85011261209a57600080fd5b8784013592506120ac611b5b84611984565b83815260609093028401820192888101908d8511156120ca57600080fd5b948301945b8486101561212c576060868f0312156120e757600080fd5b6120ef6118c0565b86356120fa81611185565b8152612107878c0161145f565b8b820152612116858801611426565b81860152825260609590950194908901906120cf565b828a0152508652505050918301918301612024565b60006080823603121561215357600080fd5b61215b611879565b823567ffffffffffffffff8082111561217357600080fd5b61217f36838701611914565b8352602085013591508082111561219557600080fd5b6121a136838701611e92565b602084015260408501359150808211156121ba57600080fd5b6121c636838701611fe0565b604084015260608501359150808211156121df57600080fd5b506121ec36828601611914565b60608301525092915050565b60006080823603121561220a57600080fd5b612212611879565b61221b83611b23565b8152602083013567ffffffffffffffff8082111561219557600080fd5b60006060823603121561224a57600080fd5b6122526118c0565b61225b83611b23565b8152602083013567ffffffffffffffff8082111561227857600080fd5b61228436838701611e92565b6020840152604085013591508082111561229d57600080fd5b506122aa36828601611914565b60408301525092915050565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156122f2576020818501810151868301820152016122d6565b506000602082860101526020601f19601f83011685010191505092915050565b805161ffff168252602081015161232f602084018261ffff169052565b506040810151612347604084018263ffffffff169052565b50606081015161235b606084018215159052565b50608081015161236f608084018215159052565b5060a081015161238360a084018215159052565b5060c081015161239760c084018215159052565b5060e08101516123ab60e084018215159052565b5061010081810151151590830152610120808201511515908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c0808201511515908301526101e0808201511515908301526102008082015115159083015261022080820151151590830152610240808201516001600160a01b0316908301526102608082015161ffff811682850152610ae0565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180518552850151604086860181905281518187018190529187019160609081880190865b8181101561251d5785518051151584528b81015163ffffffff168c8501528581015166ffffffffffffff1686850152848101516001600160a01b039081168686015260808083015165ffffffffffff169086015260a0918201511690840152948a019460c0909201916001016124ac565b50509c88019c965050509285019250600101612475565b509198975050505050505050565b60008151808452602080850194506020840160005b838110156125a257815180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16885283015163ffffffff168388015260409096019590820190600101612557565b509495945050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f19868403018952815160806001600160a01b038083511686528087840151168787015250604080830151828288015261260f83880182612542565b925050506060808301519250858203818701525061262d8183612542565b9a86019a94505050908301906001016125ca565b5090979650505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f198684030189528151805165ffffffffffff1684528481015163ffffffff908116868601526040808301516dffffffffffffffffffffffffffff1690860152606080830151909116908501526080808201516001600160a01b03169085015260a08082015161036091906126eb82880182612312565b505060c08201518161032087015261270582870182612457565b91505060e0820151915084810361034086015261272281836125ad565b9a86019a945050509083019060010161266b565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180516001600160a01b03908116865290860151604087870181905281518188018190529188019290916060919082890190875b818110156127d25786518051851684528c81015160ff168d85015286015163ffffffff1686840152958b01959184019160010161279a565b50509d89019d97505050938601935050600101612754565b6001600160a01b038616815260a06020820152600061280c60a08301876122cc565b828103604084015261281e818761264e565b905082810360608401526128328186612736565b9050828103608084015261284681856122cc565b98975050505050505050565b60006020828403121561286457600080fd5b815161132d81611470565b848152608060208201526000612888608083018661264e565b828103604084015261289a8186612736565b90508281036060840152610de581856122cc565b8381526060602082015260006128c7606083018561264e565b82810360408401526128d981856122cc565b969550505050505056fea2646970667358221220fe9aeb2923c79b329e15f469ded294b7c8f953591673f78360a251462b46f9d064736f6c63430008170033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100725760003560e01c8063abf8c5c811610050578063abf8c5c8146100fe578063ac6a26f814610125578063f434c9141461013857600080fd5b80633c3a22bb1461007757806388bc2ef3146100ac5780638b716777146100eb575b600080fd5b61008a6100853660046111d8565b61015f565b604080519283526001600160a01b039091166020830152015b60405180910390f35b6100d37f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad2281565b6040516001600160a01b0390911681526020016100a3565b61008a6100f9366004611261565b61035d565b6100d37f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be81565b61008a610133366004611296565b610569565b6100d37f0000000000000000000000004cdb4200e4e65a277676cd5e8d3c7c7c4da7fbe581565b6000807f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad226001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e49190611310565b6001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102459190611334565b61025090600161134d565b60405163cc7bb31f60e01b81529092506001600160a01b037f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be169063cc7bb31f906102a190859089906004016116d3565b6020604051808303816000875af11580156102c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e49190611310565b90506102fa866102f386612141565b83866106d0565b6040516351106b4b60e11b8152600481018390526001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561033c57600080fd5b505af1158015610350573d6000803e3d6000fd5b5050505094509492505050565b60008061045b7f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad226001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e59190611310565b6001600160a01b0316636352211e886040518263ffffffff1660e01b815260040161041291815260200190565b602060405180830381865afa15801561042f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104539190611310565b8760026109d8565b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be169063cc7bb31f906104a990899089906004016116d3565b6020604051808303816000875af11580156104c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ec9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b5050505061055e8685610557906121f8565b8386610ae6565b915094509492505050565b6000806105cd7f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad226001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be169063cc7bb31f9061061b90899089906004016116d3565b6020604051808303816000875af115801561063a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065e9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b1580156106a357600080fd5b505af11580156106b7573d6000803e3d6000fd5b5050505061055e86856106c990612238565b8386610df0565b60208301515160008167ffffffffffffffff8111156106f1576106f16117f3565b60405190808252806020026020018201604052801561072a57816020015b6107176110a7565b81526020019060019003908161070f5790505b50905060005b8281101561095057600086602001518281518110610750576107506122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e0015115158152602001896001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061093c5761093c6122b6565b602090810291909101015250600101610730565b50845160408087015160608801519151634e530d8960e11b81526001600160a01b03871693639ca61b129361098c938c938892906004016127ea565b6020604051808303816000875af11580156109ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cf9190611334565b50505050505050565b336001600160a01b0384168114801590610a9d5750604051631a45b42760e11b81526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000004cdb4200e4e65a277676cd5e8d3c7c7c4da7fbe5169063348b684e9060c401602060405180830381865afa158015610a77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9b9190612852565b155b15610ae057604051631326f75560e11b81526001600160a01b03808616600483015282166024820152604481018490526064810183905260840160405180910390fd5b50505050565b602083015151600090818167ffffffffffffffff811115610b0957610b096117f3565b604051908082528060200260200182016040528015610b4257816020015b610b2f6110a7565b815260200190600190039081610b275790505b50905060005b82811015610d6857600087602001518281518110610b6857610b686122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610d5457610d546122b6565b602090810291909101015250600101610b48565b5060408087015160608801519151632a550fab60e11b81526001600160a01b038716926354aa1f5692610da2928c9287929160040161286f565b6020604051808303816000875af1158015610dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de59190611334565b979650505050505050565b602083015151600090818167ffffffffffffffff811115610e1357610e136117f3565b604051908082528060200260200182016040528015610e4c57816020015b610e396110a7565b815260200190600190039081610e315790505b50905060005b8281101561107257600087602001518281518110610e7257610e726122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061105e5761105e6122b6565b602090810291909101015250600101610e52565b506040808701519051630e18de6b60e41b81526001600160a01b0386169163e18de6b091610da2918b918691906004016128ae565b6040805161010080820183526000808352602080840182905283850182905260608085018390526080808601849052865161028081018852848152928301849052958201839052810182905293840181905260a084810182905260c0850182905260e0850182905291840181905261012084018190526101408401819052610160840181905261018084018190526101a084018190526101c084018190526101e08401819052610200840181905261022084018190526102408401819052610260840152909190820190815260200160608152602001606081525090565b6001600160a01b038116811461119a57600080fd5b50565b80356111a881611185565b919050565b600061016082840312156111c057600080fd5b50919050565b6000608082840312156111c057600080fd5b600080600080608085870312156111ee57600080fd5b84356111f981611185565b9350602085013567ffffffffffffffff8082111561121657600080fd5b611222888389016111ad565b9450604087013591508082111561123857600080fd5b50611245878288016111c6565b925050606085013561125681611185565b939692955090935050565b6000806000806080858703121561127757600080fd5b84359350602085013567ffffffffffffffff8082111561121657600080fd5b600080600080608085870312156112ac57600080fd5b84359350602085013567ffffffffffffffff808211156112cb57600080fd5b6112d7888389016111ad565b945060408701359150808211156112ed57600080fd5b5085016060818803121561130057600080fd5b9150606085013561125681611185565b60006020828403121561132257600080fd5b815161132d81611185565b9392505050565b60006020828403121561134657600080fd5b5051919050565b8082018082111561136e57634e487b7160e01b600052601160045260246000fd5b92915050565b6000808335601e1984360301811261138b57600080fd5b830160208101925035905067ffffffffffffffff8111156113ab57600080fd5b8036038213156113ba57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008235607e1983360301811261140057600080fd5b90910192915050565b80356cffffffffffffffffffffffffff811681146111a857600080fd5b803563ffffffff811681146111a857600080fd5b803561ffff811681146111a857600080fd5b803562ffffff811681146111a857600080fd5b803560ff811681146111a857600080fd5b801515811461119a57600080fd5b80356111a881611470565b600060808084018335601e198536030181126114a457600080fd5b8401602081810191359067ffffffffffffffff8211156114c357600080fd5b6101c080830236038413156114d757600080fd5b608089529382905260a09384890160005b8481101561162357611510826114fd88611409565b6cffffffffffffffffffffffffff169052565b61151b848701611426565b63ffffffff16848301526040611532878201611426565b63ffffffff1690830152606061154987820161143a565b61ffff169083015261155c86890161119d565b6001600160a01b031688830152858701358783015260c061157e81880161144c565b62ffffff169083015260e061159487820161145f565b60ff16908301526101006115a987820161147e565b1515908301526101206115bd87820161147e565b1515908301526101406115d187820161147e565b1515908301526101606115e587820161147e565b1515908301526101806115f987820161147e565b1515908301526101a061160d87820161147e565b15159083015294820194908201906001016114e8565b5061163060208a01611426565b63ffffffff811660208c0152965061164a60408a0161145f565b60ff811660408c0152965061166160608a0161119d565b6001600160a01b03811660608c015296509998505050505050505050565b803561168a81611470565b15158252602081013561169c81611470565b1515602083015260408101356116b181611470565b1515604083015260608101356116c681611470565b8015156060840152505050565b8281526040602082015260006116e98384611374565b61016060408501526117006101a0850182846113c1565b9150506117106020850185611374565b603f19808685030160608701526117288483856113c1565b93506117376040880188611374565b93509150808685030160808701526117508484846113c1565b935061175e6060880161119d565b6001600160a01b03811660a0880152925061177c6080880188611374565b93509150808685030160c08701526117958484846113c1565b93506117a460a08801886113ea565b9250808685030160e087015250506117bc8282611489565b9150506117cb60c0850161119d565b6001600160a01b03166101008401526117eb610120840160e0860161167f565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405290565b6040805190810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405160c0810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516080810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051610100810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516060810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051601f8201601f1916810167ffffffffffffffff8111828210171561190c5761190c6117f3565b604052919050565b600082601f83011261192557600080fd5b813567ffffffffffffffff81111561193f5761193f6117f3565b611952601f8201601f19166020016118e3565b81815284602083860101111561196757600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff82111561199e5761199e6117f3565b5060051b60200190565b803565ffffffffffff811681146111a857600080fd5b80356dffffffffffffffffffffffffffff811681146111a857600080fd5b600061022082840312156119ef57600080fd5b6119f7611809565b9050611a028261143a565b8152611a106020830161143a565b6020820152611a2160408301611426565b6040820152611a326060830161147e565b6060820152611a436080830161147e565b6080820152611a5460a0830161147e565b60a0820152611a6560c0830161147e565b60c0820152611a7660e0830161147e565b60e0820152610100611a8981840161147e565b90820152610120611a9b83820161147e565b90820152610140611aad83820161147e565b90820152610160611abf83820161147e565b90820152610180611ad183820161147e565b908201526101a0611ae383820161147e565b908201526101c0611af583820161147e565b908201526101e0611b0783820161147e565b90820152610200611b1983820161143a565b9082015292915050565b803566ffffffffffffff811681146111a857600080fd5b600082601f830112611b4b57600080fd5b81356020611b60611b5b83611984565b6118e3565b82815260059290921b84018101918181019086841115611b7f57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ba357600080fd5b908801906040828b03601f1901811315611bbc57600080fd5b611bc4611833565b8784013581528184013583811115611bdb57600080fd5b8085019450508b603f850112611bf057600080fd5b878401359250611c02611b5b84611984565b83815260c09093028401820192888101908d851115611c2057600080fd5b948301945b84861015611cb95760c0868f031215611c3d57600080fd5b611c45611856565b8635611c5081611470565b8152611c5d878c01611426565b8b820152611c6c858801611b23565b858201526060870135611c7e81611185565b6060820152611c8f608088016119a8565b608082015260a0870135611ca281611185565b60a0820152825260c0959095019490890190611c25565b828a0152508652505050918301918301611b83565b509695505050505050565b600082601f830112611cea57600080fd5b81356020611cfa611b5b83611984565b82815260069290921b84018101918181019086841115611d1957600080fd5b8286015b84811015611cce5760408189031215611d365760008081fd5b611d3e611833565b81357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81168114611d6b5760008081fd5b8152611d78828601611426565b81860152835291830191604001611d1d565b600082601f830112611d9b57600080fd5b81356020611dab611b5b83611984565b82815260059290921b84018101918181019086841115611dca57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611def5760008081fd5b908801906080828b03601f1901811315611e095760008081fd5b611e11611879565b87840135611e1e81611185565b8152604084810135611e2f81611185565b828a015260608581013585811115611e475760008081fd5b611e558f8c838a0101611cd9565b8484015250928501359284841115611e6f57600091508182fd5b611e7d8e8b86890101611cd9565b90830152508652505050918301918301611dce565b600082601f830112611ea357600080fd5b81356020611eb3611b5b83611984565b82815260059290921b84018101918181019086841115611ed257600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ef75760008081fd5b90880190610300828b03601f1901811315611f125760008081fd5b611f1a61189c565b611f258885016119a8565b81526040611f34818601611426565b898301526060611f458187016119be565b8284015260809150611f58828701611426565b9083015260a0611f6986820161119d565b8284015260c09150611f7d8e8388016119dc565b908301526102e085013584811115611f955760008081fd5b611fa38e8b83890101611b3a565b82840152505081840135915082821115611fbd5760008081fd5b611fcb8c8984870101611d8a565b60e08201528652505050918301918301611ed6565b600082601f830112611ff157600080fd5b81356020612001611b5b83611984565b82815260059290921b8401810191818101908684111561202057600080fd5b8286015b84811015611cce57803567ffffffffffffffff8082111561204457600080fd5b908801906040828b03601f190181131561205d57600080fd5b612065611833565b8784013561207281611185565b8152838201358381111561208557600080fd5b8085019450508b603f85011261209a57600080fd5b8784013592506120ac611b5b84611984565b83815260609093028401820192888101908d8511156120ca57600080fd5b948301945b8486101561212c576060868f0312156120e757600080fd5b6120ef6118c0565b86356120fa81611185565b8152612107878c0161145f565b8b820152612116858801611426565b81860152825260609590950194908901906120cf565b828a0152508652505050918301918301612024565b60006080823603121561215357600080fd5b61215b611879565b823567ffffffffffffffff8082111561217357600080fd5b61217f36838701611914565b8352602085013591508082111561219557600080fd5b6121a136838701611e92565b602084015260408501359150808211156121ba57600080fd5b6121c636838701611fe0565b604084015260608501359150808211156121df57600080fd5b506121ec36828601611914565b60608301525092915050565b60006080823603121561220a57600080fd5b612212611879565b61221b83611b23565b8152602083013567ffffffffffffffff8082111561219557600080fd5b60006060823603121561224a57600080fd5b6122526118c0565b61225b83611b23565b8152602083013567ffffffffffffffff8082111561227857600080fd5b61228436838701611e92565b6020840152604085013591508082111561229d57600080fd5b506122aa36828601611914565b60408301525092915050565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156122f2576020818501810151868301820152016122d6565b506000602082860101526020601f19601f83011685010191505092915050565b805161ffff168252602081015161232f602084018261ffff169052565b506040810151612347604084018263ffffffff169052565b50606081015161235b606084018215159052565b50608081015161236f608084018215159052565b5060a081015161238360a084018215159052565b5060c081015161239760c084018215159052565b5060e08101516123ab60e084018215159052565b5061010081810151151590830152610120808201511515908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c0808201511515908301526101e0808201511515908301526102008082015115159083015261022080820151151590830152610240808201516001600160a01b0316908301526102608082015161ffff811682850152610ae0565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180518552850151604086860181905281518187018190529187019160609081880190865b8181101561251d5785518051151584528b81015163ffffffff168c8501528581015166ffffffffffffff1686850152848101516001600160a01b039081168686015260808083015165ffffffffffff169086015260a0918201511690840152948a019460c0909201916001016124ac565b50509c88019c965050509285019250600101612475565b509198975050505050505050565b60008151808452602080850194506020840160005b838110156125a257815180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16885283015163ffffffff168388015260409096019590820190600101612557565b509495945050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f19868403018952815160806001600160a01b038083511686528087840151168787015250604080830151828288015261260f83880182612542565b925050506060808301519250858203818701525061262d8183612542565b9a86019a94505050908301906001016125ca565b5090979650505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f198684030189528151805165ffffffffffff1684528481015163ffffffff908116868601526040808301516dffffffffffffffffffffffffffff1690860152606080830151909116908501526080808201516001600160a01b03169085015260a08082015161036091906126eb82880182612312565b505060c08201518161032087015261270582870182612457565b91505060e0820151915084810361034086015261272281836125ad565b9a86019a945050509083019060010161266b565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180516001600160a01b03908116865290860151604087870181905281518188018190529188019290916060919082890190875b818110156127d25786518051851684528c81015160ff168d85015286015163ffffffff1686840152958b01959184019160010161279a565b50509d89019d97505050938601935050600101612754565b6001600160a01b038616815260a06020820152600061280c60a08301876122cc565b828103604084015261281e818761264e565b905082810360608401526128328186612736565b9050828103608084015261284681856122cc565b98975050505050505050565b60006020828403121561286457600080fd5b815161132d81611470565b848152608060208201526000612888608083018661264e565b828103604084015261289a8186612736565b90508281036060840152610de581856122cc565b8381526060602082015260006128c7606083018561264e565b82810360408401526128d981856122cc565b969550505050505056fea2646970667358221220fe9aeb2923c79b329e15f469ded294b7c8f953591673f78360a251462b46f9d064736f6c63430008170033", "devdoc": { "kind": "dev", "methods": { @@ -1632,6 +1555,7 @@ "owner": "The address to set as the owner of the project. The ERC-721 which confers this project's ownership will be sent to this address." }, "returns": { + "hook": "The 721 tiers hook that was deployed for the project.", "projectId": "The ID of the newly launched project." } }, @@ -1644,6 +1568,7 @@ "projectId": "The ID of the project that rulesets are being launched for." }, "returns": { + "hook": "The 721 tiers hook that was deployed for the project.", "rulesetId": "The ID of the successfully created ruleset." } }, @@ -1656,6 +1581,7 @@ "queueRulesetsConfig": "Configuration which dictates the project's newly queued rulesets." }, "returns": { + "hook": "The 721 tiers hook that was deployed for the project.", "rulesetId": "The ID of the successfully created ruleset." } } @@ -1686,7 +1612,7 @@ }, "version": 1 }, - "gitCommit": "4c5a6a4ff88604a9c0a981284b933b4e7757161c", + "gitCommit": "ad100ab7826a4aace8ac39612835a18c1e961ec2", "sourceName": "src/JB721TiersHookProjectDeployer.sol", "chainId": "84532", "linkReferences": {}, diff --git a/deployments/nana-721-hook-testnet/base_sepolia/execution/371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8.json b/deployments/nana-721-hook-testnet/base_sepolia/execution/371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8.json new file mode 100644 index 00000000..62713f7f --- /dev/null +++ b/deployments/nana-721-hook-testnet/base_sepolia/execution/371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8.json @@ -0,0 +1,221 @@ +{ + "_format": "sphinx-sol-execution-artifact-1", + "transactions": [ + { + "receipt": { + "blockHash": "0x011e178284c4a01958b42b15ea6d9b5b0984a3e94f2264003c916d54f479a4e2", + "blockNumber": 15506842, + "contractAddress": null, + "cumulativeGasUsed": "439640", + "from": "0x0c1c9049564269275059032Fb484Aa2e7Ab779af", + "gasPrice": "1000273", + "gasUsed": "176655", + "hash": "0x59b350fe54201c21a8fb523a03d40f819b773d3fcc6a7b5fcbb425389b0c814b", + "index": 5, + "logs": [ + { + "address": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463", + "blockHash": "0x011e178284c4a01958b42b15ea6d9b5b0984a3e94f2264003c916d54f479a4e2", + "blockNumber": 15506842, + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "index": 4, + "topics": [ + "0x572f161235911da04685a68c06adf558fc7e4a36909dca394650e0adc19cc93d", + "0x0000000000000000000000000c1c9049564269275059032fb484aa2e7ab779af", + "0x000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c3", + "0x1600a2f65df03b2585cc45290423e0b4a0f85a9cd25c6d801e366570203d9e0d" + ], + "transactionHash": "0x59b350fe54201c21a8fb523a03d40f819b773d3fcc6a7b5fcbb425389b0c814b", + "transactionIndex": 5 + }, + { + "address": "0xcd414DF3f7b7dA1F867fF6B5499879308087F0c3", + "blockHash": "0x011e178284c4a01958b42b15ea6d9b5b0984a3e94f2264003c916d54f479a4e2", + "blockNumber": 15506842, + "data": "0x000000000000000000000000a2ea7657440875bf916cbfc0cfa88f13e38ad463000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "index": 5, + "topics": [ + "0x382c7aec02462c9b086aba9a7f8dbb1fb8bf336e7b624b0149eeca6726d0fb4a", + "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8", + "0x0000000000000000000000000000000000000000000000000000000000000003" + ], + "transactionHash": "0x59b350fe54201c21a8fb523a03d40f819b773d3fcc6a7b5fcbb425389b0c814b", + "transactionIndex": 5 + } + ], + "logsBloom": "0x100000000000000000000000000000000000000000000000000000000000000000800000000000000000000000400200001000200200000000200000000000000040000000000200000000000000000000100000000000000000001000000000000000000000000000000000000000020000000000000000000000000000000040000000000000000001000000000000000000000080000000000000000000000040000000000000000000020000000020000000008000001000000000004000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000400000a0000000000000000000", + "status": 1, + "to": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463" + }, + "response": { + "accessList": [], + "blockNumber": 15506842, + "blockHash": "0x011e178284c4a01958b42b15ea6d9b5b0984a3e94f2264003c916d54f479a4e2", + "chainId": "84532", + "data": "0xbe6002c2000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c3000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000003448f38f835371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000014a34000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000010000000000000000000000000094bbb774520c1e0bd2afb9b3b63cc11102ed7a7b000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a2ea7657440875bf916cbfc0cfa88f13e38ad46300000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003aa5639af7c0f3693d4e3570eaf92d94831869e3b35e22dd51a01aa0d450c82698e130fd74e159a30fddc9a4e914ad1cdfcf3fd11ff4b9817a6bb1bc9f9e8f73d8f580c8c7a0330aee655985cf3975e809df7589b0bf9e1752533b3a7e1d895e5000000000000000000000000000000000000000000000000000000000000004156788b273eba8848384686f9540ee3d92ddcdc26c8271f29a00d5b08f003ecc465ec6968a34470418793c1f1cf4cf744e9131595eabdb81e083505aba2c0e1ac1b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "from": "0x0c1c9049564269275059032Fb484Aa2e7Ab779af", + "gasLimit": "188948", + "gasPrice": "1000273", + "hash": "0x59b350fe54201c21a8fb523a03d40f819b773d3fcc6a7b5fcbb425389b0c814b", + "maxFeePerGas": "1000546", + "maxPriorityFeePerGas": "1000000", + "nonce": 97, + "signature": { + "networkV": null, + "r": "0xb175101b7f3cff9c17cc28b41545d71a647033bbc0992f7b2d99550def866be1", + "s": "0x16c4794aac41bffaea775b8dc614994f7ae954dd10e528bb2c53eddd9327f95d", + "v": 28 + }, + "to": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463", + "type": 2, + "value": "0" + } + }, + { + "receipt": { + "blockHash": "0xcdd983b45de85e2960bcfd5bf2c9478ed59f2b941c9d2216578ffd8274accd13", + "blockNumber": 15506872, + "contractAddress": null, + "cumulativeGasUsed": "2671742", + "from": "0x0c1c9049564269275059032Fb484Aa2e7Ab779af", + "gasPrice": "1000273", + "gasUsed": "2498303", + "hash": "0x7be88cbd7b9d3f64cba872f5bc27ca9c3e8e63a00e8fa8af21af89a26834f1f3", + "index": 7, + "logs": [ + { + "address": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463", + "blockHash": "0xcdd983b45de85e2960bcfd5bf2c9478ed59f2b941c9d2216578ffd8274accd13", + "blockNumber": 15506872, + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "index": 0, + "topics": [ + "0x572f161235911da04685a68c06adf558fc7e4a36909dca394650e0adc19cc93d", + "0x0000000000000000000000000c1c9049564269275059032fb484aa2e7ab779af", + "0x000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c3", + "0x60daca5818be3d22d22d09d5b895bbb2fe74ad370558bb23e29cbbe6080b6353" + ], + "transactionHash": "0x7be88cbd7b9d3f64cba872f5bc27ca9c3e8e63a00e8fa8af21af89a26834f1f3", + "transactionIndex": 7 + }, + { + "address": "0x94BBb774520C1E0Bd2aFb9b3B63cc11102ED7A7B", + "blockHash": "0xcdd983b45de85e2960bcfd5bf2c9478ed59f2b941c9d2216578ffd8274accd13", + "blockNumber": 15506872, + "data": "0x", + "index": 1, + "topics": [ + "0x6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8", + "0x000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c3" + ], + "transactionHash": "0x7be88cbd7b9d3f64cba872f5bc27ca9c3e8e63a00e8fa8af21af89a26834f1f3", + "transactionIndex": 7 + }, + { + "address": "0xcd414DF3f7b7dA1F867fF6B5499879308087F0c3", + "blockHash": "0xcdd983b45de85e2960bcfd5bf2c9478ed59f2b941c9d2216578ffd8274accd13", + "blockNumber": 15506872, + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "index": 2, + "topics": [ + "0xa65fb05c5808f5f389d72edeaf719ce38f4cc55c1f69ca3cbfb31c21501caa07", + "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8" + ], + "transactionHash": "0x7be88cbd7b9d3f64cba872f5bc27ca9c3e8e63a00e8fa8af21af89a26834f1f3", + "transactionIndex": 7 + }, + { + "address": "0xcd414DF3f7b7dA1F867fF6B5499879308087F0c3", + "blockHash": "0xcdd983b45de85e2960bcfd5bf2c9478ed59f2b941c9d2216578ffd8274accd13", + "blockNumber": 15506872, + "data": "0x", + "index": 3, + "topics": [ + "0x4383d976757d67ca920616be0b6430a681ea9d3dcce8d6d61d4603ca4a9bff63", + "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8" + ], + "transactionHash": "0x7be88cbd7b9d3f64cba872f5bc27ca9c3e8e63a00e8fa8af21af89a26834f1f3", + "transactionIndex": 7 + } + ], + "logsBloom": "0x00000000000010000000000000080000000000000000000000000000000000000080000000000000000000000040020000100000000000000020000000000000000000000000220000000000000000000010000000000800000000000000000000000000000000000000000000040000000000000000000000000002000000004000000000000000000100000000000000000000008000000000000000000000004000800000000000000002080000002200000000000000100002000004000000000002000000000000000000000000040000000000000000000000000000000000000000000008000000000000000240000040000080000000000008000000", + "status": 1, + "to": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463" + }, + "response": { + "accessList": [], + "blockNumber": 15506872, + "blockHash": "0xcdd983b45de85e2960bcfd5bf2c9478ed59f2b941c9d2216578ffd8274accd13", + "chainId": "84532", + "data": "0xbe6002c2000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000002d64e65ec46d00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000014a340000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000004e59b44847b379578588920ca78fbf26c0b4956c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029e88700000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000002ab84a423732315469657273486f6f6b50726f6a6563744465706c6f79657200000060e06040523480156200001157600080fd5b5060405162002a3838038062002a3883398101604081905262000034916200006b565b6001600160a01b0391821660805291811660a0521660c052620000bf565b6001600160a01b03811681146200006857600080fd5b50565b6000806000606084860312156200008157600080fd5b83516200008e8162000052565b6020850151909350620000a18162000052565b6040850151909250620000b48162000052565b809150509250925092565b60805160a05160c0516129196200011f600039600081816101030152818161026a0152818161047201526105e401526000818160b10152818161016401528181610365015261057101526000818161013d0152610a3001526129196000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063abf8c5c811610050578063abf8c5c8146100fe578063ac6a26f814610125578063f434c9141461013857600080fd5b80633c3a22bb1461007757806388bc2ef3146100ac5780638b716777146100eb575b600080fd5b61008a6100853660046111d8565b61015f565b604080519283526001600160a01b039091166020830152015b60405180910390f35b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100a3565b61008a6100f9366004611261565b61035d565b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b61008a610133366004611296565b610569565b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e49190611310565b6001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102459190611334565b61025090600161134d565b60405163cc7bb31f60e01b81529092506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f906102a190859089906004016116d3565b6020604051808303816000875af11580156102c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e49190611310565b90506102fa866102f386612141565b83866106d0565b6040516351106b4b60e11b8152600481018390526001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561033c57600080fd5b505af1158015610350573d6000803e3d6000fd5b5050505094509492505050565b60008061045b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e59190611310565b6001600160a01b0316636352211e886040518263ffffffff1660e01b815260040161041291815260200190565b602060405180830381865afa15801561042f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104539190611310565b8760026109d8565b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f906104a990899089906004016116d3565b6020604051808303816000875af11580156104c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ec9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b5050505061055e8685610557906121f8565b8386610ae6565b915094509492505050565b6000806105cd7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f9061061b90899089906004016116d3565b6020604051808303816000875af115801561063a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065e9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b1580156106a357600080fd5b505af11580156106b7573d6000803e3d6000fd5b5050505061055e86856106c990612238565b8386610df0565b60208301515160008167ffffffffffffffff8111156106f1576106f16117f3565b60405190808252806020026020018201604052801561072a57816020015b6107176110a7565b81526020019060019003908161070f5790505b50905060005b8281101561095057600086602001518281518110610750576107506122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e0015115158152602001896001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061093c5761093c6122b6565b602090810291909101015250600101610730565b50845160408087015160608801519151634e530d8960e11b81526001600160a01b03871693639ca61b129361098c938c938892906004016127ea565b6020604051808303816000875af11580156109ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cf9190611334565b50505050505050565b336001600160a01b0384168114801590610a9d5750604051631a45b42760e11b81526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000000000000000000000000000000000000000000000169063348b684e9060c401602060405180830381865afa158015610a77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9b9190612852565b155b15610ae057604051631326f75560e11b81526001600160a01b03808616600483015282166024820152604481018490526064810183905260840160405180910390fd5b50505050565b602083015151600090818167ffffffffffffffff811115610b0957610b096117f3565b604051908082528060200260200182016040528015610b4257816020015b610b2f6110a7565b815260200190600190039081610b275790505b50905060005b82811015610d6857600087602001518281518110610b6857610b686122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610d5457610d546122b6565b602090810291909101015250600101610b48565b5060408087015160608801519151632a550fab60e11b81526001600160a01b038716926354aa1f5692610da2928c9287929160040161286f565b6020604051808303816000875af1158015610dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de59190611334565b979650505050505050565b602083015151600090818167ffffffffffffffff811115610e1357610e136117f3565b604051908082528060200260200182016040528015610e4c57816020015b610e396110a7565b815260200190600190039081610e315790505b50905060005b8281101561107257600087602001518281518110610e7257610e726122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061105e5761105e6122b6565b602090810291909101015250600101610e52565b506040808701519051630e18de6b60e41b81526001600160a01b0386169163e18de6b091610da2918b918691906004016128ae565b6040805161010080820183526000808352602080840182905283850182905260608085018390526080808601849052865161028081018852848152928301849052958201839052810182905293840181905260a084810182905260c0850182905260e0850182905291840181905261012084018190526101408401819052610160840181905261018084018190526101a084018190526101c084018190526101e08401819052610200840181905261022084018190526102408401819052610260840152909190820190815260200160608152602001606081525090565b6001600160a01b038116811461119a57600080fd5b50565b80356111a881611185565b919050565b600061016082840312156111c057600080fd5b50919050565b6000608082840312156111c057600080fd5b600080600080608085870312156111ee57600080fd5b84356111f981611185565b9350602085013567ffffffffffffffff8082111561121657600080fd5b611222888389016111ad565b9450604087013591508082111561123857600080fd5b50611245878288016111c6565b925050606085013561125681611185565b939692955090935050565b6000806000806080858703121561127757600080fd5b84359350602085013567ffffffffffffffff8082111561121657600080fd5b600080600080608085870312156112ac57600080fd5b84359350602085013567ffffffffffffffff808211156112cb57600080fd5b6112d7888389016111ad565b945060408701359150808211156112ed57600080fd5b5085016060818803121561130057600080fd5b9150606085013561125681611185565b60006020828403121561132257600080fd5b815161132d81611185565b9392505050565b60006020828403121561134657600080fd5b5051919050565b8082018082111561136e57634e487b7160e01b600052601160045260246000fd5b92915050565b6000808335601e1984360301811261138b57600080fd5b830160208101925035905067ffffffffffffffff8111156113ab57600080fd5b8036038213156113ba57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008235607e1983360301811261140057600080fd5b90910192915050565b80356cffffffffffffffffffffffffff811681146111a857600080fd5b803563ffffffff811681146111a857600080fd5b803561ffff811681146111a857600080fd5b803562ffffff811681146111a857600080fd5b803560ff811681146111a857600080fd5b801515811461119a57600080fd5b80356111a881611470565b600060808084018335601e198536030181126114a457600080fd5b8401602081810191359067ffffffffffffffff8211156114c357600080fd5b6101c080830236038413156114d757600080fd5b608089529382905260a09384890160005b8481101561162357611510826114fd88611409565b6cffffffffffffffffffffffffff169052565b61151b848701611426565b63ffffffff16848301526040611532878201611426565b63ffffffff1690830152606061154987820161143a565b61ffff169083015261155c86890161119d565b6001600160a01b031688830152858701358783015260c061157e81880161144c565b62ffffff169083015260e061159487820161145f565b60ff16908301526101006115a987820161147e565b1515908301526101206115bd87820161147e565b1515908301526101406115d187820161147e565b1515908301526101606115e587820161147e565b1515908301526101806115f987820161147e565b1515908301526101a061160d87820161147e565b15159083015294820194908201906001016114e8565b5061163060208a01611426565b63ffffffff811660208c0152965061164a60408a0161145f565b60ff811660408c0152965061166160608a0161119d565b6001600160a01b03811660608c015296509998505050505050505050565b803561168a81611470565b15158252602081013561169c81611470565b1515602083015260408101356116b181611470565b1515604083015260608101356116c681611470565b8015156060840152505050565b8281526040602082015260006116e98384611374565b61016060408501526117006101a0850182846113c1565b9150506117106020850185611374565b603f19808685030160608701526117288483856113c1565b93506117376040880188611374565b93509150808685030160808701526117508484846113c1565b935061175e6060880161119d565b6001600160a01b03811660a0880152925061177c6080880188611374565b93509150808685030160c08701526117958484846113c1565b93506117a460a08801886113ea565b9250808685030160e087015250506117bc8282611489565b9150506117cb60c0850161119d565b6001600160a01b03166101008401526117eb610120840160e0860161167f565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405290565b6040805190810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405160c0810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516080810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051610100810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516060810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051601f8201601f1916810167ffffffffffffffff8111828210171561190c5761190c6117f3565b604052919050565b600082601f83011261192557600080fd5b813567ffffffffffffffff81111561193f5761193f6117f3565b611952601f8201601f19166020016118e3565b81815284602083860101111561196757600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff82111561199e5761199e6117f3565b5060051b60200190565b803565ffffffffffff811681146111a857600080fd5b80356dffffffffffffffffffffffffffff811681146111a857600080fd5b600061022082840312156119ef57600080fd5b6119f7611809565b9050611a028261143a565b8152611a106020830161143a565b6020820152611a2160408301611426565b6040820152611a326060830161147e565b6060820152611a436080830161147e565b6080820152611a5460a0830161147e565b60a0820152611a6560c0830161147e565b60c0820152611a7660e0830161147e565b60e0820152610100611a8981840161147e565b90820152610120611a9b83820161147e565b90820152610140611aad83820161147e565b90820152610160611abf83820161147e565b90820152610180611ad183820161147e565b908201526101a0611ae383820161147e565b908201526101c0611af583820161147e565b908201526101e0611b0783820161147e565b90820152610200611b1983820161143a565b9082015292915050565b803566ffffffffffffff811681146111a857600080fd5b600082601f830112611b4b57600080fd5b81356020611b60611b5b83611984565b6118e3565b82815260059290921b84018101918181019086841115611b7f57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ba357600080fd5b908801906040828b03601f1901811315611bbc57600080fd5b611bc4611833565b8784013581528184013583811115611bdb57600080fd5b8085019450508b603f850112611bf057600080fd5b878401359250611c02611b5b84611984565b83815260c09093028401820192888101908d851115611c2057600080fd5b948301945b84861015611cb95760c0868f031215611c3d57600080fd5b611c45611856565b8635611c5081611470565b8152611c5d878c01611426565b8b820152611c6c858801611b23565b858201526060870135611c7e81611185565b6060820152611c8f608088016119a8565b608082015260a0870135611ca281611185565b60a0820152825260c0959095019490890190611c25565b828a0152508652505050918301918301611b83565b509695505050505050565b600082601f830112611cea57600080fd5b81356020611cfa611b5b83611984565b82815260069290921b84018101918181019086841115611d1957600080fd5b8286015b84811015611cce5760408189031215611d365760008081fd5b611d3e611833565b81357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81168114611d6b5760008081fd5b8152611d78828601611426565b81860152835291830191604001611d1d565b600082601f830112611d9b57600080fd5b81356020611dab611b5b83611984565b82815260059290921b84018101918181019086841115611dca57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611def5760008081fd5b908801906080828b03601f1901811315611e095760008081fd5b611e11611879565b87840135611e1e81611185565b8152604084810135611e2f81611185565b828a015260608581013585811115611e475760008081fd5b611e558f8c838a0101611cd9565b8484015250928501359284841115611e6f57600091508182fd5b611e7d8e8b86890101611cd9565b90830152508652505050918301918301611dce565b600082601f830112611ea357600080fd5b81356020611eb3611b5b83611984565b82815260059290921b84018101918181019086841115611ed257600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ef75760008081fd5b90880190610300828b03601f1901811315611f125760008081fd5b611f1a61189c565b611f258885016119a8565b81526040611f34818601611426565b898301526060611f458187016119be565b8284015260809150611f58828701611426565b9083015260a0611f6986820161119d565b8284015260c09150611f7d8e8388016119dc565b908301526102e085013584811115611f955760008081fd5b611fa38e8b83890101611b3a565b82840152505081840135915082821115611fbd5760008081fd5b611fcb8c8984870101611d8a565b60e08201528652505050918301918301611ed6565b600082601f830112611ff157600080fd5b81356020612001611b5b83611984565b82815260059290921b8401810191818101908684111561202057600080fd5b8286015b84811015611cce57803567ffffffffffffffff8082111561204457600080fd5b908801906040828b03601f190181131561205d57600080fd5b612065611833565b8784013561207281611185565b8152838201358381111561208557600080fd5b8085019450508b603f85011261209a57600080fd5b8784013592506120ac611b5b84611984565b83815260609093028401820192888101908d8511156120ca57600080fd5b948301945b8486101561212c576060868f0312156120e757600080fd5b6120ef6118c0565b86356120fa81611185565b8152612107878c0161145f565b8b820152612116858801611426565b81860152825260609590950194908901906120cf565b828a0152508652505050918301918301612024565b60006080823603121561215357600080fd5b61215b611879565b823567ffffffffffffffff8082111561217357600080fd5b61217f36838701611914565b8352602085013591508082111561219557600080fd5b6121a136838701611e92565b602084015260408501359150808211156121ba57600080fd5b6121c636838701611fe0565b604084015260608501359150808211156121df57600080fd5b506121ec36828601611914565b60608301525092915050565b60006080823603121561220a57600080fd5b612212611879565b61221b83611b23565b8152602083013567ffffffffffffffff8082111561219557600080fd5b60006060823603121561224a57600080fd5b6122526118c0565b61225b83611b23565b8152602083013567ffffffffffffffff8082111561227857600080fd5b61228436838701611e92565b6020840152604085013591508082111561229d57600080fd5b506122aa36828601611914565b60408301525092915050565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156122f2576020818501810151868301820152016122d6565b506000602082860101526020601f19601f83011685010191505092915050565b805161ffff168252602081015161232f602084018261ffff169052565b506040810151612347604084018263ffffffff169052565b50606081015161235b606084018215159052565b50608081015161236f608084018215159052565b5060a081015161238360a084018215159052565b5060c081015161239760c084018215159052565b5060e08101516123ab60e084018215159052565b5061010081810151151590830152610120808201511515908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c0808201511515908301526101e0808201511515908301526102008082015115159083015261022080820151151590830152610240808201516001600160a01b0316908301526102608082015161ffff811682850152610ae0565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180518552850151604086860181905281518187018190529187019160609081880190865b8181101561251d5785518051151584528b81015163ffffffff168c8501528581015166ffffffffffffff1686850152848101516001600160a01b039081168686015260808083015165ffffffffffff169086015260a0918201511690840152948a019460c0909201916001016124ac565b50509c88019c965050509285019250600101612475565b509198975050505050505050565b60008151808452602080850194506020840160005b838110156125a257815180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16885283015163ffffffff168388015260409096019590820190600101612557565b509495945050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f19868403018952815160806001600160a01b038083511686528087840151168787015250604080830151828288015261260f83880182612542565b925050506060808301519250858203818701525061262d8183612542565b9a86019a94505050908301906001016125ca565b5090979650505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f198684030189528151805165ffffffffffff1684528481015163ffffffff908116868601526040808301516dffffffffffffffffffffffffffff1690860152606080830151909116908501526080808201516001600160a01b03169085015260a08082015161036091906126eb82880182612312565b505060c08201518161032087015261270582870182612457565b91505060e0820151915084810361034086015261272281836125ad565b9a86019a945050509083019060010161266b565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180516001600160a01b03908116865290860151604087870181905281518188018190529188019290916060919082890190875b818110156127d25786518051851684528c81015160ff168d85015286015163ffffffff1686840152958b01959184019160010161279a565b50509d89019d97505050938601935050600101612754565b6001600160a01b038616815260a06020820152600061280c60a08301876122cc565b828103604084015261281e818761264e565b905082810360608401526128328186612736565b9050828103608084015261284681856122cc565b98975050505050505050565b60006020828403121561286457600080fd5b815161132d81611470565b848152608060208201526000612888608083018661264e565b828103604084015261289a8186612736565b90508281036060840152610de581856122cc565b8381526060602082015260006128c7606083018561264e565b82810360408401526128d981856122cc565b969550505050505056fea2646970667358221220fe9aeb2923c79b329e15f469ded294b7c8f953591673f78360a251462b46f9d064736f6c63430008170033000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad220000000000000000000000004cdb4200e4e65a277676cd5e8d3c7c7c4da7fbe50000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be00000000000000000000000000000000000000000000000000000000000000000000000000000003ca1f1941d3525352adc015cff12100998d1452a63f1414f4cc5699bf07aa08757bbda61fda245389fd1f3ea4e226bb6b1e6bf554bd6bef2d58dc9e1cf53e08ea8f580c8c7a0330aee655985cf3975e809df7589b0bf9e1752533b3a7e1d895e500000000000000000000000000000000000000000000000000000000", + "from": "0x0c1c9049564269275059032Fb484Aa2e7Ab779af", + "gasLimit": "3228432", + "gasPrice": "1000273", + "hash": "0x7be88cbd7b9d3f64cba872f5bc27ca9c3e8e63a00e8fa8af21af89a26834f1f3", + "maxFeePerGas": "1000544", + "maxPriorityFeePerGas": "1000000", + "nonce": 98, + "signature": { + "networkV": null, + "r": "0x0067eccd2c6fe349fd6ea0914f6088d34596ff1a7dabddcb6605f922444b77d3", + "s": "0x5ac5a6c64244251607395560b6541d0d47514983d8841365027b09fa5e416597", + "v": 28 + }, + "to": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463", + "type": 2, + "value": "0" + } + } + ], + "merkleRoot": "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8", + "solcInputHashes": [ + "2fd444c97aa0fa789adae5192c86e854" + ], + "safeAddress": "0x94BBb774520C1E0Bd2aFb9b3B63cc11102ED7A7B", + "moduleAddress": "0xcd414DF3f7b7dA1F867fF6B5499879308087F0c3", + "executorAddress": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463", + "nonce": "3", + "chainId": "84532", + "actions": [ + { + "to": "0x4e59b44847b379578588920cA78FbF26c0B4956C", + "value": "0", + "txData": "0x4a423732315469657273486f6f6b50726f6a6563744465706c6f79657200000060e06040523480156200001157600080fd5b5060405162002a3838038062002a3883398101604081905262000034916200006b565b6001600160a01b0391821660805291811660a0521660c052620000bf565b6001600160a01b03811681146200006857600080fd5b50565b6000806000606084860312156200008157600080fd5b83516200008e8162000052565b6020850151909350620000a18162000052565b6040850151909250620000b48162000052565b809150509250925092565b60805160a05160c0516129196200011f600039600081816101030152818161026a0152818161047201526105e401526000818160b10152818161016401528181610365015261057101526000818161013d0152610a3001526129196000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063abf8c5c811610050578063abf8c5c8146100fe578063ac6a26f814610125578063f434c9141461013857600080fd5b80633c3a22bb1461007757806388bc2ef3146100ac5780638b716777146100eb575b600080fd5b61008a6100853660046111d8565b61015f565b604080519283526001600160a01b039091166020830152015b60405180910390f35b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100a3565b61008a6100f9366004611261565b61035d565b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b61008a610133366004611296565b610569565b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e49190611310565b6001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102459190611334565b61025090600161134d565b60405163cc7bb31f60e01b81529092506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f906102a190859089906004016116d3565b6020604051808303816000875af11580156102c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e49190611310565b90506102fa866102f386612141565b83866106d0565b6040516351106b4b60e11b8152600481018390526001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561033c57600080fd5b505af1158015610350573d6000803e3d6000fd5b5050505094509492505050565b60008061045b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e59190611310565b6001600160a01b0316636352211e886040518263ffffffff1660e01b815260040161041291815260200190565b602060405180830381865afa15801561042f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104539190611310565b8760026109d8565b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f906104a990899089906004016116d3565b6020604051808303816000875af11580156104c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ec9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b5050505061055e8685610557906121f8565b8386610ae6565b915094509492505050565b6000806105cd7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f9061061b90899089906004016116d3565b6020604051808303816000875af115801561063a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065e9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b1580156106a357600080fd5b505af11580156106b7573d6000803e3d6000fd5b5050505061055e86856106c990612238565b8386610df0565b60208301515160008167ffffffffffffffff8111156106f1576106f16117f3565b60405190808252806020026020018201604052801561072a57816020015b6107176110a7565b81526020019060019003908161070f5790505b50905060005b8281101561095057600086602001518281518110610750576107506122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e0015115158152602001896001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061093c5761093c6122b6565b602090810291909101015250600101610730565b50845160408087015160608801519151634e530d8960e11b81526001600160a01b03871693639ca61b129361098c938c938892906004016127ea565b6020604051808303816000875af11580156109ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cf9190611334565b50505050505050565b336001600160a01b0384168114801590610a9d5750604051631a45b42760e11b81526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000000000000000000000000000000000000000000000169063348b684e9060c401602060405180830381865afa158015610a77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9b9190612852565b155b15610ae057604051631326f75560e11b81526001600160a01b03808616600483015282166024820152604481018490526064810183905260840160405180910390fd5b50505050565b602083015151600090818167ffffffffffffffff811115610b0957610b096117f3565b604051908082528060200260200182016040528015610b4257816020015b610b2f6110a7565b815260200190600190039081610b275790505b50905060005b82811015610d6857600087602001518281518110610b6857610b686122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610d5457610d546122b6565b602090810291909101015250600101610b48565b5060408087015160608801519151632a550fab60e11b81526001600160a01b038716926354aa1f5692610da2928c9287929160040161286f565b6020604051808303816000875af1158015610dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de59190611334565b979650505050505050565b602083015151600090818167ffffffffffffffff811115610e1357610e136117f3565b604051908082528060200260200182016040528015610e4c57816020015b610e396110a7565b815260200190600190039081610e315790505b50905060005b8281101561107257600087602001518281518110610e7257610e726122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061105e5761105e6122b6565b602090810291909101015250600101610e52565b506040808701519051630e18de6b60e41b81526001600160a01b0386169163e18de6b091610da2918b918691906004016128ae565b6040805161010080820183526000808352602080840182905283850182905260608085018390526080808601849052865161028081018852848152928301849052958201839052810182905293840181905260a084810182905260c0850182905260e0850182905291840181905261012084018190526101408401819052610160840181905261018084018190526101a084018190526101c084018190526101e08401819052610200840181905261022084018190526102408401819052610260840152909190820190815260200160608152602001606081525090565b6001600160a01b038116811461119a57600080fd5b50565b80356111a881611185565b919050565b600061016082840312156111c057600080fd5b50919050565b6000608082840312156111c057600080fd5b600080600080608085870312156111ee57600080fd5b84356111f981611185565b9350602085013567ffffffffffffffff8082111561121657600080fd5b611222888389016111ad565b9450604087013591508082111561123857600080fd5b50611245878288016111c6565b925050606085013561125681611185565b939692955090935050565b6000806000806080858703121561127757600080fd5b84359350602085013567ffffffffffffffff8082111561121657600080fd5b600080600080608085870312156112ac57600080fd5b84359350602085013567ffffffffffffffff808211156112cb57600080fd5b6112d7888389016111ad565b945060408701359150808211156112ed57600080fd5b5085016060818803121561130057600080fd5b9150606085013561125681611185565b60006020828403121561132257600080fd5b815161132d81611185565b9392505050565b60006020828403121561134657600080fd5b5051919050565b8082018082111561136e57634e487b7160e01b600052601160045260246000fd5b92915050565b6000808335601e1984360301811261138b57600080fd5b830160208101925035905067ffffffffffffffff8111156113ab57600080fd5b8036038213156113ba57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008235607e1983360301811261140057600080fd5b90910192915050565b80356cffffffffffffffffffffffffff811681146111a857600080fd5b803563ffffffff811681146111a857600080fd5b803561ffff811681146111a857600080fd5b803562ffffff811681146111a857600080fd5b803560ff811681146111a857600080fd5b801515811461119a57600080fd5b80356111a881611470565b600060808084018335601e198536030181126114a457600080fd5b8401602081810191359067ffffffffffffffff8211156114c357600080fd5b6101c080830236038413156114d757600080fd5b608089529382905260a09384890160005b8481101561162357611510826114fd88611409565b6cffffffffffffffffffffffffff169052565b61151b848701611426565b63ffffffff16848301526040611532878201611426565b63ffffffff1690830152606061154987820161143a565b61ffff169083015261155c86890161119d565b6001600160a01b031688830152858701358783015260c061157e81880161144c565b62ffffff169083015260e061159487820161145f565b60ff16908301526101006115a987820161147e565b1515908301526101206115bd87820161147e565b1515908301526101406115d187820161147e565b1515908301526101606115e587820161147e565b1515908301526101806115f987820161147e565b1515908301526101a061160d87820161147e565b15159083015294820194908201906001016114e8565b5061163060208a01611426565b63ffffffff811660208c0152965061164a60408a0161145f565b60ff811660408c0152965061166160608a0161119d565b6001600160a01b03811660608c015296509998505050505050505050565b803561168a81611470565b15158252602081013561169c81611470565b1515602083015260408101356116b181611470565b1515604083015260608101356116c681611470565b8015156060840152505050565b8281526040602082015260006116e98384611374565b61016060408501526117006101a0850182846113c1565b9150506117106020850185611374565b603f19808685030160608701526117288483856113c1565b93506117376040880188611374565b93509150808685030160808701526117508484846113c1565b935061175e6060880161119d565b6001600160a01b03811660a0880152925061177c6080880188611374565b93509150808685030160c08701526117958484846113c1565b93506117a460a08801886113ea565b9250808685030160e087015250506117bc8282611489565b9150506117cb60c0850161119d565b6001600160a01b03166101008401526117eb610120840160e0860161167f565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405290565b6040805190810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405160c0810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516080810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051610100810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516060810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051601f8201601f1916810167ffffffffffffffff8111828210171561190c5761190c6117f3565b604052919050565b600082601f83011261192557600080fd5b813567ffffffffffffffff81111561193f5761193f6117f3565b611952601f8201601f19166020016118e3565b81815284602083860101111561196757600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff82111561199e5761199e6117f3565b5060051b60200190565b803565ffffffffffff811681146111a857600080fd5b80356dffffffffffffffffffffffffffff811681146111a857600080fd5b600061022082840312156119ef57600080fd5b6119f7611809565b9050611a028261143a565b8152611a106020830161143a565b6020820152611a2160408301611426565b6040820152611a326060830161147e565b6060820152611a436080830161147e565b6080820152611a5460a0830161147e565b60a0820152611a6560c0830161147e565b60c0820152611a7660e0830161147e565b60e0820152610100611a8981840161147e565b90820152610120611a9b83820161147e565b90820152610140611aad83820161147e565b90820152610160611abf83820161147e565b90820152610180611ad183820161147e565b908201526101a0611ae383820161147e565b908201526101c0611af583820161147e565b908201526101e0611b0783820161147e565b90820152610200611b1983820161143a565b9082015292915050565b803566ffffffffffffff811681146111a857600080fd5b600082601f830112611b4b57600080fd5b81356020611b60611b5b83611984565b6118e3565b82815260059290921b84018101918181019086841115611b7f57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ba357600080fd5b908801906040828b03601f1901811315611bbc57600080fd5b611bc4611833565b8784013581528184013583811115611bdb57600080fd5b8085019450508b603f850112611bf057600080fd5b878401359250611c02611b5b84611984565b83815260c09093028401820192888101908d851115611c2057600080fd5b948301945b84861015611cb95760c0868f031215611c3d57600080fd5b611c45611856565b8635611c5081611470565b8152611c5d878c01611426565b8b820152611c6c858801611b23565b858201526060870135611c7e81611185565b6060820152611c8f608088016119a8565b608082015260a0870135611ca281611185565b60a0820152825260c0959095019490890190611c25565b828a0152508652505050918301918301611b83565b509695505050505050565b600082601f830112611cea57600080fd5b81356020611cfa611b5b83611984565b82815260069290921b84018101918181019086841115611d1957600080fd5b8286015b84811015611cce5760408189031215611d365760008081fd5b611d3e611833565b81357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81168114611d6b5760008081fd5b8152611d78828601611426565b81860152835291830191604001611d1d565b600082601f830112611d9b57600080fd5b81356020611dab611b5b83611984565b82815260059290921b84018101918181019086841115611dca57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611def5760008081fd5b908801906080828b03601f1901811315611e095760008081fd5b611e11611879565b87840135611e1e81611185565b8152604084810135611e2f81611185565b828a015260608581013585811115611e475760008081fd5b611e558f8c838a0101611cd9565b8484015250928501359284841115611e6f57600091508182fd5b611e7d8e8b86890101611cd9565b90830152508652505050918301918301611dce565b600082601f830112611ea357600080fd5b81356020611eb3611b5b83611984565b82815260059290921b84018101918181019086841115611ed257600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ef75760008081fd5b90880190610300828b03601f1901811315611f125760008081fd5b611f1a61189c565b611f258885016119a8565b81526040611f34818601611426565b898301526060611f458187016119be565b8284015260809150611f58828701611426565b9083015260a0611f6986820161119d565b8284015260c09150611f7d8e8388016119dc565b908301526102e085013584811115611f955760008081fd5b611fa38e8b83890101611b3a565b82840152505081840135915082821115611fbd5760008081fd5b611fcb8c8984870101611d8a565b60e08201528652505050918301918301611ed6565b600082601f830112611ff157600080fd5b81356020612001611b5b83611984565b82815260059290921b8401810191818101908684111561202057600080fd5b8286015b84811015611cce57803567ffffffffffffffff8082111561204457600080fd5b908801906040828b03601f190181131561205d57600080fd5b612065611833565b8784013561207281611185565b8152838201358381111561208557600080fd5b8085019450508b603f85011261209a57600080fd5b8784013592506120ac611b5b84611984565b83815260609093028401820192888101908d8511156120ca57600080fd5b948301945b8486101561212c576060868f0312156120e757600080fd5b6120ef6118c0565b86356120fa81611185565b8152612107878c0161145f565b8b820152612116858801611426565b81860152825260609590950194908901906120cf565b828a0152508652505050918301918301612024565b60006080823603121561215357600080fd5b61215b611879565b823567ffffffffffffffff8082111561217357600080fd5b61217f36838701611914565b8352602085013591508082111561219557600080fd5b6121a136838701611e92565b602084015260408501359150808211156121ba57600080fd5b6121c636838701611fe0565b604084015260608501359150808211156121df57600080fd5b506121ec36828601611914565b60608301525092915050565b60006080823603121561220a57600080fd5b612212611879565b61221b83611b23565b8152602083013567ffffffffffffffff8082111561219557600080fd5b60006060823603121561224a57600080fd5b6122526118c0565b61225b83611b23565b8152602083013567ffffffffffffffff8082111561227857600080fd5b61228436838701611e92565b6020840152604085013591508082111561229d57600080fd5b506122aa36828601611914565b60408301525092915050565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156122f2576020818501810151868301820152016122d6565b506000602082860101526020601f19601f83011685010191505092915050565b805161ffff168252602081015161232f602084018261ffff169052565b506040810151612347604084018263ffffffff169052565b50606081015161235b606084018215159052565b50608081015161236f608084018215159052565b5060a081015161238360a084018215159052565b5060c081015161239760c084018215159052565b5060e08101516123ab60e084018215159052565b5061010081810151151590830152610120808201511515908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c0808201511515908301526101e0808201511515908301526102008082015115159083015261022080820151151590830152610240808201516001600160a01b0316908301526102608082015161ffff811682850152610ae0565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180518552850151604086860181905281518187018190529187019160609081880190865b8181101561251d5785518051151584528b81015163ffffffff168c8501528581015166ffffffffffffff1686850152848101516001600160a01b039081168686015260808083015165ffffffffffff169086015260a0918201511690840152948a019460c0909201916001016124ac565b50509c88019c965050509285019250600101612475565b509198975050505050505050565b60008151808452602080850194506020840160005b838110156125a257815180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16885283015163ffffffff168388015260409096019590820190600101612557565b509495945050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f19868403018952815160806001600160a01b038083511686528087840151168787015250604080830151828288015261260f83880182612542565b925050506060808301519250858203818701525061262d8183612542565b9a86019a94505050908301906001016125ca565b5090979650505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f198684030189528151805165ffffffffffff1684528481015163ffffffff908116868601526040808301516dffffffffffffffffffffffffffff1690860152606080830151909116908501526080808201516001600160a01b03169085015260a08082015161036091906126eb82880182612312565b505060c08201518161032087015261270582870182612457565b91505060e0820151915084810361034086015261272281836125ad565b9a86019a945050509083019060010161266b565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180516001600160a01b03908116865290860151604087870181905281518188018190529188019290916060919082890190875b818110156127d25786518051851684528c81015160ff168d85015286015163ffffffff1686840152958b01959184019160010161279a565b50509d89019d97505050938601935050600101612754565b6001600160a01b038616815260a06020820152600061280c60a08301876122cc565b828103604084015261281e818761264e565b905082810360608401526128328186612736565b9050828103608084015261284681856122cc565b98975050505050505050565b60006020828403121561286457600080fd5b815161132d81611470565b848152608060208201526000612888608083018661264e565b828103604084015261289a8186612736565b90508281036060840152610de581856122cc565b8381526060602082015260006128c7606083018561264e565b82810360408401526128d981856122cc565b969550505050505056fea2646970667358221220fe9aeb2923c79b329e15f469ded294b7c8f953591673f78360a251462b46f9d064736f6c63430008170033000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad220000000000000000000000004cdb4200e4e65a277676cd5e8d3c7c7c4da7fbe50000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be", + "gas": "2746503", + "operation": 0, + "requireSuccess": true + } + ], + "sphinxConfig": { + "projectName": "nana-721-hook-testnet", + "orgId": "my-org-id", + "owners": [ + "0xba5ed94ab173e1242638F28d1449b24F1A883292" + ], + "mainnets": [ + "ethereum", + "optimism", + "base", + "arbitrum" + ], + "testnets": [ + "ethereum_sepolia", + "optimism_sepolia", + "base_sepolia", + "arbitrum_sepolia" + ], + "threshold": "1", + "saltNonce": "12" + }, + "executionMode": 2, + "initialState": { + "isSafeDeployed": true, + "isModuleDeployed": true, + "isExecuting": false + }, + "unlabeledContracts": [], + "arbitraryChain": false, + "libraries": [], + "gitCommit": "ad100ab7826a4aace8ac39612835a18c1e961ec2", + "safeInitData": null +} \ No newline at end of file diff --git a/deployments/nana-721-hook-testnet/optimism_sepolia/JB721TiersHookProjectDeployer.json b/deployments/nana-721-hook-testnet/optimism_sepolia/JB721TiersHookProjectDeployer.json index df084f73..c10aeaed 100644 --- a/deployments/nana-721-hook-testnet/optimism_sepolia/JB721TiersHookProjectDeployer.json +++ b/deployments/nana-721-hook-testnet/optimism_sepolia/JB721TiersHookProjectDeployer.json @@ -1,8 +1,8 @@ { "_format": "sphinx-sol-ct-artifact-1", - "merkleRoot": "0xe86112c80b3fdcd00444f5bde04496941e8a62863097b6d607d04af137595289", + "merkleRoot": "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8", "contractName": "JB721TiersHookProjectDeployer", - "address": "0x0Fa5747B59042c9C2A5A9C68C22919fa00468141", + "address": "0x0b41a8Be7E30a01A7367e06601eD204c469eF94D", "abi": [ { "type": "constructor", @@ -522,6 +522,11 @@ "name": "projectId", "type": "uint256", "internalType": "uint256" + }, + { + "name": "hook", + "type": "address", + "internalType": "contract IJB721TiersHook" } ], "stateMutability": "nonpayable" @@ -984,6 +989,11 @@ "name": "rulesetId", "type": "uint256", "internalType": "uint256" + }, + { + "name": "hook", + "type": "address", + "internalType": "contract IJB721TiersHook" } ], "stateMutability": "nonpayable" @@ -1412,6 +1422,11 @@ "name": "rulesetId", "type": "uint256", "internalType": "uint256" + }, + { + "name": "hook", + "type": "address", + "internalType": "contract IJB721TiersHook" } ], "stateMutability": "nonpayable" @@ -1443,85 +1458,85 @@ ] } ], - "solcInputHash": "30cd0d125ed0677fcbbeafa2ca950580", + "solcInputHash": "2fd444c97aa0fa789adae5192c86e854", "receipt": { - "blockHash": "0xcc280ec0524917154243b39c0f97f63741688a7a5440f25cfc2633ffb7a0cbbb", - "blockNumber": 17357693, + "blockHash": "0xc915b27e3217a41600651f1cc07b08418770b6bb7df0d29897c8cc5a483e77c1", + "blockNumber": 17489747, "contractAddress": null, - "cumulativeGasUsed": "4809839", + "cumulativeGasUsed": "5069869", "from": "0x0c1c9049564269275059032Fb484Aa2e7Ab779af", - "gasPrice": "1000270", - "gasUsed": "2496002", - "hash": "0x23b5e4d8b966805484e43945a13313792721da7b9939dc04e042e89191f0d120", - "index": 7, + "gasPrice": "1000288", + "gasUsed": "2498301", + "hash": "0x351f39e1a1817d6fb2f5e225fe6de2c97554fce300b9ff50b90089ec233f6589", + "index": 5, "logs": [ { "address": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463", - "blockHash": "0xcc280ec0524917154243b39c0f97f63741688a7a5440f25cfc2633ffb7a0cbbb", - "blockNumber": 17357693, + "blockHash": "0xc915b27e3217a41600651f1cc07b08418770b6bb7df0d29897c8cc5a483e77c1", + "blockNumber": 17489747, "data": "0x0000000000000000000000000000000000000000000000000000000000000000", - "index": 20, + "index": 23, "topics": [ "0x572f161235911da04685a68c06adf558fc7e4a36909dca394650e0adc19cc93d", "0x0000000000000000000000000c1c9049564269275059032fb484aa2e7ab779af", "0x000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c3", - "0xe43f47a2c6c61e7d5eb8e0ae2a633da119b79e85a714a74f70c4815c0d1713e9" + "0x6329e7957382a54508a0f820e3c660799f769f199a06f666aa818cf509900b43" ], - "transactionHash": "0x23b5e4d8b966805484e43945a13313792721da7b9939dc04e042e89191f0d120", - "transactionIndex": 7 + "transactionHash": "0x351f39e1a1817d6fb2f5e225fe6de2c97554fce300b9ff50b90089ec233f6589", + "transactionIndex": 5 }, { "address": "0x94BBb774520C1E0Bd2aFb9b3B63cc11102ED7A7B", - "blockHash": "0xcc280ec0524917154243b39c0f97f63741688a7a5440f25cfc2633ffb7a0cbbb", - "blockNumber": 17357693, + "blockHash": "0xc915b27e3217a41600651f1cc07b08418770b6bb7df0d29897c8cc5a483e77c1", + "blockNumber": 17489747, "data": "0x", - "index": 21, + "index": 24, "topics": [ "0x6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8", "0x000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c3" ], - "transactionHash": "0x23b5e4d8b966805484e43945a13313792721da7b9939dc04e042e89191f0d120", - "transactionIndex": 7 + "transactionHash": "0x351f39e1a1817d6fb2f5e225fe6de2c97554fce300b9ff50b90089ec233f6589", + "transactionIndex": 5 }, { "address": "0xcd414DF3f7b7dA1F867fF6B5499879308087F0c3", - "blockHash": "0xcc280ec0524917154243b39c0f97f63741688a7a5440f25cfc2633ffb7a0cbbb", - "blockNumber": 17357693, - "data": "0x0000000000000000000000000000000000000000000000000000000000000004", - "index": 22, + "blockHash": "0xc915b27e3217a41600651f1cc07b08418770b6bb7df0d29897c8cc5a483e77c1", + "blockNumber": 17489747, + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "index": 25, "topics": [ "0xa65fb05c5808f5f389d72edeaf719ce38f4cc55c1f69ca3cbfb31c21501caa07", - "0xe86112c80b3fdcd00444f5bde04496941e8a62863097b6d607d04af137595289" + "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8" ], - "transactionHash": "0x23b5e4d8b966805484e43945a13313792721da7b9939dc04e042e89191f0d120", - "transactionIndex": 7 + "transactionHash": "0x351f39e1a1817d6fb2f5e225fe6de2c97554fce300b9ff50b90089ec233f6589", + "transactionIndex": 5 }, { "address": "0xcd414DF3f7b7dA1F867fF6B5499879308087F0c3", - "blockHash": "0xcc280ec0524917154243b39c0f97f63741688a7a5440f25cfc2633ffb7a0cbbb", - "blockNumber": 17357693, + "blockHash": "0xc915b27e3217a41600651f1cc07b08418770b6bb7df0d29897c8cc5a483e77c1", + "blockNumber": 17489747, "data": "0x", - "index": 23, + "index": 26, "topics": [ "0x4383d976757d67ca920616be0b6430a681ea9d3dcce8d6d61d4603ca4a9bff63", - "0xe86112c80b3fdcd00444f5bde04496941e8a62863097b6d607d04af137595289" + "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8" ], - "transactionHash": "0x23b5e4d8b966805484e43945a13313792721da7b9939dc04e042e89191f0d120", - "transactionIndex": 7 + "transactionHash": "0x351f39e1a1817d6fb2f5e225fe6de2c97554fce300b9ff50b90089ec233f6589", + "transactionIndex": 5 } ], - "logsBloom": "0x00000000000010000000000000080000000000000000000000000000000000000080000000000000000000000040020000100000000000000020000000000000000200000000210000000000000000000010000001000000080000000000000000000000000000000000000000040000000000000000000000000000000000004000000000000200000100000000000000000000008000000000000000000010004000800000000000000002000000002200000000000000100002000004000000000002000000000000000000000000040000000000000000000000000000000000000000000008000000000000000200000000000080000000000008000000", + "logsBloom": "0x00000000000010000000000000080000000000000000000000000000000000000080000000000000000000000040020000100000000000000020000000000000000000000000220000000000000000000010000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000004000000000000000000100000000000008000000008000000000000000000000004000800000000000000002000000802200000000000000100002000004000000000002000000000000000000000000040000000000000000000000000000000000000000000008000000000000000240000040000080800000000008000000", "status": 1, "to": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463" }, - "metadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IJBDirectory\",\"name\":\"directory\",\"type\":\"address\"},{\"internalType\":\"contract IJBPermissions\",\"name\":\"permissions\",\"type\":\"address\"},{\"internalType\":\"contract IJB721TiersHookDeployer\",\"name\":\"hookDeployer\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"permissionId\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBPermissioned_Unauthorized\"},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DIRECTORY\",\"outputs\":[{\"internalType\":\"contract IJBDirectory\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"HOOK_DEPLOYER\",\"outputs\":[{\"internalType\":\"contract IJB721TiersHookDeployer\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"PERMISSIONS\",\"outputs\":[{\"internalType\":\"contract IJBPermissions\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"struct JBDeploy721TiersHookConfig\",\"name\":\"deployTiersHookConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"contract IJB721TokenUriResolver\",\"name\":\"tokenUriResolver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"},{\"internalType\":\"struct JB721InitTiersConfig\",\"name\":\"tiersConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JB721TierConfig[]\",\"name\":\"tiers\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"votingUnits\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useReserveBeneficiaryAsDefault\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useVotingUnits\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotIncreaseDiscountPercent\",\"type\":\"bool\"}]},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"contract IJBPrices\",\"name\":\"prices\",\"type\":\"address\"}]},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"struct JB721TiersHookFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"noNewTiersWithReserves\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithVotes\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"preventOverspending\",\"type\":\"bool\"}]}]},{\"internalType\":\"struct JBLaunchProjectConfig\",\"name\":\"launchProjectConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"projectUri\",\"type\":\"string\"},{\"internalType\":\"struct JBPayDataHookRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"decayPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBPayDataHookRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"redemptionRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowCrosschainSuckerExtension\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useTotalSurplusForRedemptions\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForRedeem\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"struct JBTerminalConfig[]\",\"name\":\"terminalConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"contract IJBTerminal\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"struct JBAccountingContext[]\",\"name\":\"accountingContextsToAccept\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}]},{\"internalType\":\"contract IJBController\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"launchProjectFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBDeploy721TiersHookConfig\",\"name\":\"deployTiersHookConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"contract IJB721TokenUriResolver\",\"name\":\"tokenUriResolver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"},{\"internalType\":\"struct JB721InitTiersConfig\",\"name\":\"tiersConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JB721TierConfig[]\",\"name\":\"tiers\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"votingUnits\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useReserveBeneficiaryAsDefault\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useVotingUnits\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotIncreaseDiscountPercent\",\"type\":\"bool\"}]},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"contract IJBPrices\",\"name\":\"prices\",\"type\":\"address\"}]},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"struct JB721TiersHookFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"noNewTiersWithReserves\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithVotes\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"preventOverspending\",\"type\":\"bool\"}]}]},{\"internalType\":\"struct JBLaunchRulesetsConfig\",\"name\":\"launchRulesetsConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"struct JBPayDataHookRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"decayPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBPayDataHookRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"redemptionRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowCrosschainSuckerExtension\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useTotalSurplusForRedemptions\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForRedeem\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"struct JBTerminalConfig[]\",\"name\":\"terminalConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"contract IJBTerminal\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"struct JBAccountingContext[]\",\"name\":\"accountingContextsToAccept\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}]},{\"internalType\":\"contract IJBController\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"launchRulesetsFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rulesetId\",\"type\":\"uint256\"}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBDeploy721TiersHookConfig\",\"name\":\"deployTiersHookConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"contract IJB721TokenUriResolver\",\"name\":\"tokenUriResolver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"},{\"internalType\":\"struct JB721InitTiersConfig\",\"name\":\"tiersConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JB721TierConfig[]\",\"name\":\"tiers\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"votingUnits\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useReserveBeneficiaryAsDefault\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useVotingUnits\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotIncreaseDiscountPercent\",\"type\":\"bool\"}]},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"contract IJBPrices\",\"name\":\"prices\",\"type\":\"address\"}]},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"struct JB721TiersHookFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"noNewTiersWithReserves\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithVotes\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"preventOverspending\",\"type\":\"bool\"}]}]},{\"internalType\":\"struct JBQueueRulesetsConfig\",\"name\":\"queueRulesetsConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"struct JBPayDataHookRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"decayPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBPayDataHookRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"redemptionRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowCrosschainSuckerExtension\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useTotalSurplusForRedemptions\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForRedeem\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}]},{\"internalType\":\"contract IJBController\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"queueRulesetsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rulesetId\",\"type\":\"uint256\"}]}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"directory\":\"The directory of terminals and controllers for projects.\",\"hookDeployer\":\"The 721 tiers hook deployer.\",\"permissions\":\"A contract storing permissions.\"}},\"launchProjectFor(address,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(string,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"params\":{\"controller\":\"The controller that the project's rulesets will be queued with.\",\"deployTiersHookConfig\":\"Configuration which dictates the behavior of the 721 tiers hook which is being deployed.\",\"launchProjectConfig\":\"Configuration which dictates the behavior of the project which is being launched.\",\"owner\":\"The address to set as the owner of the project. The ERC-721 which confers this project's ownership will be sent to this address.\"},\"returns\":{\"projectId\":\"The ID of the newly launched project.\"}},\"launchRulesetsFor(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"details\":\"Only a project's owner or an operator with the `QUEUE_RULESETS` permission can launch its rulesets.\",\"params\":{\"controller\":\"The controller that the project's rulesets will be queued with.\",\"deployTiersHookConfig\":\"Configuration which dictates the behavior of the 721 tiers hook which is being deployed.\",\"launchRulesetsConfig\":\"Configuration which dictates the project's new rulesets.\",\"projectId\":\"The ID of the project that rulesets are being launched for.\"},\"returns\":{\"rulesetId\":\"The ID of the successfully created ruleset.\"}},\"queueRulesetsOf(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],string),address)\":{\"details\":\"Only a project's owner or an operator with the `QUEUE_RULESETS` permission can queue its rulesets.\",\"params\":{\"controller\":\"The controller that the project's rulesets will be queued with.\",\"deployTiersHookConfig\":\"Configuration which dictates the behavior of the 721 tiers hook which is being deployed.\",\"projectId\":\"The ID of the project that rulesets are being queued for.\",\"queueRulesetsConfig\":\"Configuration which dictates the project's newly queued rulesets.\"},\"returns\":{\"rulesetId\":\"The ID of the successfully created ruleset.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DIRECTORY()\":{\"notice\":\"The directory of terminals and controllers for projects.\"},\"HOOK_DEPLOYER()\":{\"notice\":\"The 721 tiers hook deployer.\"},\"PERMISSIONS()\":{\"notice\":\"A contract storing permissions.\"},\"launchProjectFor(address,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(string,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"notice\":\"Launches a new project with a 721 tiers hook attached.\"},\"launchRulesetsFor(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"notice\":\"Launches rulesets for a project with an attached 721 tiers hook.\"},\"queueRulesetsOf(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],string),address)\":{\"notice\":\"Queues rulesets for a project with an attached 721 tiers hook.\"}},\"version\":1}},\"settings\":{\"remappings\":[\"@bananapus/=node_modules/@bananapus/\",\"@chainlink/=node_modules/@chainlink/\",\"@eth-optimism/=node_modules/@eth-optimism/\",\"@openzeppelin/=node_modules/@openzeppelin/\",\"@prb/=node_modules/@prb/\",\"@scroll-tech/=node_modules/@scroll-tech/\",\"@sphinx-labs/contracts/=node_modules/@sphinx-labs/contracts/contracts/foundry/\",\"@uniswap/=node_modules/@uniswap/\",\"ds-test/=lib/forge-std/lib/ds-test/src/\",\"forge-std/=lib/forge-std/src/\",\"hardhat/=node_modules/hardhat/\",\"solmate/=node_modules/solmate/\",\"sphinx/=lib/sphinx/packages/contracts/contracts/forge-std/src/\"],\"optimizer\":{\"enabled\":true,\"runs\":800},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"compilationTarget\":{\"src/JB721TiersHookProjectDeployer.sol\":\"JB721TiersHookProjectDeployer\"},\"evmVersion\":\"paris\",\"libraries\":{}},\"sources\":{\"node_modules/@bananapus/core/src/abstract/JBPermissioned.sol\":{\"keccak256\":\"0xbaaa61c6aa043522617d3c1a86960c23b9978ee2a6c9d593b00beeeb6ce64423\",\"urls\":[\"bzz-raw://09beed8608e02ce9dbf28814309aaf62c9eec67e0701a26113bdbb4cbae56c42\",\"dweb:/ipfs/QmZrHFnpjX9uBzbFrSjqQgQBkvpJ1ZyvjtT9RfneNGv32S\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/enums/JBApprovalStatus.sol\":{\"keccak256\":\"0x61c69b6bac7d24b566d87cda23a77e4ca9cdb87200b106aba8534cb9a0973e33\",\"urls\":[\"bzz-raw://6a9ca7249de76f77a8252eefe6bd1b63d47952f25a2acfa2c8db967cdff4470c\",\"dweb:/ipfs/QmaxSxptRQNj8bNy96EreENmrnRWdKmhyihBcxyWzBX5BN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBController.sol\":{\"keccak256\":\"0xf577428966a4db4ca17fb73abf2ff2e21cc0e231df2d7247bf410f926d6cb5f7\",\"urls\":[\"bzz-raw://7c1d847382f731b8c464b55ead0ed5c517aa3fa606aaf78b7881aab18108d504\",\"dweb:/ipfs/QmXW3DpPgjYw33A8bMxJFRVZRYjCnWTp28M8sSdPHbDq7E\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBDirectory.sol\":{\"keccak256\":\"0xcb97db460d2948a7f51c660fe0d1b1749047a419027711c476b86ad3573534c5\",\"urls\":[\"bzz-raw://a909c7a3d471054537894dca827e6e018e92ac25299b43026e5b1e335ec4de68\",\"dweb:/ipfs/QmU1GT3F8PNMjSiPPP5cSLLofefHYFJXnywMCdqqM9xUeh\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBDirectoryAccessControl.sol\":{\"keccak256\":\"0x1ea768919979d9f625920c05a5e633739febc822ce14b1e4724d739b19c10fb8\",\"urls\":[\"bzz-raw://7c5391a510bd610a97978245b7306d8d21c79d7c45c15f590ba9b603ea751154\",\"dweb:/ipfs/QmPSJvVWswqzv3bVq422UhA2BybMsiHoYFWGPp5Jh6Xs6a\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBFundAccessLimits.sol\":{\"keccak256\":\"0xfd8ea4cffd289e7fef6e53b5c8983eb6b941de306517f40c047048d3a8a2ca08\",\"urls\":[\"bzz-raw://2765cdee206f8b1b53874448e2481db001cd3706753190cfc9381318c7a7c41c\",\"dweb:/ipfs/QmQ5UYSadtzrb7BcTR93KnAYKXawdyDUG5HjjASV1zbys5\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPayHook.sol\":{\"keccak256\":\"0x9438866782c652c2942f4d114e35f393cd3c8b0334abce8387eed90bca35e8b2\",\"urls\":[\"bzz-raw://cfd99daf57213f92325aad7d7d16e98476d38e870470e95ba01e3ae3cdecc95d\",\"dweb:/ipfs/QmUKKAVGf7ki8BHksr99tFcRW8APveeB5tNH63ctTbbCW8\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPermissioned.sol\":{\"keccak256\":\"0x5b038d4dee116584e88b230920e56d48e135053e3f7e5642eaea14a775c1dad7\",\"urls\":[\"bzz-raw://19e43102f349fd4a1da1c0943ffb8f2950007fe4bb4bb7e8f74fc142575d091b\",\"dweb:/ipfs/QmXHAt4KzDTdDZgDDefEXH2WKi7NcfkJb9R7nxW5uDqsNp\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPermissions.sol\":{\"keccak256\":\"0x49d2b91a866004af098a6770b28040071885b048b4b50744b12a1e5b212c5e5e\",\"urls\":[\"bzz-raw://089b4dda50be91412ffe1fbe333f78cc894f073c1a7afe469f10a2cee12fbf9e\",\"dweb:/ipfs/QmYPPBZ6HwBa1RNkNGqGcR2xgj4fnWBzrPHHoJG3kZA6AN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPriceFeed.sol\":{\"keccak256\":\"0x4bd84c0f1a5d4729ed709bcddd43f4c50ec4a165ece79780af8dce482ed07d4a\",\"urls\":[\"bzz-raw://62bac4bfb6982fb002f620c77e5c445e62d50241a5aa64a07e51d929f5a42180\",\"dweb:/ipfs/QmWgJUDreVY2BuMX38a1iUUR5kNbMwGnKG3VvurB7oZtuM\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPrices.sol\":{\"keccak256\":\"0xb4d5244daa52aafab0c9b8806b7f973afa6a3b298add5966d586d27b78424cfb\",\"urls\":[\"bzz-raw://a819f74455aaa4f679ded378424702f3992608a640d7f943b19938eb4ff711da\",\"dweb:/ipfs/QmSMGvVTsMW3L5YSUyXTKoEsgNpGEutnq4frEZHuDdeDvz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBProjectUriRegistry.sol\":{\"keccak256\":\"0xc9ab647179d7d0c857fdd881d6ce96f06254739440ed08e85a1c2042218f7c7d\",\"urls\":[\"bzz-raw://8529368f30c98c8d5a69acdbe4ac79e3eeb4afa5a9cd278325c5f2184ef3d50f\",\"dweb:/ipfs/QmfUaozYiAGt1UwBDUEZvon1tEBS5sLPzqpN9dNdjQotPN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBProjects.sol\":{\"keccak256\":\"0x4ae42a9cc29b517b26d2b9b635deb82c16696b777deeca92dfcad33b0f81c0a0\",\"urls\":[\"bzz-raw://1dcbd860e7d7f05232d90c5e9cfd3d01e2ce986ffcdb053473d8a4d387b1a48a\",\"dweb:/ipfs/QmWKWoSJJbVWDumbnzXJBJyXmAacgC97bxMtchh8te41bn\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBRulesetApprovalHook.sol\":{\"keccak256\":\"0x592e95d159494421c6b1bcb362d0cee1df0132921697351304e9cd7af4fbd386\",\"urls\":[\"bzz-raw://5bebfd5fa67c1b6ea16fa2e76e9520e9dfe52a579f48dd94d0c2ec45f78ad178\",\"dweb:/ipfs/QmRUawEGtfYoYSHmHELGhvJoWuMsxLPKtqAXgsrb7fJboP\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBRulesets.sol\":{\"keccak256\":\"0x29b56a91e8cd4d3e718e18cd934eccbc22c668d08dc26adb43c958722497d3ab\",\"urls\":[\"bzz-raw://7ae1a723eaf16809b9bd73cd235985801aff85283976be342416fa301c3b4793\",\"dweb:/ipfs/QmZYSY7C9dPvR5EnT8YCjVSy842dBVP3wZdYQ71wyPkx2F\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBSplitHook.sol\":{\"keccak256\":\"0xeb8dfac7a4b81897a1c3b5d0d853a406bcff33720fb187d5ca5bb3dcc0ba3a12\",\"urls\":[\"bzz-raw://36aaeef6107cfe5b0127e063ea215aac7200f8af02e28a48e61111abd3254688\",\"dweb:/ipfs/QmQ8yQANXnhQCAWBGKsKCDsJ3A8hnTKNg5tyo79GfWXTcV\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBSplits.sol\":{\"keccak256\":\"0x424e6d1189b9ba7a5d441e7675ae09ff893c13c62b9ddde4dd6bc2690e96c6f3\",\"urls\":[\"bzz-raw://7e30ed7ab1daf20ff324aacfef7150a243b5db496eceaf032c7012ccb3c4227d\",\"dweb:/ipfs/QmRj5EZKmDjJy8tpvKbpz8vPSKHR5C9Q5ENe7oSLij4H8M\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBTerminal.sol\":{\"keccak256\":\"0xe440530f1d0cc16578981e1d2e4e13674360c677d19a74a4b08f9f7268c70aee\",\"urls\":[\"bzz-raw://ddea4aeaf523f48a1364a02d2ccb75f3dfd8a2b9af465964e9adf3ce53f4196a\",\"dweb:/ipfs/QmVWhN1Nn9khUN8ctAgh2Ypo2vnFBgDHtDw6S232A6RkFw\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBToken.sol\":{\"keccak256\":\"0xd33757cd3da65a9d66404b7e6ddb7a27b4902885a3498b9db1673c218e9fab2d\",\"urls\":[\"bzz-raw://de28759920dab1db6cfcb4ff2ffae76491be371b791a2a0ec054ff17653872dc\",\"dweb:/ipfs/QmPXnhdxbgoV4dBRJCi9siQYRfrvcJLDtY1rp3H2vtU1Cz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBTokenUriResolver.sol\":{\"keccak256\":\"0xfa5cb00dcd6085d1ef912d071fe73c63f9478a2cd0f9d8bddaf659b6af2d0967\",\"urls\":[\"bzz-raw://282e4e7c342d65f77cde0e9a08fcaf20ef5cf379c7a48b639842c0ffd0b2afb8\",\"dweb:/ipfs/QmbnN3PEQeZaXdPLT75V1J79kMg7KqSMru37RHrL3z8Yf2\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBTokens.sol\":{\"keccak256\":\"0x1348b416ebf501409acc9970d46be89ffd076566001ceff9b96fce1b0b2c405d\",\"urls\":[\"bzz-raw://74327019f5174345afed10d9a60caa9ef908382e131882c27588b13be8364b36\",\"dweb:/ipfs/QmZAqB6hFSymTEbjqHWgE4t9NRose9AJh4etGyWnvDkhJt\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBAccountingContext.sol\":{\"keccak256\":\"0x9c47e048a719f784f601df69a583505432217b9868a0244876d277f84dd1ebdf\",\"urls\":[\"bzz-raw://8565f194b87914da9a02af2e760ae2ed2a9d185c6f11229f7035140776d2fec9\",\"dweb:/ipfs/QmPs2fic8W3F5e5zNRwmGmJFjb3JWGPWJ3YUe5o82nQgEn\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBAfterPayRecordedContext.sol\":{\"keccak256\":\"0xd26c3a774ff38be79064085970454fe2603a23a638c76270d5b1b3829206c3e8\",\"urls\":[\"bzz-raw://3b55dbe3bf1ef625b7ca04efab3de35406e6041d5b3d82c7265469c500e2b702\",\"dweb:/ipfs/QmUdBDo4Lt3mcsFcsXT2mqq3czFwZjQJFPLM89YA2VtD7k\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBCurrencyAmount.sol\":{\"keccak256\":\"0x7f321bbcbd13abfbc8f0d08a5adaaf8ef312db5bb899012fcffb6170fbb962a9\",\"urls\":[\"bzz-raw://bf9301ef1dbb3abda7b492585377617508ba048c6170f21a5e7d2b3c034eb384\",\"dweb:/ipfs/QmcetEFxSYLLNSZzPBpNn3Fc8sFcrFE8A8h12ZSj2tLgxD\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBFundAccessLimitGroup.sol\":{\"keccak256\":\"0x9fdaa8d017b72da25f583700a444a86849df053f7fb8eac874ec5139bcf651e5\",\"urls\":[\"bzz-raw://c8e44c49ee444a98424a0dbeb6897a76a0bf00d88a613f62ac2012afdac754ee\",\"dweb:/ipfs/QmdYkAiRi5bXM1YYNkc7BiqimHSFodMGn1cjHR5hcpm4xH\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBPermissionsData.sol\":{\"keccak256\":\"0xd5a5fe65b1deb40b5cd9c8e05bc1352d0e95f3a18b4986fab7abdc621beb19c7\",\"urls\":[\"bzz-raw://a6141eaa414d3d61de671ae3584b87e98044bf6392cb94d2acd1bb5cc7c19db4\",\"dweb:/ipfs/QmbtvALmburKLRC5fHXscoeZii1N2qQrJAdqarfvSKaKEk\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRuleset.sol\":{\"keccak256\":\"0x03ad7bd257d4ac55ecc42b85156dce1c70eec8572dbf8feb093c033912f305e7\",\"urls\":[\"bzz-raw://9665b4c018cd469f94bec4471222cc9e5fd58ac421a0959f70e72618fe37d55b\",\"dweb:/ipfs/QmSUf6HQv2Ckcoy5tSH1UPdD8vDMerfK29G8kaxmxB3Kow\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRulesetConfig.sol\":{\"keccak256\":\"0x7a57ed3d73bd9457d8e1fb40f5204c364df87cbfdbf42412d5bbc08beabb49c9\",\"urls\":[\"bzz-raw://8b9a83916ee67d32b5f434b35b171c6122bbc4efeaa4fabb8dec2ca4e9e32c6e\",\"dweb:/ipfs/QmNquzUQn6ZvE2wBcMCgru3resV9UNvBWPPetyDChoh8vM\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRulesetMetadata.sol\":{\"keccak256\":\"0x7f49fe89eefe848e6af12aa452bd882430ff35e9dd44e9ff3d7be6911496486c\",\"urls\":[\"bzz-raw://136f3baeb71f8ac1c2721eb94b1d469d35cf3fba82f9138760dde6d451d052ef\",\"dweb:/ipfs/QmVeBaYMS9K3rPfneKiVYnFXbp3X8qxrw4qhN4PmuYHppz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRulesetWithMetadata.sol\":{\"keccak256\":\"0x1bcfadf20488f6df65227f8d4d0fbf9b7539456a2389567f7fe3900d23289bc3\",\"urls\":[\"bzz-raw://0a15c399a71e5373f8c0484c6d6b83521eda31e063a2c53e4c5cec4e74550343\",\"dweb:/ipfs/QmQwi8zkjoTVXbK89NeETYimWCacTrNsesJdpLSvGdqMPX\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBSplit.sol\":{\"keccak256\":\"0x0e1351e80cf9967caee90094712a4fc884a83f07df23a844d8cb33ebcd00721e\",\"urls\":[\"bzz-raw://19d5793c08834f2ec1d6942bd43d05042b0ecc351a57235d748a8f2ff74b6638\",\"dweb:/ipfs/QmUWjyNg7x62KsvMwAzNdpmwqCo5qK5ip9pLdshj9B2Kbf\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBSplitGroup.sol\":{\"keccak256\":\"0x8dc98fa9e730bee8bcc0a8acf1bc4db1c9b0edf307d969c9c9caa4d6b8d856d9\",\"urls\":[\"bzz-raw://66f4306e0e69c82033927952564fd617e7c4b29aa8b165d5b53a0ebe3109ea12\",\"dweb:/ipfs/QmQqN1u7FHAdEtEZNRcKvZwYtXEQVQnLd6FMzHESP7wDtx\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBSplitHookContext.sol\":{\"keccak256\":\"0x1cef82bf434f91d518092ea7e57db4a72ce7654f48a7db9bf44882900b6b6623\",\"urls\":[\"bzz-raw://cc5012008ab7e74cf766fe1c202a23e3a73365356bcf1e0b04ec01baf21b204b\",\"dweb:/ipfs/QmSwJvd6Yrg9XZMhjquBcak5sfUswbR5nPEuJBfpjM54VT\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBTerminalConfig.sol\":{\"keccak256\":\"0x9e31505080d3754b6d7db96095b0545930ef6dbc035b91fcc32fdc76a0e7c2a5\",\"urls\":[\"bzz-raw://f7702ab33a1b713c37e5397a55d8ef089289f4da8034cfe9622cbc69a98c47de\",\"dweb:/ipfs/QmXyiXps4aJyiM7vtDC373QUoqwB4DMETaZzC5cZPJKaAK\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBTokenAmount.sol\":{\"keccak256\":\"0xc61593d33d5ec30e695d382948a1b944d01e29a8f2bfd29f75ecebcdbc7816de\",\"urls\":[\"bzz-raw://8992c1e5fca0c2342ecc0e734dfba6a2a752e4c29184784931d0971e44305051\",\"dweb:/ipfs/QmYNcaW3qeCkgAExUaFTq238fgfJuoYCTwjCn7jm94U4dJ\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/JBOwnable.sol\":{\"keccak256\":\"0x8cb8f41b5c3482f1eb558d49fd56b5487f1dd0ef5c29a068f0638f4fa466aa3e\",\"urls\":[\"bzz-raw://21a9da6e467b117c31eaee30a027207cd07da3311ba830f0b26a2c168ffd9b19\",\"dweb:/ipfs/QmbedU61hLHttGe2aas4zwypBy86K8kqR9fmzW8vhS4oVH\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/JBOwnableOverrides.sol\":{\"keccak256\":\"0xae09b9163b196e10f833966f11f0005001a11792bfa01167f8d693094e024e2b\",\"urls\":[\"bzz-raw://ea26b51472e4180adf37fd6b3e7ec4e4467dbf30dfe56f64a307d882c03a8a14\",\"dweb:/ipfs/QmQmz1HdxUFHYDtgYFEHsPFqTzqa7nBKw9ZCW7Xt8iUN2c\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/interfaces/IJBOwnable.sol\":{\"keccak256\":\"0xbfdca68abf028e9df18b1885b1163fa6a89bfef0878855a1834b382e2fe924b3\",\"urls\":[\"bzz-raw://34e6a3ffd79453942d74a50bed850e7cdd796dad316b6d6be2654ecd6917f62d\",\"dweb:/ipfs/QmeZ2BwJtgomDfQ8K3gJFX9L7HFTuDQJGwYPVbcMEn1xE4\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/struct/JBOwner.sol\":{\"keccak256\":\"0xb2187c4fb303e94814d192284537e4dfac85adecb309f9fa4b2beede63800fad\",\"urls\":[\"bzz-raw://c35989c4f8f77fc8357edf473acd6a223388e24341d67240fd5f66823f595a3b\",\"dweb:/ipfs/QmSFqQ1thNTo7N33TrgPTETtXc29dfgZGeRc7ZGHk1dUGh\"],\"license\":\"MIT\"},\"node_modules/@bananapus/permission-ids/src/JBPermissionIds.sol\":{\"keccak256\":\"0x089932e597c40f1d0f277f8f2acaef065aebcbe8f69012a471b1ead688ccaa47\",\"urls\":[\"bzz-raw://9d9a0a316265d86299e110d56e3f3a1ea9e685b577ef93d6af778e788c8677bb\",\"dweb:/ipfs/QmcHUMAwfdSQknLvPF5N2jT7RM7NnERK9h3kchw18iQqFB\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"],\"license\":\"MIT\"},\"src/JB721TiersHookProjectDeployer.sol\":{\"keccak256\":\"0xd6fea0166c96291b0b4654738d0426f192af6c6e911a936e22b41fab40bc7d7e\",\"urls\":[\"bzz-raw://e90ef39d1c899a46d4e620090b310a46fcb689dc52336cc246ea3d6a2af69521\",\"dweb:/ipfs/QmT5WQhoSVNKGn5dnmJDeaUJVcjt8CSBkDthaRALLRgGdF\"],\"license\":\"MIT\"},\"src/interfaces/IJB721Hook.sol\":{\"keccak256\":\"0xc4c1b2da6354c37e67e4463ca3dc652daf98769a7dc1af5b6e8bc31dc11bdc69\",\"urls\":[\"bzz-raw://583553ab050c7a96dbee7ffe8436a0f345617a816331bba0fb3d1c1e77b39110\",\"dweb:/ipfs/QmXj783jhFVdGzFqpiCgGaNjnmDE2qNGEGE7HidhzGgrSR\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHook.sol\":{\"keccak256\":\"0x1b17153dcb3901a8d9156976ffb20c1047849ad1ce94c3a1934f7ca012b45bb5\",\"urls\":[\"bzz-raw://e86b10609f4ff4279592a7c185c6b202c0ff2572fad40dcbcfab878dbc735daa\",\"dweb:/ipfs/QmSJE6yTqKuA94BKAixiEFRGUUYhwtngsYDW3VCfrbMzKP\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHookDeployer.sol\":{\"keccak256\":\"0xdcf34032c2a22a782b7121e777715766cce471e9e8186cb710865de674d646bf\",\"urls\":[\"bzz-raw://00c19707f9fd04b9393a2081a50d69a14ed37d4a8f689c39219da6379aaacb53\",\"dweb:/ipfs/QmPdJYKrEEJxVYYaoV5rVRhoBuxmBTEH7u3J2TZtom1Sof\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHookProjectDeployer.sol\":{\"keccak256\":\"0x9ec3cdc330019db6a8aeefac543f43054814e5a8a8beed15d51729e94df9ece1\",\"urls\":[\"bzz-raw://20632197d5f24e72999e3af9106fafa3fecbe1bc58c4cebb7cb7cdd73d573959\",\"dweb:/ipfs/QmdpF5NpGzWfCXupszxTjMN616vEGZtsiW35vGmTTxycwX\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHookStore.sol\":{\"keccak256\":\"0x6f3acee1130717bf1ac5c513cb167a8f121a64c047b505e9aced2b23793b79d7\",\"urls\":[\"bzz-raw://9f4dfe3be9e21c8b5446e9d37e699071f9df257a3c7a2fb8a8791e062617acbc\",\"dweb:/ipfs/QmarDks3DcMyHPVsKdj5qpma5ZBMzH8ti92MY38K76hvSA\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TokenUriResolver.sol\":{\"keccak256\":\"0xfa599167098f4459320ec4141a98a17b2dfffbce422baa27d8b4e4530f61ece1\",\"urls\":[\"bzz-raw://8b758b161f4c7b520b2c34b4d91e585e961b8f4ca278eebb91d791f7f2f45140\",\"dweb:/ipfs/QmcD9DF7NJ9QykQpT4KPzm4bs3fkjzukdAUWwdU6Atfw85\"],\"license\":\"MIT\"},\"src/structs/JB721InitTiersConfig.sol\":{\"keccak256\":\"0xff362fcd46992e56996e1b162b129a1d03ca2342a482421f279bd930b7af79dd\",\"urls\":[\"bzz-raw://56a52c0d4461fd1b278789cd31ccc77b5eab9a0d7e2fab5074bae9c8a79d0cb1\",\"dweb:/ipfs/QmagorkFXB4rEq5rfLcoZHu6jtjcMicMBPfVqMQT86xZoB\"],\"license\":\"MIT\"},\"src/structs/JB721Tier.sol\":{\"keccak256\":\"0x99232aa73d5715977332dc7c93b03552a93259e59ae00e86b4ddc200f06adaf1\",\"urls\":[\"bzz-raw://721c0cf10a29fa11677718faafb3a2ecfcb4fbe4e1c09e70a7fac681c80fcc94\",\"dweb:/ipfs/QmSUR77E9PqnpB5kBcKNz2CGBjG9XL9FH57RWVYu3Q7GMR\"],\"license\":\"MIT\"},\"src/structs/JB721TierConfig.sol\":{\"keccak256\":\"0x86e54a0de4deab9d105bf276586aebe256188b193e83eb7a6f6f93e4a29ae9c5\",\"urls\":[\"bzz-raw://04bfcc07d452c26dfc50d3a5eb62df4b3b81e063defd752e0aa5ed049a78eef4\",\"dweb:/ipfs/QmWd5nJHUvZPHxJXkrYCboXaqdtiWWkQG26sNM6qkJuAgD\"],\"license\":\"MIT\"},\"src/structs/JB721TiersHookFlags.sol\":{\"keccak256\":\"0x283d8429f31bd58875c056515aa42abd09c95362bd929e85cfc44a0d92585766\",\"urls\":[\"bzz-raw://9a580b89fe99d9f8e930c58a4d0d63a5ff7c01c79d210af01373d066c9e72ed6\",\"dweb:/ipfs/QmdY1eSGSoTjv4KSdsG4Tm5CzJN6iqk3qTRga5ZWNbejRz\"],\"license\":\"MIT\"},\"src/structs/JB721TiersMintReservesConfig.sol\":{\"keccak256\":\"0x86fe586a05e6d4bc6fab9b68996a7f4b74c5362ca6f24b9d8057ed7e4cd1c5ac\",\"urls\":[\"bzz-raw://0915f17d1f958ab1fe6b214d99ed62f1f858684898c803f1a8a6a557472dd140\",\"dweb:/ipfs/QmUhdnSV8UzkgvbtkYEKHrpyDEmc2aJxW5HQ1gucuxxu5A\"],\"license\":\"MIT\"},\"src/structs/JB721TiersSetDiscountPercentConfig.sol\":{\"keccak256\":\"0x4672eacb6b0cda5e6f5f72ddb91463c52fb90b4df421053e3b40024f19a59954\",\"urls\":[\"bzz-raw://9d8e3a0b35d6b2a6ec66527594263400189b6c766bfd6943c83704380a989aec\",\"dweb:/ipfs/QmUE7NhFWsxjFRzTuRyHJ7oRx3JXD9CnG83t29PjGAhwPR\"],\"license\":\"MIT\"},\"src/structs/JBDeploy721TiersHookConfig.sol\":{\"keccak256\":\"0x0ce457736946394772afe54d575b68a74269cbf37a250de2d27dca6d9dd45005\",\"urls\":[\"bzz-raw://2010a8f6e19354038d3906ddb174f34464c5f341103313a5c4d628aa7732d5a8\",\"dweb:/ipfs/QmU9m18oWtYNV7UHLcW9kdwE3uzoQuGBe6sASvQTk8GZRL\"],\"license\":\"MIT\"},\"src/structs/JBLaunchProjectConfig.sol\":{\"keccak256\":\"0x0a8f87072dd6e5dd7c5cd5af7153172275de7e85625aa4a97da4fed65ad5b029\",\"urls\":[\"bzz-raw://b1d230835bf8fa17e8308d5d2ce4c820c4a719f451a65477f75956e100984047\",\"dweb:/ipfs/QmX6BwoYNJx1SssBLcBoPJBsg2Hv6ZP2uErXUvoMrAaQ71\"],\"license\":\"MIT\"},\"src/structs/JBLaunchRulesetsConfig.sol\":{\"keccak256\":\"0x0088bc7133e3fae1944247370a4eec227aeae8b371534e1d54439499644c0ede\",\"urls\":[\"bzz-raw://31847d92e9eb5e3125f07c23a651c0972e1784f748c4ce9d0c66853ee892c690\",\"dweb:/ipfs/QmRmoXg2MrkUFkMkgKvU7igkHQjhStbbc6CeiHkLCYAn7P\"],\"license\":\"MIT\"},\"src/structs/JBPayDataHookRulesetConfig.sol\":{\"keccak256\":\"0x06fdbc5c40750b8d81e4c079f86a96f5ce922a0ddbb81ddc5a044aa166723f59\",\"urls\":[\"bzz-raw://b810a5768501951e08c46f1907a7f561a49c4e16f339f1679a493fcddd30cc50\",\"dweb:/ipfs/QmfCF85EAdQCnsixXCdkKb5Xz2bL9dqAoDhmiR1QoBo81P\"],\"license\":\"MIT\"},\"src/structs/JBPayDataHookRulesetMetadata.sol\":{\"keccak256\":\"0x087280b3a959933c68ad19acbf07d80f9bbf632d902986c2ff624b6c31a6eeeb\",\"urls\":[\"bzz-raw://a2ddf9483f89b8a9012bc7714db4547b68a0df5fe3bf953e190d2021377f9811\",\"dweb:/ipfs/QmZcs1fuufGwWYy4fW3puX7ZRrribMMzEyEEL7WVCnrMer\"],\"license\":\"MIT\"},\"src/structs/JBQueueRulesetsConfig.sol\":{\"keccak256\":\"0x3ad05bfa31a90070eb4a026a13d508f9a68ca2474c3737bcda97a07307ffa554\",\"urls\":[\"bzz-raw://357f0193da0840e4b012ff1f97c65c8b6f5fea39e323a3777baf2b0625491f12\",\"dweb:/ipfs/QmZkJb8MuZ3wimiV6kry4RMp9ZkUFQA9yhfJDVUWTBWFcq\"],\"license\":\"MIT\"}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IJBDirectory\",\"name\":\"directory\",\"type\":\"address\"},{\"internalType\":\"contract IJBPermissions\",\"name\":\"permissions\",\"type\":\"address\"},{\"internalType\":\"contract IJB721TiersHookDeployer\",\"name\":\"hookDeployer\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"permissionId\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBPermissioned_Unauthorized\"},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DIRECTORY\",\"outputs\":[{\"internalType\":\"contract IJBDirectory\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"HOOK_DEPLOYER\",\"outputs\":[{\"internalType\":\"contract IJB721TiersHookDeployer\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"PERMISSIONS\",\"outputs\":[{\"internalType\":\"contract IJBPermissions\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"struct JBDeploy721TiersHookConfig\",\"name\":\"deployTiersHookConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"contract IJB721TokenUriResolver\",\"name\":\"tokenUriResolver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"},{\"internalType\":\"struct JB721InitTiersConfig\",\"name\":\"tiersConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JB721TierConfig[]\",\"name\":\"tiers\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"votingUnits\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useReserveBeneficiaryAsDefault\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useVotingUnits\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotIncreaseDiscountPercent\",\"type\":\"bool\"}]},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"contract IJBPrices\",\"name\":\"prices\",\"type\":\"address\"}]},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"struct JB721TiersHookFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"noNewTiersWithReserves\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithVotes\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"preventOverspending\",\"type\":\"bool\"}]}]},{\"internalType\":\"struct JBLaunchProjectConfig\",\"name\":\"launchProjectConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"projectUri\",\"type\":\"string\"},{\"internalType\":\"struct JBPayDataHookRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"decayPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBPayDataHookRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"redemptionRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowCrosschainSuckerExtension\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useTotalSurplusForRedemptions\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForRedeem\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"struct JBTerminalConfig[]\",\"name\":\"terminalConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"contract IJBTerminal\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"struct JBAccountingContext[]\",\"name\":\"accountingContextsToAccept\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}]},{\"internalType\":\"contract IJBController\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"launchProjectFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"contract IJB721TiersHook\",\"name\":\"hook\",\"type\":\"address\"}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBDeploy721TiersHookConfig\",\"name\":\"deployTiersHookConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"contract IJB721TokenUriResolver\",\"name\":\"tokenUriResolver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"},{\"internalType\":\"struct JB721InitTiersConfig\",\"name\":\"tiersConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JB721TierConfig[]\",\"name\":\"tiers\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"votingUnits\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useReserveBeneficiaryAsDefault\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useVotingUnits\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotIncreaseDiscountPercent\",\"type\":\"bool\"}]},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"contract IJBPrices\",\"name\":\"prices\",\"type\":\"address\"}]},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"struct JB721TiersHookFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"noNewTiersWithReserves\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithVotes\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"preventOverspending\",\"type\":\"bool\"}]}]},{\"internalType\":\"struct JBLaunchRulesetsConfig\",\"name\":\"launchRulesetsConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"struct JBPayDataHookRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"decayPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBPayDataHookRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"redemptionRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowCrosschainSuckerExtension\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useTotalSurplusForRedemptions\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForRedeem\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"struct JBTerminalConfig[]\",\"name\":\"terminalConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"contract IJBTerminal\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"struct JBAccountingContext[]\",\"name\":\"accountingContextsToAccept\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}]},{\"internalType\":\"contract IJBController\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"launchRulesetsFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rulesetId\",\"type\":\"uint256\"},{\"internalType\":\"contract IJB721TiersHook\",\"name\":\"hook\",\"type\":\"address\"}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBDeploy721TiersHookConfig\",\"name\":\"deployTiersHookConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"contract IJB721TokenUriResolver\",\"name\":\"tokenUriResolver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"},{\"internalType\":\"struct JB721InitTiersConfig\",\"name\":\"tiersConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JB721TierConfig[]\",\"name\":\"tiers\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"votingUnits\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useReserveBeneficiaryAsDefault\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useVotingUnits\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotIncreaseDiscountPercent\",\"type\":\"bool\"}]},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"contract IJBPrices\",\"name\":\"prices\",\"type\":\"address\"}]},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"struct JB721TiersHookFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"noNewTiersWithReserves\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithVotes\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"preventOverspending\",\"type\":\"bool\"}]}]},{\"internalType\":\"struct JBQueueRulesetsConfig\",\"name\":\"queueRulesetsConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"struct JBPayDataHookRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"decayPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBPayDataHookRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"redemptionRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowCrosschainSuckerExtension\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useTotalSurplusForRedemptions\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForRedeem\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}]},{\"internalType\":\"contract IJBController\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"queueRulesetsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rulesetId\",\"type\":\"uint256\"},{\"internalType\":\"contract IJB721TiersHook\",\"name\":\"hook\",\"type\":\"address\"}]}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"directory\":\"The directory of terminals and controllers for projects.\",\"hookDeployer\":\"The 721 tiers hook deployer.\",\"permissions\":\"A contract storing permissions.\"}},\"launchProjectFor(address,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(string,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"params\":{\"controller\":\"The controller that the project's rulesets will be queued with.\",\"deployTiersHookConfig\":\"Configuration which dictates the behavior of the 721 tiers hook which is being deployed.\",\"launchProjectConfig\":\"Configuration which dictates the behavior of the project which is being launched.\",\"owner\":\"The address to set as the owner of the project. The ERC-721 which confers this project's ownership will be sent to this address.\"},\"returns\":{\"hook\":\"The 721 tiers hook that was deployed for the project.\",\"projectId\":\"The ID of the newly launched project.\"}},\"launchRulesetsFor(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"details\":\"Only a project's owner or an operator with the `QUEUE_RULESETS` permission can launch its rulesets.\",\"params\":{\"controller\":\"The controller that the project's rulesets will be queued with.\",\"deployTiersHookConfig\":\"Configuration which dictates the behavior of the 721 tiers hook which is being deployed.\",\"launchRulesetsConfig\":\"Configuration which dictates the project's new rulesets.\",\"projectId\":\"The ID of the project that rulesets are being launched for.\"},\"returns\":{\"hook\":\"The 721 tiers hook that was deployed for the project.\",\"rulesetId\":\"The ID of the successfully created ruleset.\"}},\"queueRulesetsOf(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],string),address)\":{\"details\":\"Only a project's owner or an operator with the `QUEUE_RULESETS` permission can queue its rulesets.\",\"params\":{\"controller\":\"The controller that the project's rulesets will be queued with.\",\"deployTiersHookConfig\":\"Configuration which dictates the behavior of the 721 tiers hook which is being deployed.\",\"projectId\":\"The ID of the project that rulesets are being queued for.\",\"queueRulesetsConfig\":\"Configuration which dictates the project's newly queued rulesets.\"},\"returns\":{\"hook\":\"The 721 tiers hook that was deployed for the project.\",\"rulesetId\":\"The ID of the successfully created ruleset.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DIRECTORY()\":{\"notice\":\"The directory of terminals and controllers for projects.\"},\"HOOK_DEPLOYER()\":{\"notice\":\"The 721 tiers hook deployer.\"},\"PERMISSIONS()\":{\"notice\":\"A contract storing permissions.\"},\"launchProjectFor(address,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(string,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"notice\":\"Launches a new project with a 721 tiers hook attached.\"},\"launchRulesetsFor(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"notice\":\"Launches rulesets for a project with an attached 721 tiers hook.\"},\"queueRulesetsOf(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],string),address)\":{\"notice\":\"Queues rulesets for a project with an attached 721 tiers hook.\"}},\"version\":1}},\"settings\":{\"remappings\":[\"@bananapus/=node_modules/@bananapus/\",\"@chainlink/=node_modules/@chainlink/\",\"@eth-optimism/=node_modules/@eth-optimism/\",\"@openzeppelin/=node_modules/@openzeppelin/\",\"@prb/=node_modules/@prb/\",\"@scroll-tech/=node_modules/@scroll-tech/\",\"@sphinx-labs/contracts/=node_modules/@sphinx-labs/contracts/contracts/foundry/\",\"@uniswap/=node_modules/@uniswap/\",\"ds-test/=lib/forge-std/lib/ds-test/src/\",\"forge-std/=lib/forge-std/src/\",\"hardhat/=node_modules/hardhat/\",\"solmate/=node_modules/solmate/\",\"sphinx/=lib/sphinx/packages/contracts/contracts/forge-std/src/\"],\"optimizer\":{\"enabled\":true,\"runs\":800},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"compilationTarget\":{\"src/JB721TiersHookProjectDeployer.sol\":\"JB721TiersHookProjectDeployer\"},\"evmVersion\":\"paris\",\"libraries\":{}},\"sources\":{\"node_modules/@bananapus/core/src/abstract/JBPermissioned.sol\":{\"keccak256\":\"0xbaaa61c6aa043522617d3c1a86960c23b9978ee2a6c9d593b00beeeb6ce64423\",\"urls\":[\"bzz-raw://09beed8608e02ce9dbf28814309aaf62c9eec67e0701a26113bdbb4cbae56c42\",\"dweb:/ipfs/QmZrHFnpjX9uBzbFrSjqQgQBkvpJ1ZyvjtT9RfneNGv32S\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/enums/JBApprovalStatus.sol\":{\"keccak256\":\"0x61c69b6bac7d24b566d87cda23a77e4ca9cdb87200b106aba8534cb9a0973e33\",\"urls\":[\"bzz-raw://6a9ca7249de76f77a8252eefe6bd1b63d47952f25a2acfa2c8db967cdff4470c\",\"dweb:/ipfs/QmaxSxptRQNj8bNy96EreENmrnRWdKmhyihBcxyWzBX5BN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBController.sol\":{\"keccak256\":\"0xf577428966a4db4ca17fb73abf2ff2e21cc0e231df2d7247bf410f926d6cb5f7\",\"urls\":[\"bzz-raw://7c1d847382f731b8c464b55ead0ed5c517aa3fa606aaf78b7881aab18108d504\",\"dweb:/ipfs/QmXW3DpPgjYw33A8bMxJFRVZRYjCnWTp28M8sSdPHbDq7E\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBDirectory.sol\":{\"keccak256\":\"0xcb97db460d2948a7f51c660fe0d1b1749047a419027711c476b86ad3573534c5\",\"urls\":[\"bzz-raw://a909c7a3d471054537894dca827e6e018e92ac25299b43026e5b1e335ec4de68\",\"dweb:/ipfs/QmU1GT3F8PNMjSiPPP5cSLLofefHYFJXnywMCdqqM9xUeh\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBDirectoryAccessControl.sol\":{\"keccak256\":\"0x1ea768919979d9f625920c05a5e633739febc822ce14b1e4724d739b19c10fb8\",\"urls\":[\"bzz-raw://7c5391a510bd610a97978245b7306d8d21c79d7c45c15f590ba9b603ea751154\",\"dweb:/ipfs/QmPSJvVWswqzv3bVq422UhA2BybMsiHoYFWGPp5Jh6Xs6a\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBFundAccessLimits.sol\":{\"keccak256\":\"0xfd8ea4cffd289e7fef6e53b5c8983eb6b941de306517f40c047048d3a8a2ca08\",\"urls\":[\"bzz-raw://2765cdee206f8b1b53874448e2481db001cd3706753190cfc9381318c7a7c41c\",\"dweb:/ipfs/QmQ5UYSadtzrb7BcTR93KnAYKXawdyDUG5HjjASV1zbys5\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPayHook.sol\":{\"keccak256\":\"0x9438866782c652c2942f4d114e35f393cd3c8b0334abce8387eed90bca35e8b2\",\"urls\":[\"bzz-raw://cfd99daf57213f92325aad7d7d16e98476d38e870470e95ba01e3ae3cdecc95d\",\"dweb:/ipfs/QmUKKAVGf7ki8BHksr99tFcRW8APveeB5tNH63ctTbbCW8\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPermissioned.sol\":{\"keccak256\":\"0x5b038d4dee116584e88b230920e56d48e135053e3f7e5642eaea14a775c1dad7\",\"urls\":[\"bzz-raw://19e43102f349fd4a1da1c0943ffb8f2950007fe4bb4bb7e8f74fc142575d091b\",\"dweb:/ipfs/QmXHAt4KzDTdDZgDDefEXH2WKi7NcfkJb9R7nxW5uDqsNp\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPermissions.sol\":{\"keccak256\":\"0x49d2b91a866004af098a6770b28040071885b048b4b50744b12a1e5b212c5e5e\",\"urls\":[\"bzz-raw://089b4dda50be91412ffe1fbe333f78cc894f073c1a7afe469f10a2cee12fbf9e\",\"dweb:/ipfs/QmYPPBZ6HwBa1RNkNGqGcR2xgj4fnWBzrPHHoJG3kZA6AN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPriceFeed.sol\":{\"keccak256\":\"0x4bd84c0f1a5d4729ed709bcddd43f4c50ec4a165ece79780af8dce482ed07d4a\",\"urls\":[\"bzz-raw://62bac4bfb6982fb002f620c77e5c445e62d50241a5aa64a07e51d929f5a42180\",\"dweb:/ipfs/QmWgJUDreVY2BuMX38a1iUUR5kNbMwGnKG3VvurB7oZtuM\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPrices.sol\":{\"keccak256\":\"0xb4d5244daa52aafab0c9b8806b7f973afa6a3b298add5966d586d27b78424cfb\",\"urls\":[\"bzz-raw://a819f74455aaa4f679ded378424702f3992608a640d7f943b19938eb4ff711da\",\"dweb:/ipfs/QmSMGvVTsMW3L5YSUyXTKoEsgNpGEutnq4frEZHuDdeDvz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBProjectUriRegistry.sol\":{\"keccak256\":\"0xc9ab647179d7d0c857fdd881d6ce96f06254739440ed08e85a1c2042218f7c7d\",\"urls\":[\"bzz-raw://8529368f30c98c8d5a69acdbe4ac79e3eeb4afa5a9cd278325c5f2184ef3d50f\",\"dweb:/ipfs/QmfUaozYiAGt1UwBDUEZvon1tEBS5sLPzqpN9dNdjQotPN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBProjects.sol\":{\"keccak256\":\"0x4ae42a9cc29b517b26d2b9b635deb82c16696b777deeca92dfcad33b0f81c0a0\",\"urls\":[\"bzz-raw://1dcbd860e7d7f05232d90c5e9cfd3d01e2ce986ffcdb053473d8a4d387b1a48a\",\"dweb:/ipfs/QmWKWoSJJbVWDumbnzXJBJyXmAacgC97bxMtchh8te41bn\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBRulesetApprovalHook.sol\":{\"keccak256\":\"0x592e95d159494421c6b1bcb362d0cee1df0132921697351304e9cd7af4fbd386\",\"urls\":[\"bzz-raw://5bebfd5fa67c1b6ea16fa2e76e9520e9dfe52a579f48dd94d0c2ec45f78ad178\",\"dweb:/ipfs/QmRUawEGtfYoYSHmHELGhvJoWuMsxLPKtqAXgsrb7fJboP\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBRulesets.sol\":{\"keccak256\":\"0x29b56a91e8cd4d3e718e18cd934eccbc22c668d08dc26adb43c958722497d3ab\",\"urls\":[\"bzz-raw://7ae1a723eaf16809b9bd73cd235985801aff85283976be342416fa301c3b4793\",\"dweb:/ipfs/QmZYSY7C9dPvR5EnT8YCjVSy842dBVP3wZdYQ71wyPkx2F\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBSplitHook.sol\":{\"keccak256\":\"0xeb8dfac7a4b81897a1c3b5d0d853a406bcff33720fb187d5ca5bb3dcc0ba3a12\",\"urls\":[\"bzz-raw://36aaeef6107cfe5b0127e063ea215aac7200f8af02e28a48e61111abd3254688\",\"dweb:/ipfs/QmQ8yQANXnhQCAWBGKsKCDsJ3A8hnTKNg5tyo79GfWXTcV\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBSplits.sol\":{\"keccak256\":\"0x424e6d1189b9ba7a5d441e7675ae09ff893c13c62b9ddde4dd6bc2690e96c6f3\",\"urls\":[\"bzz-raw://7e30ed7ab1daf20ff324aacfef7150a243b5db496eceaf032c7012ccb3c4227d\",\"dweb:/ipfs/QmRj5EZKmDjJy8tpvKbpz8vPSKHR5C9Q5ENe7oSLij4H8M\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBTerminal.sol\":{\"keccak256\":\"0xe440530f1d0cc16578981e1d2e4e13674360c677d19a74a4b08f9f7268c70aee\",\"urls\":[\"bzz-raw://ddea4aeaf523f48a1364a02d2ccb75f3dfd8a2b9af465964e9adf3ce53f4196a\",\"dweb:/ipfs/QmVWhN1Nn9khUN8ctAgh2Ypo2vnFBgDHtDw6S232A6RkFw\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBToken.sol\":{\"keccak256\":\"0xd33757cd3da65a9d66404b7e6ddb7a27b4902885a3498b9db1673c218e9fab2d\",\"urls\":[\"bzz-raw://de28759920dab1db6cfcb4ff2ffae76491be371b791a2a0ec054ff17653872dc\",\"dweb:/ipfs/QmPXnhdxbgoV4dBRJCi9siQYRfrvcJLDtY1rp3H2vtU1Cz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBTokenUriResolver.sol\":{\"keccak256\":\"0xfa5cb00dcd6085d1ef912d071fe73c63f9478a2cd0f9d8bddaf659b6af2d0967\",\"urls\":[\"bzz-raw://282e4e7c342d65f77cde0e9a08fcaf20ef5cf379c7a48b639842c0ffd0b2afb8\",\"dweb:/ipfs/QmbnN3PEQeZaXdPLT75V1J79kMg7KqSMru37RHrL3z8Yf2\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBTokens.sol\":{\"keccak256\":\"0x1348b416ebf501409acc9970d46be89ffd076566001ceff9b96fce1b0b2c405d\",\"urls\":[\"bzz-raw://74327019f5174345afed10d9a60caa9ef908382e131882c27588b13be8364b36\",\"dweb:/ipfs/QmZAqB6hFSymTEbjqHWgE4t9NRose9AJh4etGyWnvDkhJt\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBAccountingContext.sol\":{\"keccak256\":\"0x9c47e048a719f784f601df69a583505432217b9868a0244876d277f84dd1ebdf\",\"urls\":[\"bzz-raw://8565f194b87914da9a02af2e760ae2ed2a9d185c6f11229f7035140776d2fec9\",\"dweb:/ipfs/QmPs2fic8W3F5e5zNRwmGmJFjb3JWGPWJ3YUe5o82nQgEn\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBAfterPayRecordedContext.sol\":{\"keccak256\":\"0xd26c3a774ff38be79064085970454fe2603a23a638c76270d5b1b3829206c3e8\",\"urls\":[\"bzz-raw://3b55dbe3bf1ef625b7ca04efab3de35406e6041d5b3d82c7265469c500e2b702\",\"dweb:/ipfs/QmUdBDo4Lt3mcsFcsXT2mqq3czFwZjQJFPLM89YA2VtD7k\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBCurrencyAmount.sol\":{\"keccak256\":\"0x7f321bbcbd13abfbc8f0d08a5adaaf8ef312db5bb899012fcffb6170fbb962a9\",\"urls\":[\"bzz-raw://bf9301ef1dbb3abda7b492585377617508ba048c6170f21a5e7d2b3c034eb384\",\"dweb:/ipfs/QmcetEFxSYLLNSZzPBpNn3Fc8sFcrFE8A8h12ZSj2tLgxD\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBFundAccessLimitGroup.sol\":{\"keccak256\":\"0x9fdaa8d017b72da25f583700a444a86849df053f7fb8eac874ec5139bcf651e5\",\"urls\":[\"bzz-raw://c8e44c49ee444a98424a0dbeb6897a76a0bf00d88a613f62ac2012afdac754ee\",\"dweb:/ipfs/QmdYkAiRi5bXM1YYNkc7BiqimHSFodMGn1cjHR5hcpm4xH\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBPermissionsData.sol\":{\"keccak256\":\"0xd5a5fe65b1deb40b5cd9c8e05bc1352d0e95f3a18b4986fab7abdc621beb19c7\",\"urls\":[\"bzz-raw://a6141eaa414d3d61de671ae3584b87e98044bf6392cb94d2acd1bb5cc7c19db4\",\"dweb:/ipfs/QmbtvALmburKLRC5fHXscoeZii1N2qQrJAdqarfvSKaKEk\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRuleset.sol\":{\"keccak256\":\"0x03ad7bd257d4ac55ecc42b85156dce1c70eec8572dbf8feb093c033912f305e7\",\"urls\":[\"bzz-raw://9665b4c018cd469f94bec4471222cc9e5fd58ac421a0959f70e72618fe37d55b\",\"dweb:/ipfs/QmSUf6HQv2Ckcoy5tSH1UPdD8vDMerfK29G8kaxmxB3Kow\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRulesetConfig.sol\":{\"keccak256\":\"0x7a57ed3d73bd9457d8e1fb40f5204c364df87cbfdbf42412d5bbc08beabb49c9\",\"urls\":[\"bzz-raw://8b9a83916ee67d32b5f434b35b171c6122bbc4efeaa4fabb8dec2ca4e9e32c6e\",\"dweb:/ipfs/QmNquzUQn6ZvE2wBcMCgru3resV9UNvBWPPetyDChoh8vM\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRulesetMetadata.sol\":{\"keccak256\":\"0x7f49fe89eefe848e6af12aa452bd882430ff35e9dd44e9ff3d7be6911496486c\",\"urls\":[\"bzz-raw://136f3baeb71f8ac1c2721eb94b1d469d35cf3fba82f9138760dde6d451d052ef\",\"dweb:/ipfs/QmVeBaYMS9K3rPfneKiVYnFXbp3X8qxrw4qhN4PmuYHppz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRulesetWithMetadata.sol\":{\"keccak256\":\"0x1bcfadf20488f6df65227f8d4d0fbf9b7539456a2389567f7fe3900d23289bc3\",\"urls\":[\"bzz-raw://0a15c399a71e5373f8c0484c6d6b83521eda31e063a2c53e4c5cec4e74550343\",\"dweb:/ipfs/QmQwi8zkjoTVXbK89NeETYimWCacTrNsesJdpLSvGdqMPX\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBSplit.sol\":{\"keccak256\":\"0x0e1351e80cf9967caee90094712a4fc884a83f07df23a844d8cb33ebcd00721e\",\"urls\":[\"bzz-raw://19d5793c08834f2ec1d6942bd43d05042b0ecc351a57235d748a8f2ff74b6638\",\"dweb:/ipfs/QmUWjyNg7x62KsvMwAzNdpmwqCo5qK5ip9pLdshj9B2Kbf\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBSplitGroup.sol\":{\"keccak256\":\"0x8dc98fa9e730bee8bcc0a8acf1bc4db1c9b0edf307d969c9c9caa4d6b8d856d9\",\"urls\":[\"bzz-raw://66f4306e0e69c82033927952564fd617e7c4b29aa8b165d5b53a0ebe3109ea12\",\"dweb:/ipfs/QmQqN1u7FHAdEtEZNRcKvZwYtXEQVQnLd6FMzHESP7wDtx\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBSplitHookContext.sol\":{\"keccak256\":\"0x1cef82bf434f91d518092ea7e57db4a72ce7654f48a7db9bf44882900b6b6623\",\"urls\":[\"bzz-raw://cc5012008ab7e74cf766fe1c202a23e3a73365356bcf1e0b04ec01baf21b204b\",\"dweb:/ipfs/QmSwJvd6Yrg9XZMhjquBcak5sfUswbR5nPEuJBfpjM54VT\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBTerminalConfig.sol\":{\"keccak256\":\"0x9e31505080d3754b6d7db96095b0545930ef6dbc035b91fcc32fdc76a0e7c2a5\",\"urls\":[\"bzz-raw://f7702ab33a1b713c37e5397a55d8ef089289f4da8034cfe9622cbc69a98c47de\",\"dweb:/ipfs/QmXyiXps4aJyiM7vtDC373QUoqwB4DMETaZzC5cZPJKaAK\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBTokenAmount.sol\":{\"keccak256\":\"0xc61593d33d5ec30e695d382948a1b944d01e29a8f2bfd29f75ecebcdbc7816de\",\"urls\":[\"bzz-raw://8992c1e5fca0c2342ecc0e734dfba6a2a752e4c29184784931d0971e44305051\",\"dweb:/ipfs/QmYNcaW3qeCkgAExUaFTq238fgfJuoYCTwjCn7jm94U4dJ\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/JBOwnable.sol\":{\"keccak256\":\"0x8cb8f41b5c3482f1eb558d49fd56b5487f1dd0ef5c29a068f0638f4fa466aa3e\",\"urls\":[\"bzz-raw://21a9da6e467b117c31eaee30a027207cd07da3311ba830f0b26a2c168ffd9b19\",\"dweb:/ipfs/QmbedU61hLHttGe2aas4zwypBy86K8kqR9fmzW8vhS4oVH\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/JBOwnableOverrides.sol\":{\"keccak256\":\"0xae09b9163b196e10f833966f11f0005001a11792bfa01167f8d693094e024e2b\",\"urls\":[\"bzz-raw://ea26b51472e4180adf37fd6b3e7ec4e4467dbf30dfe56f64a307d882c03a8a14\",\"dweb:/ipfs/QmQmz1HdxUFHYDtgYFEHsPFqTzqa7nBKw9ZCW7Xt8iUN2c\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/interfaces/IJBOwnable.sol\":{\"keccak256\":\"0xbfdca68abf028e9df18b1885b1163fa6a89bfef0878855a1834b382e2fe924b3\",\"urls\":[\"bzz-raw://34e6a3ffd79453942d74a50bed850e7cdd796dad316b6d6be2654ecd6917f62d\",\"dweb:/ipfs/QmeZ2BwJtgomDfQ8K3gJFX9L7HFTuDQJGwYPVbcMEn1xE4\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/struct/JBOwner.sol\":{\"keccak256\":\"0xb2187c4fb303e94814d192284537e4dfac85adecb309f9fa4b2beede63800fad\",\"urls\":[\"bzz-raw://c35989c4f8f77fc8357edf473acd6a223388e24341d67240fd5f66823f595a3b\",\"dweb:/ipfs/QmSFqQ1thNTo7N33TrgPTETtXc29dfgZGeRc7ZGHk1dUGh\"],\"license\":\"MIT\"},\"node_modules/@bananapus/permission-ids/src/JBPermissionIds.sol\":{\"keccak256\":\"0x089932e597c40f1d0f277f8f2acaef065aebcbe8f69012a471b1ead688ccaa47\",\"urls\":[\"bzz-raw://9d9a0a316265d86299e110d56e3f3a1ea9e685b577ef93d6af778e788c8677bb\",\"dweb:/ipfs/QmcHUMAwfdSQknLvPF5N2jT7RM7NnERK9h3kchw18iQqFB\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"],\"license\":\"MIT\"},\"src/JB721TiersHookProjectDeployer.sol\":{\"keccak256\":\"0xcd7165987797aca8e0fa948e69b77e8b7da1f0ccbb7b487d52cd601b3a9f678e\",\"urls\":[\"bzz-raw://935ad4437be2b3bdeb263718b53adc51a1812e914b03f8a8d720e10b05faaa70\",\"dweb:/ipfs/QmQ85fKayU5cLTCEV4ZfYTTYdJwiZuq1rSNZFAeXsBkRu9\"],\"license\":\"MIT\"},\"src/interfaces/IJB721Hook.sol\":{\"keccak256\":\"0xc4c1b2da6354c37e67e4463ca3dc652daf98769a7dc1af5b6e8bc31dc11bdc69\",\"urls\":[\"bzz-raw://583553ab050c7a96dbee7ffe8436a0f345617a816331bba0fb3d1c1e77b39110\",\"dweb:/ipfs/QmXj783jhFVdGzFqpiCgGaNjnmDE2qNGEGE7HidhzGgrSR\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHook.sol\":{\"keccak256\":\"0x1b17153dcb3901a8d9156976ffb20c1047849ad1ce94c3a1934f7ca012b45bb5\",\"urls\":[\"bzz-raw://e86b10609f4ff4279592a7c185c6b202c0ff2572fad40dcbcfab878dbc735daa\",\"dweb:/ipfs/QmSJE6yTqKuA94BKAixiEFRGUUYhwtngsYDW3VCfrbMzKP\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHookDeployer.sol\":{\"keccak256\":\"0xdcf34032c2a22a782b7121e777715766cce471e9e8186cb710865de674d646bf\",\"urls\":[\"bzz-raw://00c19707f9fd04b9393a2081a50d69a14ed37d4a8f689c39219da6379aaacb53\",\"dweb:/ipfs/QmPdJYKrEEJxVYYaoV5rVRhoBuxmBTEH7u3J2TZtom1Sof\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHookProjectDeployer.sol\":{\"keccak256\":\"0xffcee695bbdf4960b99b905b966ba6225a1909e65397c1f32389e77ec49207d0\",\"urls\":[\"bzz-raw://7aadbb2a046524b164e0886b9deb049823e5b1c92efcf2ad7fd8e22d5a746d51\",\"dweb:/ipfs/QmbhafFJmJ6MUtrSzHqLnshz1PNUz3rgcvB8zif1p8sf7d\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHookStore.sol\":{\"keccak256\":\"0x6f3acee1130717bf1ac5c513cb167a8f121a64c047b505e9aced2b23793b79d7\",\"urls\":[\"bzz-raw://9f4dfe3be9e21c8b5446e9d37e699071f9df257a3c7a2fb8a8791e062617acbc\",\"dweb:/ipfs/QmarDks3DcMyHPVsKdj5qpma5ZBMzH8ti92MY38K76hvSA\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TokenUriResolver.sol\":{\"keccak256\":\"0xfa599167098f4459320ec4141a98a17b2dfffbce422baa27d8b4e4530f61ece1\",\"urls\":[\"bzz-raw://8b758b161f4c7b520b2c34b4d91e585e961b8f4ca278eebb91d791f7f2f45140\",\"dweb:/ipfs/QmcD9DF7NJ9QykQpT4KPzm4bs3fkjzukdAUWwdU6Atfw85\"],\"license\":\"MIT\"},\"src/structs/JB721InitTiersConfig.sol\":{\"keccak256\":\"0xff362fcd46992e56996e1b162b129a1d03ca2342a482421f279bd930b7af79dd\",\"urls\":[\"bzz-raw://56a52c0d4461fd1b278789cd31ccc77b5eab9a0d7e2fab5074bae9c8a79d0cb1\",\"dweb:/ipfs/QmagorkFXB4rEq5rfLcoZHu6jtjcMicMBPfVqMQT86xZoB\"],\"license\":\"MIT\"},\"src/structs/JB721Tier.sol\":{\"keccak256\":\"0x99232aa73d5715977332dc7c93b03552a93259e59ae00e86b4ddc200f06adaf1\",\"urls\":[\"bzz-raw://721c0cf10a29fa11677718faafb3a2ecfcb4fbe4e1c09e70a7fac681c80fcc94\",\"dweb:/ipfs/QmSUR77E9PqnpB5kBcKNz2CGBjG9XL9FH57RWVYu3Q7GMR\"],\"license\":\"MIT\"},\"src/structs/JB721TierConfig.sol\":{\"keccak256\":\"0x86e54a0de4deab9d105bf276586aebe256188b193e83eb7a6f6f93e4a29ae9c5\",\"urls\":[\"bzz-raw://04bfcc07d452c26dfc50d3a5eb62df4b3b81e063defd752e0aa5ed049a78eef4\",\"dweb:/ipfs/QmWd5nJHUvZPHxJXkrYCboXaqdtiWWkQG26sNM6qkJuAgD\"],\"license\":\"MIT\"},\"src/structs/JB721TiersHookFlags.sol\":{\"keccak256\":\"0x283d8429f31bd58875c056515aa42abd09c95362bd929e85cfc44a0d92585766\",\"urls\":[\"bzz-raw://9a580b89fe99d9f8e930c58a4d0d63a5ff7c01c79d210af01373d066c9e72ed6\",\"dweb:/ipfs/QmdY1eSGSoTjv4KSdsG4Tm5CzJN6iqk3qTRga5ZWNbejRz\"],\"license\":\"MIT\"},\"src/structs/JB721TiersMintReservesConfig.sol\":{\"keccak256\":\"0x86fe586a05e6d4bc6fab9b68996a7f4b74c5362ca6f24b9d8057ed7e4cd1c5ac\",\"urls\":[\"bzz-raw://0915f17d1f958ab1fe6b214d99ed62f1f858684898c803f1a8a6a557472dd140\",\"dweb:/ipfs/QmUhdnSV8UzkgvbtkYEKHrpyDEmc2aJxW5HQ1gucuxxu5A\"],\"license\":\"MIT\"},\"src/structs/JB721TiersSetDiscountPercentConfig.sol\":{\"keccak256\":\"0x4672eacb6b0cda5e6f5f72ddb91463c52fb90b4df421053e3b40024f19a59954\",\"urls\":[\"bzz-raw://9d8e3a0b35d6b2a6ec66527594263400189b6c766bfd6943c83704380a989aec\",\"dweb:/ipfs/QmUE7NhFWsxjFRzTuRyHJ7oRx3JXD9CnG83t29PjGAhwPR\"],\"license\":\"MIT\"},\"src/structs/JBDeploy721TiersHookConfig.sol\":{\"keccak256\":\"0x0ce457736946394772afe54d575b68a74269cbf37a250de2d27dca6d9dd45005\",\"urls\":[\"bzz-raw://2010a8f6e19354038d3906ddb174f34464c5f341103313a5c4d628aa7732d5a8\",\"dweb:/ipfs/QmU9m18oWtYNV7UHLcW9kdwE3uzoQuGBe6sASvQTk8GZRL\"],\"license\":\"MIT\"},\"src/structs/JBLaunchProjectConfig.sol\":{\"keccak256\":\"0x0a8f87072dd6e5dd7c5cd5af7153172275de7e85625aa4a97da4fed65ad5b029\",\"urls\":[\"bzz-raw://b1d230835bf8fa17e8308d5d2ce4c820c4a719f451a65477f75956e100984047\",\"dweb:/ipfs/QmX6BwoYNJx1SssBLcBoPJBsg2Hv6ZP2uErXUvoMrAaQ71\"],\"license\":\"MIT\"},\"src/structs/JBLaunchRulesetsConfig.sol\":{\"keccak256\":\"0x0088bc7133e3fae1944247370a4eec227aeae8b371534e1d54439499644c0ede\",\"urls\":[\"bzz-raw://31847d92e9eb5e3125f07c23a651c0972e1784f748c4ce9d0c66853ee892c690\",\"dweb:/ipfs/QmRmoXg2MrkUFkMkgKvU7igkHQjhStbbc6CeiHkLCYAn7P\"],\"license\":\"MIT\"},\"src/structs/JBPayDataHookRulesetConfig.sol\":{\"keccak256\":\"0x06fdbc5c40750b8d81e4c079f86a96f5ce922a0ddbb81ddc5a044aa166723f59\",\"urls\":[\"bzz-raw://b810a5768501951e08c46f1907a7f561a49c4e16f339f1679a493fcddd30cc50\",\"dweb:/ipfs/QmfCF85EAdQCnsixXCdkKb5Xz2bL9dqAoDhmiR1QoBo81P\"],\"license\":\"MIT\"},\"src/structs/JBPayDataHookRulesetMetadata.sol\":{\"keccak256\":\"0x087280b3a959933c68ad19acbf07d80f9bbf632d902986c2ff624b6c31a6eeeb\",\"urls\":[\"bzz-raw://a2ddf9483f89b8a9012bc7714db4547b68a0df5fe3bf953e190d2021377f9811\",\"dweb:/ipfs/QmZcs1fuufGwWYy4fW3puX7ZRrribMMzEyEEL7WVCnrMer\"],\"license\":\"MIT\"},\"src/structs/JBQueueRulesetsConfig.sol\":{\"keccak256\":\"0x3ad05bfa31a90070eb4a026a13d508f9a68ca2474c3737bcda97a07307ffa554\",\"urls\":[\"bzz-raw://357f0193da0840e4b012ff1f97c65c8b6f5fea39e323a3777baf2b0625491f12\",\"dweb:/ipfs/QmZkJb8MuZ3wimiV6kry4RMp9ZkUFQA9yhfJDVUWTBWFcq\"],\"license\":\"MIT\"}},\"version\":1}", "args": [ "0xE0B2860344bA476e12eD1d559656dA9D04F1AD22", "0x4CDb4200e4E65a277676Cd5E8d3c7C7C4dA7fBe5", "0x2BAd941E6c2f9CdBbfc9C25F804f060ffEA1d7bE" ], - "bytecode": "0x60e06040523480156200001157600080fd5b5060405162002a2138038062002a2183398101604081905262000034916200006b565b6001600160a01b0391821660805291811660a0521660c052620000bf565b6001600160a01b03811681146200006857600080fd5b50565b6000806000606084860312156200008157600080fd5b83516200008e8162000052565b6020850151909350620000a18162000052565b6040850151909250620000b48162000052565b809150509250925092565b60805160a05160c0516129036200011e6000396000818160f4015281816102460152818161046501526105d801526000818160a20152818161015401528181610355015261056201526000818161012e0152610a2401526129036000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063abf8c5c811610050578063abf8c5c8146100ef578063ac6a26f814610116578063f434c9141461012957600080fd5b80633c3a22bb1461007757806388bc2ef31461009d5780638b716777146100dc575b600080fd5b61008a6100853660046111cc565b610150565b6040519081526020015b60405180910390f35b6100c47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610094565b61008a6100ea366004611255565b61034e565b6100c47f000000000000000000000000000000000000000000000000000000000000000081565b61008a61012436600461128a565b61055b565b6100c47f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d49190611304565b6001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610211573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102359190611328565b610240906001611341565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663cc7bb31f83876040518363ffffffff1660e01b81526004016102929291906116c7565b6020604051808303816000875af11580156102b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d59190611304565b90506102eb866102e486612135565b83866106c4565b6040516351106b4b60e11b8152600481018390526001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561032d57600080fd5b505af1158015610341573d6000803e3d6000fd5b5050505050949350505050565b600061044b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d59190611304565b6001600160a01b0316636352211e876040518263ffffffff1660e01b815260040161040291815260200190565b602060405180830381865afa15801561041f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104439190611304565b8660026109cc565b60405163cc7bb31f60e01b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f9061049c90899089906004016116c7565b6020604051808303816000875af11580156104bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104df9190611304565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561052457600080fd5b505af1158015610538573d6000803e3d6000fd5b50505050610551868561054a906121ec565b8386610ada565b9695505050505050565b60006105be7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b1573d6000803e3d6000fd5b60405163cc7bb31f60e01b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f9061060f90899089906004016116c7565b6020604051808303816000875af115801561062e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106529190611304565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561069757600080fd5b505af11580156106ab573d6000803e3d6000fd5b5050505061055186856106bd9061222c565b8386610de4565b60208301515160008167ffffffffffffffff8111156106e5576106e56117e7565b60405190808252806020026020018201604052801561071e57816020015b61070b61109b565b8152602001906001900390816107035790505b50905060005b8281101561094457600086602001518281518110610744576107446122aa565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e0015115158152602001896001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610930576109306122aa565b602090810291909101015250600101610724565b50845160408087015160608801519151634e530d8960e11b81526001600160a01b03871693639ca61b1293610980938c938892906004016127de565b6020604051808303816000875af115801561099f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c39190611328565b50505050505050565b336001600160a01b0384168114801590610a915750604051631a45b42760e11b81526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000000000000000000000000000000000000000000000169063348b684e9060c401602060405180830381865afa158015610a6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8f9190612846565b155b15610ad457604051631326f75560e11b81526001600160a01b03808616600483015282166024820152604481018490526064810183905260840160405180910390fd5b50505050565b602083015151600090818167ffffffffffffffff811115610afd57610afd6117e7565b604051908082528060200260200182016040528015610b3657816020015b610b2361109b565b815260200190600190039081610b1b5790505b50905060005b82811015610d5c57600087602001518281518110610b5c57610b5c6122aa565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610d4857610d486122aa565b602090810291909101015250600101610b3c565b5060408087015160608801519151632a550fab60e11b81526001600160a01b038716926354aa1f5692610d96928c92879291600401612863565b6020604051808303816000875af1158015610db5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd99190611328565b979650505050505050565b602083015151600090818167ffffffffffffffff811115610e0757610e076117e7565b604051908082528060200260200182016040528015610e4057816020015b610e2d61109b565b815260200190600190039081610e255790505b50905060005b8281101561106657600087602001518281518110610e6657610e666122aa565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110611052576110526122aa565b602090810291909101015250600101610e46565b506040808701519051630e18de6b60e41b81526001600160a01b0386169163e18de6b091610d96918b918691906004016128a2565b6040805161010080820183526000808352602080840182905283850182905260608085018390526080808601849052865161028081018852848152928301849052958201839052810182905293840181905260a084810182905260c0850182905260e0850182905291840181905261012084018190526101408401819052610160840181905261018084018190526101a084018190526101c084018190526101e08401819052610200840181905261022084018190526102408401819052610260840152909190820190815260200160608152602001606081525090565b6001600160a01b038116811461118e57600080fd5b50565b803561119c81611179565b919050565b600061016082840312156111b457600080fd5b50919050565b6000608082840312156111b457600080fd5b600080600080608085870312156111e257600080fd5b84356111ed81611179565b9350602085013567ffffffffffffffff8082111561120a57600080fd5b611216888389016111a1565b9450604087013591508082111561122c57600080fd5b50611239878288016111ba565b925050606085013561124a81611179565b939692955090935050565b6000806000806080858703121561126b57600080fd5b84359350602085013567ffffffffffffffff8082111561120a57600080fd5b600080600080608085870312156112a057600080fd5b84359350602085013567ffffffffffffffff808211156112bf57600080fd5b6112cb888389016111a1565b945060408701359150808211156112e157600080fd5b508501606081880312156112f457600080fd5b9150606085013561124a81611179565b60006020828403121561131657600080fd5b815161132181611179565b9392505050565b60006020828403121561133a57600080fd5b5051919050565b8082018082111561136257634e487b7160e01b600052601160045260246000fd5b92915050565b6000808335601e1984360301811261137f57600080fd5b830160208101925035905067ffffffffffffffff81111561139f57600080fd5b8036038213156113ae57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008235607e198336030181126113f457600080fd5b90910192915050565b80356cffffffffffffffffffffffffff8116811461119c57600080fd5b803563ffffffff8116811461119c57600080fd5b803561ffff8116811461119c57600080fd5b803562ffffff8116811461119c57600080fd5b803560ff8116811461119c57600080fd5b801515811461118e57600080fd5b803561119c81611464565b600060808084018335601e1985360301811261149857600080fd5b8401602081810191359067ffffffffffffffff8211156114b757600080fd5b6101c080830236038413156114cb57600080fd5b608089529382905260a09384890160005b8481101561161757611504826114f1886113fd565b6cffffffffffffffffffffffffff169052565b61150f84870161141a565b63ffffffff1684830152604061152687820161141a565b63ffffffff1690830152606061153d87820161142e565b61ffff1690830152611550868901611191565b6001600160a01b031688830152858701358783015260c0611572818801611440565b62ffffff169083015260e0611588878201611453565b60ff169083015261010061159d878201611472565b1515908301526101206115b1878201611472565b1515908301526101406115c5878201611472565b1515908301526101606115d9878201611472565b1515908301526101806115ed878201611472565b1515908301526101a0611601878201611472565b15159083015294820194908201906001016114dc565b5061162460208a0161141a565b63ffffffff811660208c0152965061163e60408a01611453565b60ff811660408c0152965061165560608a01611191565b6001600160a01b03811660608c015296509998505050505050505050565b803561167e81611464565b15158252602081013561169081611464565b1515602083015260408101356116a581611464565b1515604083015260608101356116ba81611464565b8015156060840152505050565b8281526040602082015260006116dd8384611368565b61016060408501526116f46101a0850182846113b5565b9150506117046020850185611368565b603f198086850301606087015261171c8483856113b5565b935061172b6040880188611368565b93509150808685030160808701526117448484846113b5565b935061175260608801611191565b6001600160a01b03811660a088015292506117706080880188611368565b93509150808685030160c08701526117898484846113b5565b935061179860a08801886113de565b9250808685030160e087015250506117b0828261147d565b9150506117bf60c08501611191565b6001600160a01b03166101008401526117df610120840160e08601611673565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff81118282101715611821576118216117e7565b60405290565b6040805190810167ffffffffffffffff81118282101715611821576118216117e7565b60405160c0810167ffffffffffffffff81118282101715611821576118216117e7565b6040516080810167ffffffffffffffff81118282101715611821576118216117e7565b604051610100810167ffffffffffffffff81118282101715611821576118216117e7565b6040516060810167ffffffffffffffff81118282101715611821576118216117e7565b604051601f8201601f1916810167ffffffffffffffff81118282101715611900576119006117e7565b604052919050565b600082601f83011261191957600080fd5b813567ffffffffffffffff811115611933576119336117e7565b611946601f8201601f19166020016118d7565b81815284602083860101111561195b57600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff821115611992576119926117e7565b5060051b60200190565b803565ffffffffffff8116811461119c57600080fd5b80356dffffffffffffffffffffffffffff8116811461119c57600080fd5b600061022082840312156119e357600080fd5b6119eb6117fd565b90506119f68261142e565b8152611a046020830161142e565b6020820152611a156040830161141a565b6040820152611a2660608301611472565b6060820152611a3760808301611472565b6080820152611a4860a08301611472565b60a0820152611a5960c08301611472565b60c0820152611a6a60e08301611472565b60e0820152610100611a7d818401611472565b90820152610120611a8f838201611472565b90820152610140611aa1838201611472565b90820152610160611ab3838201611472565b90820152610180611ac5838201611472565b908201526101a0611ad7838201611472565b908201526101c0611ae9838201611472565b908201526101e0611afb838201611472565b90820152610200611b0d83820161142e565b9082015292915050565b803566ffffffffffffff8116811461119c57600080fd5b600082601f830112611b3f57600080fd5b81356020611b54611b4f83611978565b6118d7565b82815260059290921b84018101918181019086841115611b7357600080fd5b8286015b84811015611cc257803567ffffffffffffffff80821115611b9757600080fd5b908801906040828b03601f1901811315611bb057600080fd5b611bb8611827565b8784013581528184013583811115611bcf57600080fd5b8085019450508b603f850112611be457600080fd5b878401359250611bf6611b4f84611978565b83815260c09093028401820192888101908d851115611c1457600080fd5b948301945b84861015611cad5760c0868f031215611c3157600080fd5b611c3961184a565b8635611c4481611464565b8152611c51878c0161141a565b8b820152611c60858801611b17565b858201526060870135611c7281611179565b6060820152611c836080880161199c565b608082015260a0870135611c9681611179565b60a0820152825260c0959095019490890190611c19565b828a0152508652505050918301918301611b77565b509695505050505050565b600082601f830112611cde57600080fd5b81356020611cee611b4f83611978565b82815260069290921b84018101918181019086841115611d0d57600080fd5b8286015b84811015611cc25760408189031215611d2a5760008081fd5b611d32611827565b81357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81168114611d5f5760008081fd5b8152611d6c82860161141a565b81860152835291830191604001611d11565b600082601f830112611d8f57600080fd5b81356020611d9f611b4f83611978565b82815260059290921b84018101918181019086841115611dbe57600080fd5b8286015b84811015611cc257803567ffffffffffffffff80821115611de35760008081fd5b908801906080828b03601f1901811315611dfd5760008081fd5b611e0561186d565b87840135611e1281611179565b8152604084810135611e2381611179565b828a015260608581013585811115611e3b5760008081fd5b611e498f8c838a0101611ccd565b8484015250928501359284841115611e6357600091508182fd5b611e718e8b86890101611ccd565b90830152508652505050918301918301611dc2565b600082601f830112611e9757600080fd5b81356020611ea7611b4f83611978565b82815260059290921b84018101918181019086841115611ec657600080fd5b8286015b84811015611cc257803567ffffffffffffffff80821115611eeb5760008081fd5b90880190610300828b03601f1901811315611f065760008081fd5b611f0e611890565b611f1988850161199c565b81526040611f2881860161141a565b898301526060611f398187016119b2565b8284015260809150611f4c82870161141a565b9083015260a0611f5d868201611191565b8284015260c09150611f718e8388016119d0565b908301526102e085013584811115611f895760008081fd5b611f978e8b83890101611b2e565b82840152505081840135915082821115611fb15760008081fd5b611fbf8c8984870101611d7e565b60e08201528652505050918301918301611eca565b600082601f830112611fe557600080fd5b81356020611ff5611b4f83611978565b82815260059290921b8401810191818101908684111561201457600080fd5b8286015b84811015611cc257803567ffffffffffffffff8082111561203857600080fd5b908801906040828b03601f190181131561205157600080fd5b612059611827565b8784013561206681611179565b8152838201358381111561207957600080fd5b8085019450508b603f85011261208e57600080fd5b8784013592506120a0611b4f84611978565b83815260609093028401820192888101908d8511156120be57600080fd5b948301945b84861015612120576060868f0312156120db57600080fd5b6120e36118b4565b86356120ee81611179565b81526120fb878c01611453565b8b82015261210a85880161141a565b81860152825260609590950194908901906120c3565b828a0152508652505050918301918301612018565b60006080823603121561214757600080fd5b61214f61186d565b823567ffffffffffffffff8082111561216757600080fd5b61217336838701611908565b8352602085013591508082111561218957600080fd5b61219536838701611e86565b602084015260408501359150808211156121ae57600080fd5b6121ba36838701611fd4565b604084015260608501359150808211156121d357600080fd5b506121e036828601611908565b60608301525092915050565b6000608082360312156121fe57600080fd5b61220661186d565b61220f83611b17565b8152602083013567ffffffffffffffff8082111561218957600080fd5b60006060823603121561223e57600080fd5b6122466118b4565b61224f83611b17565b8152602083013567ffffffffffffffff8082111561226c57600080fd5b61227836838701611e86565b6020840152604085013591508082111561229157600080fd5b5061229e36828601611908565b60408301525092915050565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156122e6576020818501810151868301820152016122ca565b506000602082860101526020601f19601f83011685010191505092915050565b805161ffff1682526020810151612323602084018261ffff169052565b50604081015161233b604084018263ffffffff169052565b50606081015161234f606084018215159052565b506080810151612363608084018215159052565b5060a081015161237760a084018215159052565b5060c081015161238b60c084018215159052565b5060e081015161239f60e084018215159052565b5061010081810151151590830152610120808201511515908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c0808201511515908301526101e0808201511515908301526102008082015115159083015261022080820151151590830152610240808201516001600160a01b0316908301526102608082015161ffff811682850152610ad4565b600082825180855260208086019550808260051b8401018186016000805b8581101561252857868403601f19018a52825180518552850151604086860181905281518187018190529187019160609081880190865b818110156125115785518051151584528b81015163ffffffff168c8501528581015166ffffffffffffff1686850152848101516001600160a01b039081168686015260808083015165ffffffffffff169086015260a0918201511690840152948a019460c0909201916001016124a0565b50509c88019c965050509285019250600101612469565b509198975050505050505050565b60008151808452602080850194506020840160005b8381101561259657815180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16885283015163ffffffff16838801526040909601959082019060010161254b565b509495945050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561263557601f19868403018952815160806001600160a01b038083511686528087840151168787015250604080830151828288015261260383880182612536565b92505050606080830151925085820381870152506126218183612536565b9a86019a94505050908301906001016125be565b5090979650505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561263557601f198684030189528151805165ffffffffffff1684528481015163ffffffff908116868601526040808301516dffffffffffffffffffffffffffff1690860152606080830151909116908501526080808201516001600160a01b03169085015260a08082015161036091906126df82880182612306565b505060c0820151816103208701526126f98287018261244b565b91505060e0820151915084810361034086015261271681836125a1565b9a86019a945050509083019060010161265f565b600082825180855260208086019550808260051b8401018186016000805b8581101561252857868403601f19018a52825180516001600160a01b03908116865290860151604087870181905281518188018190529188019290916060919082890190875b818110156127c65786518051851684528c81015160ff168d85015286015163ffffffff1686840152958b01959184019160010161278e565b50509d89019d97505050938601935050600101612748565b6001600160a01b038616815260a06020820152600061280060a08301876122c0565b82810360408401526128128187612642565b90508281036060840152612826818661272a565b9050828103608084015261283a81856122c0565b98975050505050505050565b60006020828403121561285857600080fd5b815161132181611464565b84815260806020820152600061287c6080830186612642565b828103604084015261288e818661272a565b90508281036060840152610dd981856122c0565b8381526060602082015260006128bb6060830185612642565b828103604084015261055181856122c056fea264697066735822122065bea5c5b12a0b599df982d500bc196b031d7371de559ac209ff46d6b263a22064736f6c63430008170033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100725760003560e01c8063abf8c5c811610050578063abf8c5c8146100ef578063ac6a26f814610116578063f434c9141461012957600080fd5b80633c3a22bb1461007757806388bc2ef31461009d5780638b716777146100dc575b600080fd5b61008a6100853660046111cc565b610150565b6040519081526020015b60405180910390f35b6100c47f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad2281565b6040516001600160a01b039091168152602001610094565b61008a6100ea366004611255565b61034e565b6100c47f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be81565b61008a61012436600461128a565b61055b565b6100c47f0000000000000000000000004cdb4200e4e65a277676cd5e8d3c7c7c4da7fbe581565b60007f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad226001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d49190611304565b6001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610211573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102359190611328565b610240906001611341565b905060007f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be6001600160a01b031663cc7bb31f83876040518363ffffffff1660e01b81526004016102929291906116c7565b6020604051808303816000875af11580156102b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d59190611304565b90506102eb866102e486612135565b83866106c4565b6040516351106b4b60e11b8152600481018390526001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561032d57600080fd5b505af1158015610341573d6000803e3d6000fd5b5050505050949350505050565b600061044b7f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad226001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d59190611304565b6001600160a01b0316636352211e876040518263ffffffff1660e01b815260040161040291815260200190565b602060405180830381865afa15801561041f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104439190611304565b8660026109cc565b60405163cc7bb31f60e01b81526000906001600160a01b037f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be169063cc7bb31f9061049c90899089906004016116c7565b6020604051808303816000875af11580156104bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104df9190611304565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561052457600080fd5b505af1158015610538573d6000803e3d6000fd5b50505050610551868561054a906121ec565b8386610ada565b9695505050505050565b60006105be7f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad226001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b1573d6000803e3d6000fd5b60405163cc7bb31f60e01b81526000906001600160a01b037f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be169063cc7bb31f9061060f90899089906004016116c7565b6020604051808303816000875af115801561062e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106529190611304565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561069757600080fd5b505af11580156106ab573d6000803e3d6000fd5b5050505061055186856106bd9061222c565b8386610de4565b60208301515160008167ffffffffffffffff8111156106e5576106e56117e7565b60405190808252806020026020018201604052801561071e57816020015b61070b61109b565b8152602001906001900390816107035790505b50905060005b8281101561094457600086602001518281518110610744576107446122aa565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e0015115158152602001896001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610930576109306122aa565b602090810291909101015250600101610724565b50845160408087015160608801519151634e530d8960e11b81526001600160a01b03871693639ca61b1293610980938c938892906004016127de565b6020604051808303816000875af115801561099f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c39190611328565b50505050505050565b336001600160a01b0384168114801590610a915750604051631a45b42760e11b81526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000004cdb4200e4e65a277676cd5e8d3c7c7c4da7fbe5169063348b684e9060c401602060405180830381865afa158015610a6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8f9190612846565b155b15610ad457604051631326f75560e11b81526001600160a01b03808616600483015282166024820152604481018490526064810183905260840160405180910390fd5b50505050565b602083015151600090818167ffffffffffffffff811115610afd57610afd6117e7565b604051908082528060200260200182016040528015610b3657816020015b610b2361109b565b815260200190600190039081610b1b5790505b50905060005b82811015610d5c57600087602001518281518110610b5c57610b5c6122aa565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610d4857610d486122aa565b602090810291909101015250600101610b3c565b5060408087015160608801519151632a550fab60e11b81526001600160a01b038716926354aa1f5692610d96928c92879291600401612863565b6020604051808303816000875af1158015610db5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd99190611328565b979650505050505050565b602083015151600090818167ffffffffffffffff811115610e0757610e076117e7565b604051908082528060200260200182016040528015610e4057816020015b610e2d61109b565b815260200190600190039081610e255790505b50905060005b8281101561106657600087602001518281518110610e6657610e666122aa565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110611052576110526122aa565b602090810291909101015250600101610e46565b506040808701519051630e18de6b60e41b81526001600160a01b0386169163e18de6b091610d96918b918691906004016128a2565b6040805161010080820183526000808352602080840182905283850182905260608085018390526080808601849052865161028081018852848152928301849052958201839052810182905293840181905260a084810182905260c0850182905260e0850182905291840181905261012084018190526101408401819052610160840181905261018084018190526101a084018190526101c084018190526101e08401819052610200840181905261022084018190526102408401819052610260840152909190820190815260200160608152602001606081525090565b6001600160a01b038116811461118e57600080fd5b50565b803561119c81611179565b919050565b600061016082840312156111b457600080fd5b50919050565b6000608082840312156111b457600080fd5b600080600080608085870312156111e257600080fd5b84356111ed81611179565b9350602085013567ffffffffffffffff8082111561120a57600080fd5b611216888389016111a1565b9450604087013591508082111561122c57600080fd5b50611239878288016111ba565b925050606085013561124a81611179565b939692955090935050565b6000806000806080858703121561126b57600080fd5b84359350602085013567ffffffffffffffff8082111561120a57600080fd5b600080600080608085870312156112a057600080fd5b84359350602085013567ffffffffffffffff808211156112bf57600080fd5b6112cb888389016111a1565b945060408701359150808211156112e157600080fd5b508501606081880312156112f457600080fd5b9150606085013561124a81611179565b60006020828403121561131657600080fd5b815161132181611179565b9392505050565b60006020828403121561133a57600080fd5b5051919050565b8082018082111561136257634e487b7160e01b600052601160045260246000fd5b92915050565b6000808335601e1984360301811261137f57600080fd5b830160208101925035905067ffffffffffffffff81111561139f57600080fd5b8036038213156113ae57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008235607e198336030181126113f457600080fd5b90910192915050565b80356cffffffffffffffffffffffffff8116811461119c57600080fd5b803563ffffffff8116811461119c57600080fd5b803561ffff8116811461119c57600080fd5b803562ffffff8116811461119c57600080fd5b803560ff8116811461119c57600080fd5b801515811461118e57600080fd5b803561119c81611464565b600060808084018335601e1985360301811261149857600080fd5b8401602081810191359067ffffffffffffffff8211156114b757600080fd5b6101c080830236038413156114cb57600080fd5b608089529382905260a09384890160005b8481101561161757611504826114f1886113fd565b6cffffffffffffffffffffffffff169052565b61150f84870161141a565b63ffffffff1684830152604061152687820161141a565b63ffffffff1690830152606061153d87820161142e565b61ffff1690830152611550868901611191565b6001600160a01b031688830152858701358783015260c0611572818801611440565b62ffffff169083015260e0611588878201611453565b60ff169083015261010061159d878201611472565b1515908301526101206115b1878201611472565b1515908301526101406115c5878201611472565b1515908301526101606115d9878201611472565b1515908301526101806115ed878201611472565b1515908301526101a0611601878201611472565b15159083015294820194908201906001016114dc565b5061162460208a0161141a565b63ffffffff811660208c0152965061163e60408a01611453565b60ff811660408c0152965061165560608a01611191565b6001600160a01b03811660608c015296509998505050505050505050565b803561167e81611464565b15158252602081013561169081611464565b1515602083015260408101356116a581611464565b1515604083015260608101356116ba81611464565b8015156060840152505050565b8281526040602082015260006116dd8384611368565b61016060408501526116f46101a0850182846113b5565b9150506117046020850185611368565b603f198086850301606087015261171c8483856113b5565b935061172b6040880188611368565b93509150808685030160808701526117448484846113b5565b935061175260608801611191565b6001600160a01b03811660a088015292506117706080880188611368565b93509150808685030160c08701526117898484846113b5565b935061179860a08801886113de565b9250808685030160e087015250506117b0828261147d565b9150506117bf60c08501611191565b6001600160a01b03166101008401526117df610120840160e08601611673565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff81118282101715611821576118216117e7565b60405290565b6040805190810167ffffffffffffffff81118282101715611821576118216117e7565b60405160c0810167ffffffffffffffff81118282101715611821576118216117e7565b6040516080810167ffffffffffffffff81118282101715611821576118216117e7565b604051610100810167ffffffffffffffff81118282101715611821576118216117e7565b6040516060810167ffffffffffffffff81118282101715611821576118216117e7565b604051601f8201601f1916810167ffffffffffffffff81118282101715611900576119006117e7565b604052919050565b600082601f83011261191957600080fd5b813567ffffffffffffffff811115611933576119336117e7565b611946601f8201601f19166020016118d7565b81815284602083860101111561195b57600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff821115611992576119926117e7565b5060051b60200190565b803565ffffffffffff8116811461119c57600080fd5b80356dffffffffffffffffffffffffffff8116811461119c57600080fd5b600061022082840312156119e357600080fd5b6119eb6117fd565b90506119f68261142e565b8152611a046020830161142e565b6020820152611a156040830161141a565b6040820152611a2660608301611472565b6060820152611a3760808301611472565b6080820152611a4860a08301611472565b60a0820152611a5960c08301611472565b60c0820152611a6a60e08301611472565b60e0820152610100611a7d818401611472565b90820152610120611a8f838201611472565b90820152610140611aa1838201611472565b90820152610160611ab3838201611472565b90820152610180611ac5838201611472565b908201526101a0611ad7838201611472565b908201526101c0611ae9838201611472565b908201526101e0611afb838201611472565b90820152610200611b0d83820161142e565b9082015292915050565b803566ffffffffffffff8116811461119c57600080fd5b600082601f830112611b3f57600080fd5b81356020611b54611b4f83611978565b6118d7565b82815260059290921b84018101918181019086841115611b7357600080fd5b8286015b84811015611cc257803567ffffffffffffffff80821115611b9757600080fd5b908801906040828b03601f1901811315611bb057600080fd5b611bb8611827565b8784013581528184013583811115611bcf57600080fd5b8085019450508b603f850112611be457600080fd5b878401359250611bf6611b4f84611978565b83815260c09093028401820192888101908d851115611c1457600080fd5b948301945b84861015611cad5760c0868f031215611c3157600080fd5b611c3961184a565b8635611c4481611464565b8152611c51878c0161141a565b8b820152611c60858801611b17565b858201526060870135611c7281611179565b6060820152611c836080880161199c565b608082015260a0870135611c9681611179565b60a0820152825260c0959095019490890190611c19565b828a0152508652505050918301918301611b77565b509695505050505050565b600082601f830112611cde57600080fd5b81356020611cee611b4f83611978565b82815260069290921b84018101918181019086841115611d0d57600080fd5b8286015b84811015611cc25760408189031215611d2a5760008081fd5b611d32611827565b81357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81168114611d5f5760008081fd5b8152611d6c82860161141a565b81860152835291830191604001611d11565b600082601f830112611d8f57600080fd5b81356020611d9f611b4f83611978565b82815260059290921b84018101918181019086841115611dbe57600080fd5b8286015b84811015611cc257803567ffffffffffffffff80821115611de35760008081fd5b908801906080828b03601f1901811315611dfd5760008081fd5b611e0561186d565b87840135611e1281611179565b8152604084810135611e2381611179565b828a015260608581013585811115611e3b5760008081fd5b611e498f8c838a0101611ccd565b8484015250928501359284841115611e6357600091508182fd5b611e718e8b86890101611ccd565b90830152508652505050918301918301611dc2565b600082601f830112611e9757600080fd5b81356020611ea7611b4f83611978565b82815260059290921b84018101918181019086841115611ec657600080fd5b8286015b84811015611cc257803567ffffffffffffffff80821115611eeb5760008081fd5b90880190610300828b03601f1901811315611f065760008081fd5b611f0e611890565b611f1988850161199c565b81526040611f2881860161141a565b898301526060611f398187016119b2565b8284015260809150611f4c82870161141a565b9083015260a0611f5d868201611191565b8284015260c09150611f718e8388016119d0565b908301526102e085013584811115611f895760008081fd5b611f978e8b83890101611b2e565b82840152505081840135915082821115611fb15760008081fd5b611fbf8c8984870101611d7e565b60e08201528652505050918301918301611eca565b600082601f830112611fe557600080fd5b81356020611ff5611b4f83611978565b82815260059290921b8401810191818101908684111561201457600080fd5b8286015b84811015611cc257803567ffffffffffffffff8082111561203857600080fd5b908801906040828b03601f190181131561205157600080fd5b612059611827565b8784013561206681611179565b8152838201358381111561207957600080fd5b8085019450508b603f85011261208e57600080fd5b8784013592506120a0611b4f84611978565b83815260609093028401820192888101908d8511156120be57600080fd5b948301945b84861015612120576060868f0312156120db57600080fd5b6120e36118b4565b86356120ee81611179565b81526120fb878c01611453565b8b82015261210a85880161141a565b81860152825260609590950194908901906120c3565b828a0152508652505050918301918301612018565b60006080823603121561214757600080fd5b61214f61186d565b823567ffffffffffffffff8082111561216757600080fd5b61217336838701611908565b8352602085013591508082111561218957600080fd5b61219536838701611e86565b602084015260408501359150808211156121ae57600080fd5b6121ba36838701611fd4565b604084015260608501359150808211156121d357600080fd5b506121e036828601611908565b60608301525092915050565b6000608082360312156121fe57600080fd5b61220661186d565b61220f83611b17565b8152602083013567ffffffffffffffff8082111561218957600080fd5b60006060823603121561223e57600080fd5b6122466118b4565b61224f83611b17565b8152602083013567ffffffffffffffff8082111561226c57600080fd5b61227836838701611e86565b6020840152604085013591508082111561229157600080fd5b5061229e36828601611908565b60408301525092915050565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156122e6576020818501810151868301820152016122ca565b506000602082860101526020601f19601f83011685010191505092915050565b805161ffff1682526020810151612323602084018261ffff169052565b50604081015161233b604084018263ffffffff169052565b50606081015161234f606084018215159052565b506080810151612363608084018215159052565b5060a081015161237760a084018215159052565b5060c081015161238b60c084018215159052565b5060e081015161239f60e084018215159052565b5061010081810151151590830152610120808201511515908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c0808201511515908301526101e0808201511515908301526102008082015115159083015261022080820151151590830152610240808201516001600160a01b0316908301526102608082015161ffff811682850152610ad4565b600082825180855260208086019550808260051b8401018186016000805b8581101561252857868403601f19018a52825180518552850151604086860181905281518187018190529187019160609081880190865b818110156125115785518051151584528b81015163ffffffff168c8501528581015166ffffffffffffff1686850152848101516001600160a01b039081168686015260808083015165ffffffffffff169086015260a0918201511690840152948a019460c0909201916001016124a0565b50509c88019c965050509285019250600101612469565b509198975050505050505050565b60008151808452602080850194506020840160005b8381101561259657815180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16885283015163ffffffff16838801526040909601959082019060010161254b565b509495945050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561263557601f19868403018952815160806001600160a01b038083511686528087840151168787015250604080830151828288015261260383880182612536565b92505050606080830151925085820381870152506126218183612536565b9a86019a94505050908301906001016125be565b5090979650505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561263557601f198684030189528151805165ffffffffffff1684528481015163ffffffff908116868601526040808301516dffffffffffffffffffffffffffff1690860152606080830151909116908501526080808201516001600160a01b03169085015260a08082015161036091906126df82880182612306565b505060c0820151816103208701526126f98287018261244b565b91505060e0820151915084810361034086015261271681836125a1565b9a86019a945050509083019060010161265f565b600082825180855260208086019550808260051b8401018186016000805b8581101561252857868403601f19018a52825180516001600160a01b03908116865290860151604087870181905281518188018190529188019290916060919082890190875b818110156127c65786518051851684528c81015160ff168d85015286015163ffffffff1686840152958b01959184019160010161278e565b50509d89019d97505050938601935050600101612748565b6001600160a01b038616815260a06020820152600061280060a08301876122c0565b82810360408401526128128187612642565b90508281036060840152612826818661272a565b9050828103608084015261283a81856122c0565b98975050505050505050565b60006020828403121561285857600080fd5b815161132181611464565b84815260806020820152600061287c6080830186612642565b828103604084015261288e818661272a565b90508281036060840152610dd981856122c0565b8381526060602082015260006128bb6060830185612642565b828103604084015261055181856122c056fea264697066735822122065bea5c5b12a0b599df982d500bc196b031d7371de559ac209ff46d6b263a22064736f6c63430008170033", + "bytecode": "0x60e06040523480156200001157600080fd5b5060405162002a3838038062002a3883398101604081905262000034916200006b565b6001600160a01b0391821660805291811660a0521660c052620000bf565b6001600160a01b03811681146200006857600080fd5b50565b6000806000606084860312156200008157600080fd5b83516200008e8162000052565b6020850151909350620000a18162000052565b6040850151909250620000b48162000052565b809150509250925092565b60805160a05160c0516129196200011f600039600081816101030152818161026a0152818161047201526105e401526000818160b10152818161016401528181610365015261057101526000818161013d0152610a3001526129196000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063abf8c5c811610050578063abf8c5c8146100fe578063ac6a26f814610125578063f434c9141461013857600080fd5b80633c3a22bb1461007757806388bc2ef3146100ac5780638b716777146100eb575b600080fd5b61008a6100853660046111d8565b61015f565b604080519283526001600160a01b039091166020830152015b60405180910390f35b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100a3565b61008a6100f9366004611261565b61035d565b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b61008a610133366004611296565b610569565b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e49190611310565b6001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102459190611334565b61025090600161134d565b60405163cc7bb31f60e01b81529092506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f906102a190859089906004016116d3565b6020604051808303816000875af11580156102c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e49190611310565b90506102fa866102f386612141565b83866106d0565b6040516351106b4b60e11b8152600481018390526001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561033c57600080fd5b505af1158015610350573d6000803e3d6000fd5b5050505094509492505050565b60008061045b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e59190611310565b6001600160a01b0316636352211e886040518263ffffffff1660e01b815260040161041291815260200190565b602060405180830381865afa15801561042f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104539190611310565b8760026109d8565b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f906104a990899089906004016116d3565b6020604051808303816000875af11580156104c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ec9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b5050505061055e8685610557906121f8565b8386610ae6565b915094509492505050565b6000806105cd7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f9061061b90899089906004016116d3565b6020604051808303816000875af115801561063a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065e9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b1580156106a357600080fd5b505af11580156106b7573d6000803e3d6000fd5b5050505061055e86856106c990612238565b8386610df0565b60208301515160008167ffffffffffffffff8111156106f1576106f16117f3565b60405190808252806020026020018201604052801561072a57816020015b6107176110a7565b81526020019060019003908161070f5790505b50905060005b8281101561095057600086602001518281518110610750576107506122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e0015115158152602001896001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061093c5761093c6122b6565b602090810291909101015250600101610730565b50845160408087015160608801519151634e530d8960e11b81526001600160a01b03871693639ca61b129361098c938c938892906004016127ea565b6020604051808303816000875af11580156109ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cf9190611334565b50505050505050565b336001600160a01b0384168114801590610a9d5750604051631a45b42760e11b81526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000000000000000000000000000000000000000000000169063348b684e9060c401602060405180830381865afa158015610a77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9b9190612852565b155b15610ae057604051631326f75560e11b81526001600160a01b03808616600483015282166024820152604481018490526064810183905260840160405180910390fd5b50505050565b602083015151600090818167ffffffffffffffff811115610b0957610b096117f3565b604051908082528060200260200182016040528015610b4257816020015b610b2f6110a7565b815260200190600190039081610b275790505b50905060005b82811015610d6857600087602001518281518110610b6857610b686122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610d5457610d546122b6565b602090810291909101015250600101610b48565b5060408087015160608801519151632a550fab60e11b81526001600160a01b038716926354aa1f5692610da2928c9287929160040161286f565b6020604051808303816000875af1158015610dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de59190611334565b979650505050505050565b602083015151600090818167ffffffffffffffff811115610e1357610e136117f3565b604051908082528060200260200182016040528015610e4c57816020015b610e396110a7565b815260200190600190039081610e315790505b50905060005b8281101561107257600087602001518281518110610e7257610e726122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061105e5761105e6122b6565b602090810291909101015250600101610e52565b506040808701519051630e18de6b60e41b81526001600160a01b0386169163e18de6b091610da2918b918691906004016128ae565b6040805161010080820183526000808352602080840182905283850182905260608085018390526080808601849052865161028081018852848152928301849052958201839052810182905293840181905260a084810182905260c0850182905260e0850182905291840181905261012084018190526101408401819052610160840181905261018084018190526101a084018190526101c084018190526101e08401819052610200840181905261022084018190526102408401819052610260840152909190820190815260200160608152602001606081525090565b6001600160a01b038116811461119a57600080fd5b50565b80356111a881611185565b919050565b600061016082840312156111c057600080fd5b50919050565b6000608082840312156111c057600080fd5b600080600080608085870312156111ee57600080fd5b84356111f981611185565b9350602085013567ffffffffffffffff8082111561121657600080fd5b611222888389016111ad565b9450604087013591508082111561123857600080fd5b50611245878288016111c6565b925050606085013561125681611185565b939692955090935050565b6000806000806080858703121561127757600080fd5b84359350602085013567ffffffffffffffff8082111561121657600080fd5b600080600080608085870312156112ac57600080fd5b84359350602085013567ffffffffffffffff808211156112cb57600080fd5b6112d7888389016111ad565b945060408701359150808211156112ed57600080fd5b5085016060818803121561130057600080fd5b9150606085013561125681611185565b60006020828403121561132257600080fd5b815161132d81611185565b9392505050565b60006020828403121561134657600080fd5b5051919050565b8082018082111561136e57634e487b7160e01b600052601160045260246000fd5b92915050565b6000808335601e1984360301811261138b57600080fd5b830160208101925035905067ffffffffffffffff8111156113ab57600080fd5b8036038213156113ba57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008235607e1983360301811261140057600080fd5b90910192915050565b80356cffffffffffffffffffffffffff811681146111a857600080fd5b803563ffffffff811681146111a857600080fd5b803561ffff811681146111a857600080fd5b803562ffffff811681146111a857600080fd5b803560ff811681146111a857600080fd5b801515811461119a57600080fd5b80356111a881611470565b600060808084018335601e198536030181126114a457600080fd5b8401602081810191359067ffffffffffffffff8211156114c357600080fd5b6101c080830236038413156114d757600080fd5b608089529382905260a09384890160005b8481101561162357611510826114fd88611409565b6cffffffffffffffffffffffffff169052565b61151b848701611426565b63ffffffff16848301526040611532878201611426565b63ffffffff1690830152606061154987820161143a565b61ffff169083015261155c86890161119d565b6001600160a01b031688830152858701358783015260c061157e81880161144c565b62ffffff169083015260e061159487820161145f565b60ff16908301526101006115a987820161147e565b1515908301526101206115bd87820161147e565b1515908301526101406115d187820161147e565b1515908301526101606115e587820161147e565b1515908301526101806115f987820161147e565b1515908301526101a061160d87820161147e565b15159083015294820194908201906001016114e8565b5061163060208a01611426565b63ffffffff811660208c0152965061164a60408a0161145f565b60ff811660408c0152965061166160608a0161119d565b6001600160a01b03811660608c015296509998505050505050505050565b803561168a81611470565b15158252602081013561169c81611470565b1515602083015260408101356116b181611470565b1515604083015260608101356116c681611470565b8015156060840152505050565b8281526040602082015260006116e98384611374565b61016060408501526117006101a0850182846113c1565b9150506117106020850185611374565b603f19808685030160608701526117288483856113c1565b93506117376040880188611374565b93509150808685030160808701526117508484846113c1565b935061175e6060880161119d565b6001600160a01b03811660a0880152925061177c6080880188611374565b93509150808685030160c08701526117958484846113c1565b93506117a460a08801886113ea565b9250808685030160e087015250506117bc8282611489565b9150506117cb60c0850161119d565b6001600160a01b03166101008401526117eb610120840160e0860161167f565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405290565b6040805190810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405160c0810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516080810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051610100810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516060810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051601f8201601f1916810167ffffffffffffffff8111828210171561190c5761190c6117f3565b604052919050565b600082601f83011261192557600080fd5b813567ffffffffffffffff81111561193f5761193f6117f3565b611952601f8201601f19166020016118e3565b81815284602083860101111561196757600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff82111561199e5761199e6117f3565b5060051b60200190565b803565ffffffffffff811681146111a857600080fd5b80356dffffffffffffffffffffffffffff811681146111a857600080fd5b600061022082840312156119ef57600080fd5b6119f7611809565b9050611a028261143a565b8152611a106020830161143a565b6020820152611a2160408301611426565b6040820152611a326060830161147e565b6060820152611a436080830161147e565b6080820152611a5460a0830161147e565b60a0820152611a6560c0830161147e565b60c0820152611a7660e0830161147e565b60e0820152610100611a8981840161147e565b90820152610120611a9b83820161147e565b90820152610140611aad83820161147e565b90820152610160611abf83820161147e565b90820152610180611ad183820161147e565b908201526101a0611ae383820161147e565b908201526101c0611af583820161147e565b908201526101e0611b0783820161147e565b90820152610200611b1983820161143a565b9082015292915050565b803566ffffffffffffff811681146111a857600080fd5b600082601f830112611b4b57600080fd5b81356020611b60611b5b83611984565b6118e3565b82815260059290921b84018101918181019086841115611b7f57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ba357600080fd5b908801906040828b03601f1901811315611bbc57600080fd5b611bc4611833565b8784013581528184013583811115611bdb57600080fd5b8085019450508b603f850112611bf057600080fd5b878401359250611c02611b5b84611984565b83815260c09093028401820192888101908d851115611c2057600080fd5b948301945b84861015611cb95760c0868f031215611c3d57600080fd5b611c45611856565b8635611c5081611470565b8152611c5d878c01611426565b8b820152611c6c858801611b23565b858201526060870135611c7e81611185565b6060820152611c8f608088016119a8565b608082015260a0870135611ca281611185565b60a0820152825260c0959095019490890190611c25565b828a0152508652505050918301918301611b83565b509695505050505050565b600082601f830112611cea57600080fd5b81356020611cfa611b5b83611984565b82815260069290921b84018101918181019086841115611d1957600080fd5b8286015b84811015611cce5760408189031215611d365760008081fd5b611d3e611833565b81357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81168114611d6b5760008081fd5b8152611d78828601611426565b81860152835291830191604001611d1d565b600082601f830112611d9b57600080fd5b81356020611dab611b5b83611984565b82815260059290921b84018101918181019086841115611dca57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611def5760008081fd5b908801906080828b03601f1901811315611e095760008081fd5b611e11611879565b87840135611e1e81611185565b8152604084810135611e2f81611185565b828a015260608581013585811115611e475760008081fd5b611e558f8c838a0101611cd9565b8484015250928501359284841115611e6f57600091508182fd5b611e7d8e8b86890101611cd9565b90830152508652505050918301918301611dce565b600082601f830112611ea357600080fd5b81356020611eb3611b5b83611984565b82815260059290921b84018101918181019086841115611ed257600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ef75760008081fd5b90880190610300828b03601f1901811315611f125760008081fd5b611f1a61189c565b611f258885016119a8565b81526040611f34818601611426565b898301526060611f458187016119be565b8284015260809150611f58828701611426565b9083015260a0611f6986820161119d565b8284015260c09150611f7d8e8388016119dc565b908301526102e085013584811115611f955760008081fd5b611fa38e8b83890101611b3a565b82840152505081840135915082821115611fbd5760008081fd5b611fcb8c8984870101611d8a565b60e08201528652505050918301918301611ed6565b600082601f830112611ff157600080fd5b81356020612001611b5b83611984565b82815260059290921b8401810191818101908684111561202057600080fd5b8286015b84811015611cce57803567ffffffffffffffff8082111561204457600080fd5b908801906040828b03601f190181131561205d57600080fd5b612065611833565b8784013561207281611185565b8152838201358381111561208557600080fd5b8085019450508b603f85011261209a57600080fd5b8784013592506120ac611b5b84611984565b83815260609093028401820192888101908d8511156120ca57600080fd5b948301945b8486101561212c576060868f0312156120e757600080fd5b6120ef6118c0565b86356120fa81611185565b8152612107878c0161145f565b8b820152612116858801611426565b81860152825260609590950194908901906120cf565b828a0152508652505050918301918301612024565b60006080823603121561215357600080fd5b61215b611879565b823567ffffffffffffffff8082111561217357600080fd5b61217f36838701611914565b8352602085013591508082111561219557600080fd5b6121a136838701611e92565b602084015260408501359150808211156121ba57600080fd5b6121c636838701611fe0565b604084015260608501359150808211156121df57600080fd5b506121ec36828601611914565b60608301525092915050565b60006080823603121561220a57600080fd5b612212611879565b61221b83611b23565b8152602083013567ffffffffffffffff8082111561219557600080fd5b60006060823603121561224a57600080fd5b6122526118c0565b61225b83611b23565b8152602083013567ffffffffffffffff8082111561227857600080fd5b61228436838701611e92565b6020840152604085013591508082111561229d57600080fd5b506122aa36828601611914565b60408301525092915050565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156122f2576020818501810151868301820152016122d6565b506000602082860101526020601f19601f83011685010191505092915050565b805161ffff168252602081015161232f602084018261ffff169052565b506040810151612347604084018263ffffffff169052565b50606081015161235b606084018215159052565b50608081015161236f608084018215159052565b5060a081015161238360a084018215159052565b5060c081015161239760c084018215159052565b5060e08101516123ab60e084018215159052565b5061010081810151151590830152610120808201511515908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c0808201511515908301526101e0808201511515908301526102008082015115159083015261022080820151151590830152610240808201516001600160a01b0316908301526102608082015161ffff811682850152610ae0565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180518552850151604086860181905281518187018190529187019160609081880190865b8181101561251d5785518051151584528b81015163ffffffff168c8501528581015166ffffffffffffff1686850152848101516001600160a01b039081168686015260808083015165ffffffffffff169086015260a0918201511690840152948a019460c0909201916001016124ac565b50509c88019c965050509285019250600101612475565b509198975050505050505050565b60008151808452602080850194506020840160005b838110156125a257815180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16885283015163ffffffff168388015260409096019590820190600101612557565b509495945050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f19868403018952815160806001600160a01b038083511686528087840151168787015250604080830151828288015261260f83880182612542565b925050506060808301519250858203818701525061262d8183612542565b9a86019a94505050908301906001016125ca565b5090979650505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f198684030189528151805165ffffffffffff1684528481015163ffffffff908116868601526040808301516dffffffffffffffffffffffffffff1690860152606080830151909116908501526080808201516001600160a01b03169085015260a08082015161036091906126eb82880182612312565b505060c08201518161032087015261270582870182612457565b91505060e0820151915084810361034086015261272281836125ad565b9a86019a945050509083019060010161266b565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180516001600160a01b03908116865290860151604087870181905281518188018190529188019290916060919082890190875b818110156127d25786518051851684528c81015160ff168d85015286015163ffffffff1686840152958b01959184019160010161279a565b50509d89019d97505050938601935050600101612754565b6001600160a01b038616815260a06020820152600061280c60a08301876122cc565b828103604084015261281e818761264e565b905082810360608401526128328186612736565b9050828103608084015261284681856122cc565b98975050505050505050565b60006020828403121561286457600080fd5b815161132d81611470565b848152608060208201526000612888608083018661264e565b828103604084015261289a8186612736565b90508281036060840152610de581856122cc565b8381526060602082015260006128c7606083018561264e565b82810360408401526128d981856122cc565b969550505050505056fea2646970667358221220fe9aeb2923c79b329e15f469ded294b7c8f953591673f78360a251462b46f9d064736f6c63430008170033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100725760003560e01c8063abf8c5c811610050578063abf8c5c8146100fe578063ac6a26f814610125578063f434c9141461013857600080fd5b80633c3a22bb1461007757806388bc2ef3146100ac5780638b716777146100eb575b600080fd5b61008a6100853660046111d8565b61015f565b604080519283526001600160a01b039091166020830152015b60405180910390f35b6100d37f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad2281565b6040516001600160a01b0390911681526020016100a3565b61008a6100f9366004611261565b61035d565b6100d37f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be81565b61008a610133366004611296565b610569565b6100d37f0000000000000000000000004cdb4200e4e65a277676cd5e8d3c7c7c4da7fbe581565b6000807f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad226001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e49190611310565b6001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102459190611334565b61025090600161134d565b60405163cc7bb31f60e01b81529092506001600160a01b037f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be169063cc7bb31f906102a190859089906004016116d3565b6020604051808303816000875af11580156102c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e49190611310565b90506102fa866102f386612141565b83866106d0565b6040516351106b4b60e11b8152600481018390526001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561033c57600080fd5b505af1158015610350573d6000803e3d6000fd5b5050505094509492505050565b60008061045b7f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad226001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e59190611310565b6001600160a01b0316636352211e886040518263ffffffff1660e01b815260040161041291815260200190565b602060405180830381865afa15801561042f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104539190611310565b8760026109d8565b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be169063cc7bb31f906104a990899089906004016116d3565b6020604051808303816000875af11580156104c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ec9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b5050505061055e8685610557906121f8565b8386610ae6565b915094509492505050565b6000806105cd7f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad226001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be169063cc7bb31f9061061b90899089906004016116d3565b6020604051808303816000875af115801561063a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065e9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b1580156106a357600080fd5b505af11580156106b7573d6000803e3d6000fd5b5050505061055e86856106c990612238565b8386610df0565b60208301515160008167ffffffffffffffff8111156106f1576106f16117f3565b60405190808252806020026020018201604052801561072a57816020015b6107176110a7565b81526020019060019003908161070f5790505b50905060005b8281101561095057600086602001518281518110610750576107506122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e0015115158152602001896001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061093c5761093c6122b6565b602090810291909101015250600101610730565b50845160408087015160608801519151634e530d8960e11b81526001600160a01b03871693639ca61b129361098c938c938892906004016127ea565b6020604051808303816000875af11580156109ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cf9190611334565b50505050505050565b336001600160a01b0384168114801590610a9d5750604051631a45b42760e11b81526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000004cdb4200e4e65a277676cd5e8d3c7c7c4da7fbe5169063348b684e9060c401602060405180830381865afa158015610a77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9b9190612852565b155b15610ae057604051631326f75560e11b81526001600160a01b03808616600483015282166024820152604481018490526064810183905260840160405180910390fd5b50505050565b602083015151600090818167ffffffffffffffff811115610b0957610b096117f3565b604051908082528060200260200182016040528015610b4257816020015b610b2f6110a7565b815260200190600190039081610b275790505b50905060005b82811015610d6857600087602001518281518110610b6857610b686122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610d5457610d546122b6565b602090810291909101015250600101610b48565b5060408087015160608801519151632a550fab60e11b81526001600160a01b038716926354aa1f5692610da2928c9287929160040161286f565b6020604051808303816000875af1158015610dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de59190611334565b979650505050505050565b602083015151600090818167ffffffffffffffff811115610e1357610e136117f3565b604051908082528060200260200182016040528015610e4c57816020015b610e396110a7565b815260200190600190039081610e315790505b50905060005b8281101561107257600087602001518281518110610e7257610e726122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061105e5761105e6122b6565b602090810291909101015250600101610e52565b506040808701519051630e18de6b60e41b81526001600160a01b0386169163e18de6b091610da2918b918691906004016128ae565b6040805161010080820183526000808352602080840182905283850182905260608085018390526080808601849052865161028081018852848152928301849052958201839052810182905293840181905260a084810182905260c0850182905260e0850182905291840181905261012084018190526101408401819052610160840181905261018084018190526101a084018190526101c084018190526101e08401819052610200840181905261022084018190526102408401819052610260840152909190820190815260200160608152602001606081525090565b6001600160a01b038116811461119a57600080fd5b50565b80356111a881611185565b919050565b600061016082840312156111c057600080fd5b50919050565b6000608082840312156111c057600080fd5b600080600080608085870312156111ee57600080fd5b84356111f981611185565b9350602085013567ffffffffffffffff8082111561121657600080fd5b611222888389016111ad565b9450604087013591508082111561123857600080fd5b50611245878288016111c6565b925050606085013561125681611185565b939692955090935050565b6000806000806080858703121561127757600080fd5b84359350602085013567ffffffffffffffff8082111561121657600080fd5b600080600080608085870312156112ac57600080fd5b84359350602085013567ffffffffffffffff808211156112cb57600080fd5b6112d7888389016111ad565b945060408701359150808211156112ed57600080fd5b5085016060818803121561130057600080fd5b9150606085013561125681611185565b60006020828403121561132257600080fd5b815161132d81611185565b9392505050565b60006020828403121561134657600080fd5b5051919050565b8082018082111561136e57634e487b7160e01b600052601160045260246000fd5b92915050565b6000808335601e1984360301811261138b57600080fd5b830160208101925035905067ffffffffffffffff8111156113ab57600080fd5b8036038213156113ba57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008235607e1983360301811261140057600080fd5b90910192915050565b80356cffffffffffffffffffffffffff811681146111a857600080fd5b803563ffffffff811681146111a857600080fd5b803561ffff811681146111a857600080fd5b803562ffffff811681146111a857600080fd5b803560ff811681146111a857600080fd5b801515811461119a57600080fd5b80356111a881611470565b600060808084018335601e198536030181126114a457600080fd5b8401602081810191359067ffffffffffffffff8211156114c357600080fd5b6101c080830236038413156114d757600080fd5b608089529382905260a09384890160005b8481101561162357611510826114fd88611409565b6cffffffffffffffffffffffffff169052565b61151b848701611426565b63ffffffff16848301526040611532878201611426565b63ffffffff1690830152606061154987820161143a565b61ffff169083015261155c86890161119d565b6001600160a01b031688830152858701358783015260c061157e81880161144c565b62ffffff169083015260e061159487820161145f565b60ff16908301526101006115a987820161147e565b1515908301526101206115bd87820161147e565b1515908301526101406115d187820161147e565b1515908301526101606115e587820161147e565b1515908301526101806115f987820161147e565b1515908301526101a061160d87820161147e565b15159083015294820194908201906001016114e8565b5061163060208a01611426565b63ffffffff811660208c0152965061164a60408a0161145f565b60ff811660408c0152965061166160608a0161119d565b6001600160a01b03811660608c015296509998505050505050505050565b803561168a81611470565b15158252602081013561169c81611470565b1515602083015260408101356116b181611470565b1515604083015260608101356116c681611470565b8015156060840152505050565b8281526040602082015260006116e98384611374565b61016060408501526117006101a0850182846113c1565b9150506117106020850185611374565b603f19808685030160608701526117288483856113c1565b93506117376040880188611374565b93509150808685030160808701526117508484846113c1565b935061175e6060880161119d565b6001600160a01b03811660a0880152925061177c6080880188611374565b93509150808685030160c08701526117958484846113c1565b93506117a460a08801886113ea565b9250808685030160e087015250506117bc8282611489565b9150506117cb60c0850161119d565b6001600160a01b03166101008401526117eb610120840160e0860161167f565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405290565b6040805190810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405160c0810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516080810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051610100810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516060810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051601f8201601f1916810167ffffffffffffffff8111828210171561190c5761190c6117f3565b604052919050565b600082601f83011261192557600080fd5b813567ffffffffffffffff81111561193f5761193f6117f3565b611952601f8201601f19166020016118e3565b81815284602083860101111561196757600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff82111561199e5761199e6117f3565b5060051b60200190565b803565ffffffffffff811681146111a857600080fd5b80356dffffffffffffffffffffffffffff811681146111a857600080fd5b600061022082840312156119ef57600080fd5b6119f7611809565b9050611a028261143a565b8152611a106020830161143a565b6020820152611a2160408301611426565b6040820152611a326060830161147e565b6060820152611a436080830161147e565b6080820152611a5460a0830161147e565b60a0820152611a6560c0830161147e565b60c0820152611a7660e0830161147e565b60e0820152610100611a8981840161147e565b90820152610120611a9b83820161147e565b90820152610140611aad83820161147e565b90820152610160611abf83820161147e565b90820152610180611ad183820161147e565b908201526101a0611ae383820161147e565b908201526101c0611af583820161147e565b908201526101e0611b0783820161147e565b90820152610200611b1983820161143a565b9082015292915050565b803566ffffffffffffff811681146111a857600080fd5b600082601f830112611b4b57600080fd5b81356020611b60611b5b83611984565b6118e3565b82815260059290921b84018101918181019086841115611b7f57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ba357600080fd5b908801906040828b03601f1901811315611bbc57600080fd5b611bc4611833565b8784013581528184013583811115611bdb57600080fd5b8085019450508b603f850112611bf057600080fd5b878401359250611c02611b5b84611984565b83815260c09093028401820192888101908d851115611c2057600080fd5b948301945b84861015611cb95760c0868f031215611c3d57600080fd5b611c45611856565b8635611c5081611470565b8152611c5d878c01611426565b8b820152611c6c858801611b23565b858201526060870135611c7e81611185565b6060820152611c8f608088016119a8565b608082015260a0870135611ca281611185565b60a0820152825260c0959095019490890190611c25565b828a0152508652505050918301918301611b83565b509695505050505050565b600082601f830112611cea57600080fd5b81356020611cfa611b5b83611984565b82815260069290921b84018101918181019086841115611d1957600080fd5b8286015b84811015611cce5760408189031215611d365760008081fd5b611d3e611833565b81357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81168114611d6b5760008081fd5b8152611d78828601611426565b81860152835291830191604001611d1d565b600082601f830112611d9b57600080fd5b81356020611dab611b5b83611984565b82815260059290921b84018101918181019086841115611dca57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611def5760008081fd5b908801906080828b03601f1901811315611e095760008081fd5b611e11611879565b87840135611e1e81611185565b8152604084810135611e2f81611185565b828a015260608581013585811115611e475760008081fd5b611e558f8c838a0101611cd9565b8484015250928501359284841115611e6f57600091508182fd5b611e7d8e8b86890101611cd9565b90830152508652505050918301918301611dce565b600082601f830112611ea357600080fd5b81356020611eb3611b5b83611984565b82815260059290921b84018101918181019086841115611ed257600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ef75760008081fd5b90880190610300828b03601f1901811315611f125760008081fd5b611f1a61189c565b611f258885016119a8565b81526040611f34818601611426565b898301526060611f458187016119be565b8284015260809150611f58828701611426565b9083015260a0611f6986820161119d565b8284015260c09150611f7d8e8388016119dc565b908301526102e085013584811115611f955760008081fd5b611fa38e8b83890101611b3a565b82840152505081840135915082821115611fbd5760008081fd5b611fcb8c8984870101611d8a565b60e08201528652505050918301918301611ed6565b600082601f830112611ff157600080fd5b81356020612001611b5b83611984565b82815260059290921b8401810191818101908684111561202057600080fd5b8286015b84811015611cce57803567ffffffffffffffff8082111561204457600080fd5b908801906040828b03601f190181131561205d57600080fd5b612065611833565b8784013561207281611185565b8152838201358381111561208557600080fd5b8085019450508b603f85011261209a57600080fd5b8784013592506120ac611b5b84611984565b83815260609093028401820192888101908d8511156120ca57600080fd5b948301945b8486101561212c576060868f0312156120e757600080fd5b6120ef6118c0565b86356120fa81611185565b8152612107878c0161145f565b8b820152612116858801611426565b81860152825260609590950194908901906120cf565b828a0152508652505050918301918301612024565b60006080823603121561215357600080fd5b61215b611879565b823567ffffffffffffffff8082111561217357600080fd5b61217f36838701611914565b8352602085013591508082111561219557600080fd5b6121a136838701611e92565b602084015260408501359150808211156121ba57600080fd5b6121c636838701611fe0565b604084015260608501359150808211156121df57600080fd5b506121ec36828601611914565b60608301525092915050565b60006080823603121561220a57600080fd5b612212611879565b61221b83611b23565b8152602083013567ffffffffffffffff8082111561219557600080fd5b60006060823603121561224a57600080fd5b6122526118c0565b61225b83611b23565b8152602083013567ffffffffffffffff8082111561227857600080fd5b61228436838701611e92565b6020840152604085013591508082111561229d57600080fd5b506122aa36828601611914565b60408301525092915050565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156122f2576020818501810151868301820152016122d6565b506000602082860101526020601f19601f83011685010191505092915050565b805161ffff168252602081015161232f602084018261ffff169052565b506040810151612347604084018263ffffffff169052565b50606081015161235b606084018215159052565b50608081015161236f608084018215159052565b5060a081015161238360a084018215159052565b5060c081015161239760c084018215159052565b5060e08101516123ab60e084018215159052565b5061010081810151151590830152610120808201511515908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c0808201511515908301526101e0808201511515908301526102008082015115159083015261022080820151151590830152610240808201516001600160a01b0316908301526102608082015161ffff811682850152610ae0565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180518552850151604086860181905281518187018190529187019160609081880190865b8181101561251d5785518051151584528b81015163ffffffff168c8501528581015166ffffffffffffff1686850152848101516001600160a01b039081168686015260808083015165ffffffffffff169086015260a0918201511690840152948a019460c0909201916001016124ac565b50509c88019c965050509285019250600101612475565b509198975050505050505050565b60008151808452602080850194506020840160005b838110156125a257815180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16885283015163ffffffff168388015260409096019590820190600101612557565b509495945050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f19868403018952815160806001600160a01b038083511686528087840151168787015250604080830151828288015261260f83880182612542565b925050506060808301519250858203818701525061262d8183612542565b9a86019a94505050908301906001016125ca565b5090979650505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f198684030189528151805165ffffffffffff1684528481015163ffffffff908116868601526040808301516dffffffffffffffffffffffffffff1690860152606080830151909116908501526080808201516001600160a01b03169085015260a08082015161036091906126eb82880182612312565b505060c08201518161032087015261270582870182612457565b91505060e0820151915084810361034086015261272281836125ad565b9a86019a945050509083019060010161266b565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180516001600160a01b03908116865290860151604087870181905281518188018190529188019290916060919082890190875b818110156127d25786518051851684528c81015160ff168d85015286015163ffffffff1686840152958b01959184019160010161279a565b50509d89019d97505050938601935050600101612754565b6001600160a01b038616815260a06020820152600061280c60a08301876122cc565b828103604084015261281e818761264e565b905082810360608401526128328186612736565b9050828103608084015261284681856122cc565b98975050505050505050565b60006020828403121561286457600080fd5b815161132d81611470565b848152608060208201526000612888608083018661264e565b828103604084015261289a8186612736565b90508281036060840152610de581856122cc565b8381526060602082015260006128c7606083018561264e565b82810360408401526128d981856122cc565b969550505050505056fea2646970667358221220fe9aeb2923c79b329e15f469ded294b7c8f953591673f78360a251462b46f9d064736f6c63430008170033", "devdoc": { "kind": "dev", "methods": { @@ -1540,6 +1555,7 @@ "owner": "The address to set as the owner of the project. The ERC-721 which confers this project's ownership will be sent to this address." }, "returns": { + "hook": "The 721 tiers hook that was deployed for the project.", "projectId": "The ID of the newly launched project." } }, @@ -1552,6 +1568,7 @@ "projectId": "The ID of the project that rulesets are being launched for." }, "returns": { + "hook": "The 721 tiers hook that was deployed for the project.", "rulesetId": "The ID of the successfully created ruleset." } }, @@ -1564,6 +1581,7 @@ "queueRulesetsConfig": "Configuration which dictates the project's newly queued rulesets." }, "returns": { + "hook": "The 721 tiers hook that was deployed for the project.", "rulesetId": "The ID of the successfully created ruleset." } } @@ -1594,7 +1612,7 @@ }, "version": 1 }, - "gitCommit": "4c5a6a4ff88604a9c0a981284b933b4e7757161c", + "gitCommit": "ad100ab7826a4aace8ac39612835a18c1e961ec2", "sourceName": "src/JB721TiersHookProjectDeployer.sol", "chainId": "11155420", "linkReferences": {}, diff --git a/deployments/nana-721-hook-testnet/optimism_sepolia/execution/371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8.json b/deployments/nana-721-hook-testnet/optimism_sepolia/execution/371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8.json new file mode 100644 index 00000000..0e1847fe --- /dev/null +++ b/deployments/nana-721-hook-testnet/optimism_sepolia/execution/371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8.json @@ -0,0 +1,221 @@ +{ + "_format": "sphinx-sol-execution-artifact-1", + "transactions": [ + { + "receipt": { + "blockHash": "0xcdf3ebf1e563a62bc12116198e0b0ce663fd10fa6515eabbc27f97c1af325b54", + "blockNumber": 17489716, + "contractAddress": null, + "cumulativeGasUsed": "1156454", + "from": "0x0c1c9049564269275059032Fb484Aa2e7Ab779af", + "gasPrice": "1000285", + "gasUsed": "176665", + "hash": "0xf9ca1c32e3bc5b0e722861acf798df328fa66951ded5eca546a5ff3a8db7db10", + "index": 6, + "logs": [ + { + "address": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463", + "blockHash": "0xcdf3ebf1e563a62bc12116198e0b0ce663fd10fa6515eabbc27f97c1af325b54", + "blockNumber": 17489716, + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "index": 14, + "topics": [ + "0x572f161235911da04685a68c06adf558fc7e4a36909dca394650e0adc19cc93d", + "0x0000000000000000000000000c1c9049564269275059032fb484aa2e7ab779af", + "0x000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c3", + "0x8a1bc3e759dd0559fd5078ab5c36cec3c5cc9f5171bd64112bd636beddb7ca14" + ], + "transactionHash": "0xf9ca1c32e3bc5b0e722861acf798df328fa66951ded5eca546a5ff3a8db7db10", + "transactionIndex": 6 + }, + { + "address": "0xcd414DF3f7b7dA1F867fF6B5499879308087F0c3", + "blockHash": "0xcdf3ebf1e563a62bc12116198e0b0ce663fd10fa6515eabbc27f97c1af325b54", + "blockNumber": 17489716, + "data": "0x000000000000000000000000a2ea7657440875bf916cbfc0cfa88f13e38ad463000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "index": 15, + "topics": [ + "0x382c7aec02462c9b086aba9a7f8dbb1fb8bf336e7b624b0149eeca6726d0fb4a", + "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8", + "0x0000000000000000000000000000000000000000000000000000000000000003" + ], + "transactionHash": "0xf9ca1c32e3bc5b0e722861acf798df328fa66951ded5eca546a5ff3a8db7db10", + "transactionIndex": 6 + } + ], + "logsBloom": "0x000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000400200001000000200000000200000000000000040000000000200000000000000000000100000000000000000001000000000002000000000000000008000000000000000000000000000000000000000000040000000000000000001000000000000000000000080000000000000000000000040000000000000000000020000000020000000008000001000000000004000000000020000000000000000000000000000000000000000000000000000000000000000020000000000000000000000400000400000a0000000000000000000", + "status": 1, + "to": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463" + }, + "response": { + "accessList": [], + "blockNumber": 17489716, + "blockHash": "0xcdf3ebf1e563a62bc12116198e0b0ce663fd10fa6515eabbc27f97c1af325b54", + "chainId": "11155420", + "data": "0xbe6002c2000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c3000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000003448f38f835371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000aa37dc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000010000000000000000000000000094bbb774520c1e0bd2afb9b3b63cc11102ed7a7b000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a2ea7657440875bf916cbfc0cfa88f13e38ad46300000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000319f8c3ef925ed2d76793c7967be031ffe855a7eda3e53febd01064c39b53508ca0b44b2915cc9faadf476e43e1451843390a74b0c263f6cc546420fc7a5ff49014a49fdb0b549e9c144fc1aa88fa725fa415d5b5055d3a633eb501cb489fd9b4000000000000000000000000000000000000000000000000000000000000004156788b273eba8848384686f9540ee3d92ddcdc26c8271f29a00d5b08f003ecc465ec6968a34470418793c1f1cf4cf744e9131595eabdb81e083505aba2c0e1ac1b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "from": "0x0c1c9049564269275059032Fb484Aa2e7Ab779af", + "gasLimit": "188958", + "gasPrice": "1000285", + "hash": "0xf9ca1c32e3bc5b0e722861acf798df328fa66951ded5eca546a5ff3a8db7db10", + "maxFeePerGas": "1000570", + "maxPriorityFeePerGas": "1000000", + "nonce": 112, + "signature": { + "networkV": null, + "r": "0xfbab9479c57893d34e6972dc76bf21b632c408b808e0313464b5ce9243591d56", + "s": "0x1cecd1e946dbfe4b9b0fb610ef66144ae5c618d53b8490f7386fc120f880f5d5", + "v": 28 + }, + "to": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463", + "type": 2, + "value": "0" + } + }, + { + "receipt": { + "blockHash": "0xc915b27e3217a41600651f1cc07b08418770b6bb7df0d29897c8cc5a483e77c1", + "blockNumber": 17489747, + "contractAddress": null, + "cumulativeGasUsed": "5069869", + "from": "0x0c1c9049564269275059032Fb484Aa2e7Ab779af", + "gasPrice": "1000288", + "gasUsed": "2498301", + "hash": "0x351f39e1a1817d6fb2f5e225fe6de2c97554fce300b9ff50b90089ec233f6589", + "index": 5, + "logs": [ + { + "address": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463", + "blockHash": "0xc915b27e3217a41600651f1cc07b08418770b6bb7df0d29897c8cc5a483e77c1", + "blockNumber": 17489747, + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "index": 23, + "topics": [ + "0x572f161235911da04685a68c06adf558fc7e4a36909dca394650e0adc19cc93d", + "0x0000000000000000000000000c1c9049564269275059032fb484aa2e7ab779af", + "0x000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c3", + "0x6329e7957382a54508a0f820e3c660799f769f199a06f666aa818cf509900b43" + ], + "transactionHash": "0x351f39e1a1817d6fb2f5e225fe6de2c97554fce300b9ff50b90089ec233f6589", + "transactionIndex": 5 + }, + { + "address": "0x94BBb774520C1E0Bd2aFb9b3B63cc11102ED7A7B", + "blockHash": "0xc915b27e3217a41600651f1cc07b08418770b6bb7df0d29897c8cc5a483e77c1", + "blockNumber": 17489747, + "data": "0x", + "index": 24, + "topics": [ + "0x6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8", + "0x000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c3" + ], + "transactionHash": "0x351f39e1a1817d6fb2f5e225fe6de2c97554fce300b9ff50b90089ec233f6589", + "transactionIndex": 5 + }, + { + "address": "0xcd414DF3f7b7dA1F867fF6B5499879308087F0c3", + "blockHash": "0xc915b27e3217a41600651f1cc07b08418770b6bb7df0d29897c8cc5a483e77c1", + "blockNumber": 17489747, + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "index": 25, + "topics": [ + "0xa65fb05c5808f5f389d72edeaf719ce38f4cc55c1f69ca3cbfb31c21501caa07", + "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8" + ], + "transactionHash": "0x351f39e1a1817d6fb2f5e225fe6de2c97554fce300b9ff50b90089ec233f6589", + "transactionIndex": 5 + }, + { + "address": "0xcd414DF3f7b7dA1F867fF6B5499879308087F0c3", + "blockHash": "0xc915b27e3217a41600651f1cc07b08418770b6bb7df0d29897c8cc5a483e77c1", + "blockNumber": 17489747, + "data": "0x", + "index": 26, + "topics": [ + "0x4383d976757d67ca920616be0b6430a681ea9d3dcce8d6d61d4603ca4a9bff63", + "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8" + ], + "transactionHash": "0x351f39e1a1817d6fb2f5e225fe6de2c97554fce300b9ff50b90089ec233f6589", + "transactionIndex": 5 + } + ], + "logsBloom": "0x00000000000010000000000000080000000000000000000000000000000000000080000000000000000000000040020000100000000000000020000000000000000000000000220000000000000000000010000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000004000000000000000000100000000000008000000008000000000000000000000004000800000000000000002000000802200000000000000100002000004000000000002000000000000000000000000040000000000000000000000000000000000000000000008000000000000000240000040000080800000000008000000", + "status": 1, + "to": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463" + }, + "response": { + "accessList": [], + "blockNumber": 17489747, + "blockHash": "0xc915b27e3217a41600651f1cc07b08418770b6bb7df0d29897c8cc5a483e77c1", + "chainId": "11155420", + "data": "0xbe6002c2000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000002d64e65ec46d00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000aa37dc0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000004e59b44847b379578588920ca78fbf26c0b4956c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029e88700000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000002ab84a423732315469657273486f6f6b50726f6a6563744465706c6f79657200000060e06040523480156200001157600080fd5b5060405162002a3838038062002a3883398101604081905262000034916200006b565b6001600160a01b0391821660805291811660a0521660c052620000bf565b6001600160a01b03811681146200006857600080fd5b50565b6000806000606084860312156200008157600080fd5b83516200008e8162000052565b6020850151909350620000a18162000052565b6040850151909250620000b48162000052565b809150509250925092565b60805160a05160c0516129196200011f600039600081816101030152818161026a0152818161047201526105e401526000818160b10152818161016401528181610365015261057101526000818161013d0152610a3001526129196000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063abf8c5c811610050578063abf8c5c8146100fe578063ac6a26f814610125578063f434c9141461013857600080fd5b80633c3a22bb1461007757806388bc2ef3146100ac5780638b716777146100eb575b600080fd5b61008a6100853660046111d8565b61015f565b604080519283526001600160a01b039091166020830152015b60405180910390f35b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100a3565b61008a6100f9366004611261565b61035d565b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b61008a610133366004611296565b610569565b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e49190611310565b6001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102459190611334565b61025090600161134d565b60405163cc7bb31f60e01b81529092506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f906102a190859089906004016116d3565b6020604051808303816000875af11580156102c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e49190611310565b90506102fa866102f386612141565b83866106d0565b6040516351106b4b60e11b8152600481018390526001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561033c57600080fd5b505af1158015610350573d6000803e3d6000fd5b5050505094509492505050565b60008061045b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e59190611310565b6001600160a01b0316636352211e886040518263ffffffff1660e01b815260040161041291815260200190565b602060405180830381865afa15801561042f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104539190611310565b8760026109d8565b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f906104a990899089906004016116d3565b6020604051808303816000875af11580156104c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ec9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b5050505061055e8685610557906121f8565b8386610ae6565b915094509492505050565b6000806105cd7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f9061061b90899089906004016116d3565b6020604051808303816000875af115801561063a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065e9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b1580156106a357600080fd5b505af11580156106b7573d6000803e3d6000fd5b5050505061055e86856106c990612238565b8386610df0565b60208301515160008167ffffffffffffffff8111156106f1576106f16117f3565b60405190808252806020026020018201604052801561072a57816020015b6107176110a7565b81526020019060019003908161070f5790505b50905060005b8281101561095057600086602001518281518110610750576107506122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e0015115158152602001896001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061093c5761093c6122b6565b602090810291909101015250600101610730565b50845160408087015160608801519151634e530d8960e11b81526001600160a01b03871693639ca61b129361098c938c938892906004016127ea565b6020604051808303816000875af11580156109ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cf9190611334565b50505050505050565b336001600160a01b0384168114801590610a9d5750604051631a45b42760e11b81526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000000000000000000000000000000000000000000000169063348b684e9060c401602060405180830381865afa158015610a77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9b9190612852565b155b15610ae057604051631326f75560e11b81526001600160a01b03808616600483015282166024820152604481018490526064810183905260840160405180910390fd5b50505050565b602083015151600090818167ffffffffffffffff811115610b0957610b096117f3565b604051908082528060200260200182016040528015610b4257816020015b610b2f6110a7565b815260200190600190039081610b275790505b50905060005b82811015610d6857600087602001518281518110610b6857610b686122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610d5457610d546122b6565b602090810291909101015250600101610b48565b5060408087015160608801519151632a550fab60e11b81526001600160a01b038716926354aa1f5692610da2928c9287929160040161286f565b6020604051808303816000875af1158015610dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de59190611334565b979650505050505050565b602083015151600090818167ffffffffffffffff811115610e1357610e136117f3565b604051908082528060200260200182016040528015610e4c57816020015b610e396110a7565b815260200190600190039081610e315790505b50905060005b8281101561107257600087602001518281518110610e7257610e726122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061105e5761105e6122b6565b602090810291909101015250600101610e52565b506040808701519051630e18de6b60e41b81526001600160a01b0386169163e18de6b091610da2918b918691906004016128ae565b6040805161010080820183526000808352602080840182905283850182905260608085018390526080808601849052865161028081018852848152928301849052958201839052810182905293840181905260a084810182905260c0850182905260e0850182905291840181905261012084018190526101408401819052610160840181905261018084018190526101a084018190526101c084018190526101e08401819052610200840181905261022084018190526102408401819052610260840152909190820190815260200160608152602001606081525090565b6001600160a01b038116811461119a57600080fd5b50565b80356111a881611185565b919050565b600061016082840312156111c057600080fd5b50919050565b6000608082840312156111c057600080fd5b600080600080608085870312156111ee57600080fd5b84356111f981611185565b9350602085013567ffffffffffffffff8082111561121657600080fd5b611222888389016111ad565b9450604087013591508082111561123857600080fd5b50611245878288016111c6565b925050606085013561125681611185565b939692955090935050565b6000806000806080858703121561127757600080fd5b84359350602085013567ffffffffffffffff8082111561121657600080fd5b600080600080608085870312156112ac57600080fd5b84359350602085013567ffffffffffffffff808211156112cb57600080fd5b6112d7888389016111ad565b945060408701359150808211156112ed57600080fd5b5085016060818803121561130057600080fd5b9150606085013561125681611185565b60006020828403121561132257600080fd5b815161132d81611185565b9392505050565b60006020828403121561134657600080fd5b5051919050565b8082018082111561136e57634e487b7160e01b600052601160045260246000fd5b92915050565b6000808335601e1984360301811261138b57600080fd5b830160208101925035905067ffffffffffffffff8111156113ab57600080fd5b8036038213156113ba57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008235607e1983360301811261140057600080fd5b90910192915050565b80356cffffffffffffffffffffffffff811681146111a857600080fd5b803563ffffffff811681146111a857600080fd5b803561ffff811681146111a857600080fd5b803562ffffff811681146111a857600080fd5b803560ff811681146111a857600080fd5b801515811461119a57600080fd5b80356111a881611470565b600060808084018335601e198536030181126114a457600080fd5b8401602081810191359067ffffffffffffffff8211156114c357600080fd5b6101c080830236038413156114d757600080fd5b608089529382905260a09384890160005b8481101561162357611510826114fd88611409565b6cffffffffffffffffffffffffff169052565b61151b848701611426565b63ffffffff16848301526040611532878201611426565b63ffffffff1690830152606061154987820161143a565b61ffff169083015261155c86890161119d565b6001600160a01b031688830152858701358783015260c061157e81880161144c565b62ffffff169083015260e061159487820161145f565b60ff16908301526101006115a987820161147e565b1515908301526101206115bd87820161147e565b1515908301526101406115d187820161147e565b1515908301526101606115e587820161147e565b1515908301526101806115f987820161147e565b1515908301526101a061160d87820161147e565b15159083015294820194908201906001016114e8565b5061163060208a01611426565b63ffffffff811660208c0152965061164a60408a0161145f565b60ff811660408c0152965061166160608a0161119d565b6001600160a01b03811660608c015296509998505050505050505050565b803561168a81611470565b15158252602081013561169c81611470565b1515602083015260408101356116b181611470565b1515604083015260608101356116c681611470565b8015156060840152505050565b8281526040602082015260006116e98384611374565b61016060408501526117006101a0850182846113c1565b9150506117106020850185611374565b603f19808685030160608701526117288483856113c1565b93506117376040880188611374565b93509150808685030160808701526117508484846113c1565b935061175e6060880161119d565b6001600160a01b03811660a0880152925061177c6080880188611374565b93509150808685030160c08701526117958484846113c1565b93506117a460a08801886113ea565b9250808685030160e087015250506117bc8282611489565b9150506117cb60c0850161119d565b6001600160a01b03166101008401526117eb610120840160e0860161167f565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405290565b6040805190810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405160c0810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516080810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051610100810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516060810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051601f8201601f1916810167ffffffffffffffff8111828210171561190c5761190c6117f3565b604052919050565b600082601f83011261192557600080fd5b813567ffffffffffffffff81111561193f5761193f6117f3565b611952601f8201601f19166020016118e3565b81815284602083860101111561196757600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff82111561199e5761199e6117f3565b5060051b60200190565b803565ffffffffffff811681146111a857600080fd5b80356dffffffffffffffffffffffffffff811681146111a857600080fd5b600061022082840312156119ef57600080fd5b6119f7611809565b9050611a028261143a565b8152611a106020830161143a565b6020820152611a2160408301611426565b6040820152611a326060830161147e565b6060820152611a436080830161147e565b6080820152611a5460a0830161147e565b60a0820152611a6560c0830161147e565b60c0820152611a7660e0830161147e565b60e0820152610100611a8981840161147e565b90820152610120611a9b83820161147e565b90820152610140611aad83820161147e565b90820152610160611abf83820161147e565b90820152610180611ad183820161147e565b908201526101a0611ae383820161147e565b908201526101c0611af583820161147e565b908201526101e0611b0783820161147e565b90820152610200611b1983820161143a565b9082015292915050565b803566ffffffffffffff811681146111a857600080fd5b600082601f830112611b4b57600080fd5b81356020611b60611b5b83611984565b6118e3565b82815260059290921b84018101918181019086841115611b7f57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ba357600080fd5b908801906040828b03601f1901811315611bbc57600080fd5b611bc4611833565b8784013581528184013583811115611bdb57600080fd5b8085019450508b603f850112611bf057600080fd5b878401359250611c02611b5b84611984565b83815260c09093028401820192888101908d851115611c2057600080fd5b948301945b84861015611cb95760c0868f031215611c3d57600080fd5b611c45611856565b8635611c5081611470565b8152611c5d878c01611426565b8b820152611c6c858801611b23565b858201526060870135611c7e81611185565b6060820152611c8f608088016119a8565b608082015260a0870135611ca281611185565b60a0820152825260c0959095019490890190611c25565b828a0152508652505050918301918301611b83565b509695505050505050565b600082601f830112611cea57600080fd5b81356020611cfa611b5b83611984565b82815260069290921b84018101918181019086841115611d1957600080fd5b8286015b84811015611cce5760408189031215611d365760008081fd5b611d3e611833565b81357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81168114611d6b5760008081fd5b8152611d78828601611426565b81860152835291830191604001611d1d565b600082601f830112611d9b57600080fd5b81356020611dab611b5b83611984565b82815260059290921b84018101918181019086841115611dca57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611def5760008081fd5b908801906080828b03601f1901811315611e095760008081fd5b611e11611879565b87840135611e1e81611185565b8152604084810135611e2f81611185565b828a015260608581013585811115611e475760008081fd5b611e558f8c838a0101611cd9565b8484015250928501359284841115611e6f57600091508182fd5b611e7d8e8b86890101611cd9565b90830152508652505050918301918301611dce565b600082601f830112611ea357600080fd5b81356020611eb3611b5b83611984565b82815260059290921b84018101918181019086841115611ed257600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ef75760008081fd5b90880190610300828b03601f1901811315611f125760008081fd5b611f1a61189c565b611f258885016119a8565b81526040611f34818601611426565b898301526060611f458187016119be565b8284015260809150611f58828701611426565b9083015260a0611f6986820161119d565b8284015260c09150611f7d8e8388016119dc565b908301526102e085013584811115611f955760008081fd5b611fa38e8b83890101611b3a565b82840152505081840135915082821115611fbd5760008081fd5b611fcb8c8984870101611d8a565b60e08201528652505050918301918301611ed6565b600082601f830112611ff157600080fd5b81356020612001611b5b83611984565b82815260059290921b8401810191818101908684111561202057600080fd5b8286015b84811015611cce57803567ffffffffffffffff8082111561204457600080fd5b908801906040828b03601f190181131561205d57600080fd5b612065611833565b8784013561207281611185565b8152838201358381111561208557600080fd5b8085019450508b603f85011261209a57600080fd5b8784013592506120ac611b5b84611984565b83815260609093028401820192888101908d8511156120ca57600080fd5b948301945b8486101561212c576060868f0312156120e757600080fd5b6120ef6118c0565b86356120fa81611185565b8152612107878c0161145f565b8b820152612116858801611426565b81860152825260609590950194908901906120cf565b828a0152508652505050918301918301612024565b60006080823603121561215357600080fd5b61215b611879565b823567ffffffffffffffff8082111561217357600080fd5b61217f36838701611914565b8352602085013591508082111561219557600080fd5b6121a136838701611e92565b602084015260408501359150808211156121ba57600080fd5b6121c636838701611fe0565b604084015260608501359150808211156121df57600080fd5b506121ec36828601611914565b60608301525092915050565b60006080823603121561220a57600080fd5b612212611879565b61221b83611b23565b8152602083013567ffffffffffffffff8082111561219557600080fd5b60006060823603121561224a57600080fd5b6122526118c0565b61225b83611b23565b8152602083013567ffffffffffffffff8082111561227857600080fd5b61228436838701611e92565b6020840152604085013591508082111561229d57600080fd5b506122aa36828601611914565b60408301525092915050565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156122f2576020818501810151868301820152016122d6565b506000602082860101526020601f19601f83011685010191505092915050565b805161ffff168252602081015161232f602084018261ffff169052565b506040810151612347604084018263ffffffff169052565b50606081015161235b606084018215159052565b50608081015161236f608084018215159052565b5060a081015161238360a084018215159052565b5060c081015161239760c084018215159052565b5060e08101516123ab60e084018215159052565b5061010081810151151590830152610120808201511515908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c0808201511515908301526101e0808201511515908301526102008082015115159083015261022080820151151590830152610240808201516001600160a01b0316908301526102608082015161ffff811682850152610ae0565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180518552850151604086860181905281518187018190529187019160609081880190865b8181101561251d5785518051151584528b81015163ffffffff168c8501528581015166ffffffffffffff1686850152848101516001600160a01b039081168686015260808083015165ffffffffffff169086015260a0918201511690840152948a019460c0909201916001016124ac565b50509c88019c965050509285019250600101612475565b509198975050505050505050565b60008151808452602080850194506020840160005b838110156125a257815180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16885283015163ffffffff168388015260409096019590820190600101612557565b509495945050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f19868403018952815160806001600160a01b038083511686528087840151168787015250604080830151828288015261260f83880182612542565b925050506060808301519250858203818701525061262d8183612542565b9a86019a94505050908301906001016125ca565b5090979650505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f198684030189528151805165ffffffffffff1684528481015163ffffffff908116868601526040808301516dffffffffffffffffffffffffffff1690860152606080830151909116908501526080808201516001600160a01b03169085015260a08082015161036091906126eb82880182612312565b505060c08201518161032087015261270582870182612457565b91505060e0820151915084810361034086015261272281836125ad565b9a86019a945050509083019060010161266b565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180516001600160a01b03908116865290860151604087870181905281518188018190529188019290916060919082890190875b818110156127d25786518051851684528c81015160ff168d85015286015163ffffffff1686840152958b01959184019160010161279a565b50509d89019d97505050938601935050600101612754565b6001600160a01b038616815260a06020820152600061280c60a08301876122cc565b828103604084015261281e818761264e565b905082810360608401526128328186612736565b9050828103608084015261284681856122cc565b98975050505050505050565b60006020828403121561286457600080fd5b815161132d81611470565b848152608060208201526000612888608083018661264e565b828103604084015261289a8186612736565b90508281036060840152610de581856122cc565b8381526060602082015260006128c7606083018561264e565b82810360408401526128d981856122cc565b969550505050505056fea2646970667358221220fe9aeb2923c79b329e15f469ded294b7c8f953591673f78360a251462b46f9d064736f6c63430008170033000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad220000000000000000000000004cdb4200e4e65a277676cd5e8d3c7c7c4da7fbe50000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be000000000000000000000000000000000000000000000000000000000000000000000000000000034be85daadd1070977178137ab4647b176ea8389a4e12ca9a5bbe7c4b915a4b5216209b5acfcf9f6e00ddd2d4b9dc93d5431e005d1be914e6cb735db3754ce62614a49fdb0b549e9c144fc1aa88fa725fa415d5b5055d3a633eb501cb489fd9b400000000000000000000000000000000000000000000000000000000", + "from": "0x0c1c9049564269275059032Fb484Aa2e7Ab779af", + "gasLimit": "3228429", + "gasPrice": "1000288", + "hash": "0x351f39e1a1817d6fb2f5e225fe6de2c97554fce300b9ff50b90089ec233f6589", + "maxFeePerGas": "1000576", + "maxPriorityFeePerGas": "1000000", + "nonce": 113, + "signature": { + "networkV": null, + "r": "0x05fedf40ebd17c6a273a24b18aebddfcad562e05844a62cd32c829f5000c0859", + "s": "0x79b2511cf33f1c929d7771edaf40f19cfafb5988ffffa7318dbac3fb8a6e0bd7", + "v": 27 + }, + "to": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463", + "type": 2, + "value": "0" + } + } + ], + "merkleRoot": "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8", + "solcInputHashes": [ + "2fd444c97aa0fa789adae5192c86e854" + ], + "safeAddress": "0x94BBb774520C1E0Bd2aFb9b3B63cc11102ED7A7B", + "moduleAddress": "0xcd414DF3f7b7dA1F867fF6B5499879308087F0c3", + "executorAddress": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463", + "nonce": "3", + "chainId": "11155420", + "actions": [ + { + "to": "0x4e59b44847b379578588920cA78FbF26c0B4956C", + "value": "0", + "txData": "0x4a423732315469657273486f6f6b50726f6a6563744465706c6f79657200000060e06040523480156200001157600080fd5b5060405162002a3838038062002a3883398101604081905262000034916200006b565b6001600160a01b0391821660805291811660a0521660c052620000bf565b6001600160a01b03811681146200006857600080fd5b50565b6000806000606084860312156200008157600080fd5b83516200008e8162000052565b6020850151909350620000a18162000052565b6040850151909250620000b48162000052565b809150509250925092565b60805160a05160c0516129196200011f600039600081816101030152818161026a0152818161047201526105e401526000818160b10152818161016401528181610365015261057101526000818161013d0152610a3001526129196000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063abf8c5c811610050578063abf8c5c8146100fe578063ac6a26f814610125578063f434c9141461013857600080fd5b80633c3a22bb1461007757806388bc2ef3146100ac5780638b716777146100eb575b600080fd5b61008a6100853660046111d8565b61015f565b604080519283526001600160a01b039091166020830152015b60405180910390f35b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100a3565b61008a6100f9366004611261565b61035d565b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b61008a610133366004611296565b610569565b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e49190611310565b6001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102459190611334565b61025090600161134d565b60405163cc7bb31f60e01b81529092506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f906102a190859089906004016116d3565b6020604051808303816000875af11580156102c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e49190611310565b90506102fa866102f386612141565b83866106d0565b6040516351106b4b60e11b8152600481018390526001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561033c57600080fd5b505af1158015610350573d6000803e3d6000fd5b5050505094509492505050565b60008061045b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e59190611310565b6001600160a01b0316636352211e886040518263ffffffff1660e01b815260040161041291815260200190565b602060405180830381865afa15801561042f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104539190611310565b8760026109d8565b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f906104a990899089906004016116d3565b6020604051808303816000875af11580156104c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ec9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b5050505061055e8685610557906121f8565b8386610ae6565b915094509492505050565b6000806105cd7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f9061061b90899089906004016116d3565b6020604051808303816000875af115801561063a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065e9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b1580156106a357600080fd5b505af11580156106b7573d6000803e3d6000fd5b5050505061055e86856106c990612238565b8386610df0565b60208301515160008167ffffffffffffffff8111156106f1576106f16117f3565b60405190808252806020026020018201604052801561072a57816020015b6107176110a7565b81526020019060019003908161070f5790505b50905060005b8281101561095057600086602001518281518110610750576107506122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e0015115158152602001896001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061093c5761093c6122b6565b602090810291909101015250600101610730565b50845160408087015160608801519151634e530d8960e11b81526001600160a01b03871693639ca61b129361098c938c938892906004016127ea565b6020604051808303816000875af11580156109ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cf9190611334565b50505050505050565b336001600160a01b0384168114801590610a9d5750604051631a45b42760e11b81526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000000000000000000000000000000000000000000000169063348b684e9060c401602060405180830381865afa158015610a77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9b9190612852565b155b15610ae057604051631326f75560e11b81526001600160a01b03808616600483015282166024820152604481018490526064810183905260840160405180910390fd5b50505050565b602083015151600090818167ffffffffffffffff811115610b0957610b096117f3565b604051908082528060200260200182016040528015610b4257816020015b610b2f6110a7565b815260200190600190039081610b275790505b50905060005b82811015610d6857600087602001518281518110610b6857610b686122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610d5457610d546122b6565b602090810291909101015250600101610b48565b5060408087015160608801519151632a550fab60e11b81526001600160a01b038716926354aa1f5692610da2928c9287929160040161286f565b6020604051808303816000875af1158015610dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de59190611334565b979650505050505050565b602083015151600090818167ffffffffffffffff811115610e1357610e136117f3565b604051908082528060200260200182016040528015610e4c57816020015b610e396110a7565b815260200190600190039081610e315790505b50905060005b8281101561107257600087602001518281518110610e7257610e726122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061105e5761105e6122b6565b602090810291909101015250600101610e52565b506040808701519051630e18de6b60e41b81526001600160a01b0386169163e18de6b091610da2918b918691906004016128ae565b6040805161010080820183526000808352602080840182905283850182905260608085018390526080808601849052865161028081018852848152928301849052958201839052810182905293840181905260a084810182905260c0850182905260e0850182905291840181905261012084018190526101408401819052610160840181905261018084018190526101a084018190526101c084018190526101e08401819052610200840181905261022084018190526102408401819052610260840152909190820190815260200160608152602001606081525090565b6001600160a01b038116811461119a57600080fd5b50565b80356111a881611185565b919050565b600061016082840312156111c057600080fd5b50919050565b6000608082840312156111c057600080fd5b600080600080608085870312156111ee57600080fd5b84356111f981611185565b9350602085013567ffffffffffffffff8082111561121657600080fd5b611222888389016111ad565b9450604087013591508082111561123857600080fd5b50611245878288016111c6565b925050606085013561125681611185565b939692955090935050565b6000806000806080858703121561127757600080fd5b84359350602085013567ffffffffffffffff8082111561121657600080fd5b600080600080608085870312156112ac57600080fd5b84359350602085013567ffffffffffffffff808211156112cb57600080fd5b6112d7888389016111ad565b945060408701359150808211156112ed57600080fd5b5085016060818803121561130057600080fd5b9150606085013561125681611185565b60006020828403121561132257600080fd5b815161132d81611185565b9392505050565b60006020828403121561134657600080fd5b5051919050565b8082018082111561136e57634e487b7160e01b600052601160045260246000fd5b92915050565b6000808335601e1984360301811261138b57600080fd5b830160208101925035905067ffffffffffffffff8111156113ab57600080fd5b8036038213156113ba57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008235607e1983360301811261140057600080fd5b90910192915050565b80356cffffffffffffffffffffffffff811681146111a857600080fd5b803563ffffffff811681146111a857600080fd5b803561ffff811681146111a857600080fd5b803562ffffff811681146111a857600080fd5b803560ff811681146111a857600080fd5b801515811461119a57600080fd5b80356111a881611470565b600060808084018335601e198536030181126114a457600080fd5b8401602081810191359067ffffffffffffffff8211156114c357600080fd5b6101c080830236038413156114d757600080fd5b608089529382905260a09384890160005b8481101561162357611510826114fd88611409565b6cffffffffffffffffffffffffff169052565b61151b848701611426565b63ffffffff16848301526040611532878201611426565b63ffffffff1690830152606061154987820161143a565b61ffff169083015261155c86890161119d565b6001600160a01b031688830152858701358783015260c061157e81880161144c565b62ffffff169083015260e061159487820161145f565b60ff16908301526101006115a987820161147e565b1515908301526101206115bd87820161147e565b1515908301526101406115d187820161147e565b1515908301526101606115e587820161147e565b1515908301526101806115f987820161147e565b1515908301526101a061160d87820161147e565b15159083015294820194908201906001016114e8565b5061163060208a01611426565b63ffffffff811660208c0152965061164a60408a0161145f565b60ff811660408c0152965061166160608a0161119d565b6001600160a01b03811660608c015296509998505050505050505050565b803561168a81611470565b15158252602081013561169c81611470565b1515602083015260408101356116b181611470565b1515604083015260608101356116c681611470565b8015156060840152505050565b8281526040602082015260006116e98384611374565b61016060408501526117006101a0850182846113c1565b9150506117106020850185611374565b603f19808685030160608701526117288483856113c1565b93506117376040880188611374565b93509150808685030160808701526117508484846113c1565b935061175e6060880161119d565b6001600160a01b03811660a0880152925061177c6080880188611374565b93509150808685030160c08701526117958484846113c1565b93506117a460a08801886113ea565b9250808685030160e087015250506117bc8282611489565b9150506117cb60c0850161119d565b6001600160a01b03166101008401526117eb610120840160e0860161167f565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405290565b6040805190810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405160c0810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516080810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051610100810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516060810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051601f8201601f1916810167ffffffffffffffff8111828210171561190c5761190c6117f3565b604052919050565b600082601f83011261192557600080fd5b813567ffffffffffffffff81111561193f5761193f6117f3565b611952601f8201601f19166020016118e3565b81815284602083860101111561196757600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff82111561199e5761199e6117f3565b5060051b60200190565b803565ffffffffffff811681146111a857600080fd5b80356dffffffffffffffffffffffffffff811681146111a857600080fd5b600061022082840312156119ef57600080fd5b6119f7611809565b9050611a028261143a565b8152611a106020830161143a565b6020820152611a2160408301611426565b6040820152611a326060830161147e565b6060820152611a436080830161147e565b6080820152611a5460a0830161147e565b60a0820152611a6560c0830161147e565b60c0820152611a7660e0830161147e565b60e0820152610100611a8981840161147e565b90820152610120611a9b83820161147e565b90820152610140611aad83820161147e565b90820152610160611abf83820161147e565b90820152610180611ad183820161147e565b908201526101a0611ae383820161147e565b908201526101c0611af583820161147e565b908201526101e0611b0783820161147e565b90820152610200611b1983820161143a565b9082015292915050565b803566ffffffffffffff811681146111a857600080fd5b600082601f830112611b4b57600080fd5b81356020611b60611b5b83611984565b6118e3565b82815260059290921b84018101918181019086841115611b7f57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ba357600080fd5b908801906040828b03601f1901811315611bbc57600080fd5b611bc4611833565b8784013581528184013583811115611bdb57600080fd5b8085019450508b603f850112611bf057600080fd5b878401359250611c02611b5b84611984565b83815260c09093028401820192888101908d851115611c2057600080fd5b948301945b84861015611cb95760c0868f031215611c3d57600080fd5b611c45611856565b8635611c5081611470565b8152611c5d878c01611426565b8b820152611c6c858801611b23565b858201526060870135611c7e81611185565b6060820152611c8f608088016119a8565b608082015260a0870135611ca281611185565b60a0820152825260c0959095019490890190611c25565b828a0152508652505050918301918301611b83565b509695505050505050565b600082601f830112611cea57600080fd5b81356020611cfa611b5b83611984565b82815260069290921b84018101918181019086841115611d1957600080fd5b8286015b84811015611cce5760408189031215611d365760008081fd5b611d3e611833565b81357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81168114611d6b5760008081fd5b8152611d78828601611426565b81860152835291830191604001611d1d565b600082601f830112611d9b57600080fd5b81356020611dab611b5b83611984565b82815260059290921b84018101918181019086841115611dca57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611def5760008081fd5b908801906080828b03601f1901811315611e095760008081fd5b611e11611879565b87840135611e1e81611185565b8152604084810135611e2f81611185565b828a015260608581013585811115611e475760008081fd5b611e558f8c838a0101611cd9565b8484015250928501359284841115611e6f57600091508182fd5b611e7d8e8b86890101611cd9565b90830152508652505050918301918301611dce565b600082601f830112611ea357600080fd5b81356020611eb3611b5b83611984565b82815260059290921b84018101918181019086841115611ed257600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ef75760008081fd5b90880190610300828b03601f1901811315611f125760008081fd5b611f1a61189c565b611f258885016119a8565b81526040611f34818601611426565b898301526060611f458187016119be565b8284015260809150611f58828701611426565b9083015260a0611f6986820161119d565b8284015260c09150611f7d8e8388016119dc565b908301526102e085013584811115611f955760008081fd5b611fa38e8b83890101611b3a565b82840152505081840135915082821115611fbd5760008081fd5b611fcb8c8984870101611d8a565b60e08201528652505050918301918301611ed6565b600082601f830112611ff157600080fd5b81356020612001611b5b83611984565b82815260059290921b8401810191818101908684111561202057600080fd5b8286015b84811015611cce57803567ffffffffffffffff8082111561204457600080fd5b908801906040828b03601f190181131561205d57600080fd5b612065611833565b8784013561207281611185565b8152838201358381111561208557600080fd5b8085019450508b603f85011261209a57600080fd5b8784013592506120ac611b5b84611984565b83815260609093028401820192888101908d8511156120ca57600080fd5b948301945b8486101561212c576060868f0312156120e757600080fd5b6120ef6118c0565b86356120fa81611185565b8152612107878c0161145f565b8b820152612116858801611426565b81860152825260609590950194908901906120cf565b828a0152508652505050918301918301612024565b60006080823603121561215357600080fd5b61215b611879565b823567ffffffffffffffff8082111561217357600080fd5b61217f36838701611914565b8352602085013591508082111561219557600080fd5b6121a136838701611e92565b602084015260408501359150808211156121ba57600080fd5b6121c636838701611fe0565b604084015260608501359150808211156121df57600080fd5b506121ec36828601611914565b60608301525092915050565b60006080823603121561220a57600080fd5b612212611879565b61221b83611b23565b8152602083013567ffffffffffffffff8082111561219557600080fd5b60006060823603121561224a57600080fd5b6122526118c0565b61225b83611b23565b8152602083013567ffffffffffffffff8082111561227857600080fd5b61228436838701611e92565b6020840152604085013591508082111561229d57600080fd5b506122aa36828601611914565b60408301525092915050565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156122f2576020818501810151868301820152016122d6565b506000602082860101526020601f19601f83011685010191505092915050565b805161ffff168252602081015161232f602084018261ffff169052565b506040810151612347604084018263ffffffff169052565b50606081015161235b606084018215159052565b50608081015161236f608084018215159052565b5060a081015161238360a084018215159052565b5060c081015161239760c084018215159052565b5060e08101516123ab60e084018215159052565b5061010081810151151590830152610120808201511515908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c0808201511515908301526101e0808201511515908301526102008082015115159083015261022080820151151590830152610240808201516001600160a01b0316908301526102608082015161ffff811682850152610ae0565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180518552850151604086860181905281518187018190529187019160609081880190865b8181101561251d5785518051151584528b81015163ffffffff168c8501528581015166ffffffffffffff1686850152848101516001600160a01b039081168686015260808083015165ffffffffffff169086015260a0918201511690840152948a019460c0909201916001016124ac565b50509c88019c965050509285019250600101612475565b509198975050505050505050565b60008151808452602080850194506020840160005b838110156125a257815180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16885283015163ffffffff168388015260409096019590820190600101612557565b509495945050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f19868403018952815160806001600160a01b038083511686528087840151168787015250604080830151828288015261260f83880182612542565b925050506060808301519250858203818701525061262d8183612542565b9a86019a94505050908301906001016125ca565b5090979650505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f198684030189528151805165ffffffffffff1684528481015163ffffffff908116868601526040808301516dffffffffffffffffffffffffffff1690860152606080830151909116908501526080808201516001600160a01b03169085015260a08082015161036091906126eb82880182612312565b505060c08201518161032087015261270582870182612457565b91505060e0820151915084810361034086015261272281836125ad565b9a86019a945050509083019060010161266b565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180516001600160a01b03908116865290860151604087870181905281518188018190529188019290916060919082890190875b818110156127d25786518051851684528c81015160ff168d85015286015163ffffffff1686840152958b01959184019160010161279a565b50509d89019d97505050938601935050600101612754565b6001600160a01b038616815260a06020820152600061280c60a08301876122cc565b828103604084015261281e818761264e565b905082810360608401526128328186612736565b9050828103608084015261284681856122cc565b98975050505050505050565b60006020828403121561286457600080fd5b815161132d81611470565b848152608060208201526000612888608083018661264e565b828103604084015261289a8186612736565b90508281036060840152610de581856122cc565b8381526060602082015260006128c7606083018561264e565b82810360408401526128d981856122cc565b969550505050505056fea2646970667358221220fe9aeb2923c79b329e15f469ded294b7c8f953591673f78360a251462b46f9d064736f6c63430008170033000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad220000000000000000000000004cdb4200e4e65a277676cd5e8d3c7c7c4da7fbe50000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be", + "gas": "2746503", + "operation": 0, + "requireSuccess": true + } + ], + "sphinxConfig": { + "projectName": "nana-721-hook-testnet", + "orgId": "my-org-id", + "owners": [ + "0xba5ed94ab173e1242638F28d1449b24F1A883292" + ], + "mainnets": [ + "ethereum", + "optimism", + "base", + "arbitrum" + ], + "testnets": [ + "ethereum_sepolia", + "optimism_sepolia", + "base_sepolia", + "arbitrum_sepolia" + ], + "threshold": "1", + "saltNonce": "12" + }, + "executionMode": 2, + "initialState": { + "isSafeDeployed": true, + "isModuleDeployed": true, + "isExecuting": false + }, + "unlabeledContracts": [], + "arbitraryChain": false, + "libraries": [], + "gitCommit": "ad100ab7826a4aace8ac39612835a18c1e961ec2", + "safeInitData": null +} \ No newline at end of file diff --git a/deployments/nana-721-hook-testnet/sepolia/JB721TiersHookProjectDeployer.json b/deployments/nana-721-hook-testnet/sepolia/JB721TiersHookProjectDeployer.json index 2c65d317..aee0bb17 100644 --- a/deployments/nana-721-hook-testnet/sepolia/JB721TiersHookProjectDeployer.json +++ b/deployments/nana-721-hook-testnet/sepolia/JB721TiersHookProjectDeployer.json @@ -1,8 +1,8 @@ { "_format": "sphinx-sol-ct-artifact-1", - "merkleRoot": "0xe86112c80b3fdcd00444f5bde04496941e8a62863097b6d607d04af137595289", + "merkleRoot": "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8", "contractName": "JB721TiersHookProjectDeployer", - "address": "0x0Fa5747B59042c9C2A5A9C68C22919fa00468141", + "address": "0x0b41a8Be7E30a01A7367e06601eD204c469eF94D", "abi": [ { "type": "constructor", @@ -522,6 +522,11 @@ "name": "projectId", "type": "uint256", "internalType": "uint256" + }, + { + "name": "hook", + "type": "address", + "internalType": "contract IJB721TiersHook" } ], "stateMutability": "nonpayable" @@ -984,6 +989,11 @@ "name": "rulesetId", "type": "uint256", "internalType": "uint256" + }, + { + "name": "hook", + "type": "address", + "internalType": "contract IJB721TiersHook" } ], "stateMutability": "nonpayable" @@ -1412,6 +1422,11 @@ "name": "rulesetId", "type": "uint256", "internalType": "uint256" + }, + { + "name": "hook", + "type": "address", + "internalType": "contract IJB721TiersHook" } ], "stateMutability": "nonpayable" @@ -1443,85 +1458,85 @@ ] } ], - "solcInputHash": "30cd0d125ed0677fcbbeafa2ca950580", + "solcInputHash": "2fd444c97aa0fa789adae5192c86e854", "receipt": { - "blockHash": "0x607a9ca41d5bf221af49fe6f8924f1b3133175d261210b4a7366efe39ce6fb76", - "blockNumber": 6704842, + "blockHash": "0x20d573e6b57ae092e27309e8fddde3c0ce5ef2ee25fc3b5dd409b1c2dfdc91e5", + "blockNumber": 6723530, "contractAddress": null, - "cumulativeGasUsed": "11033761", + "cumulativeGasUsed": "13728131", "from": "0x0c1c9049564269275059032Fb484Aa2e7Ab779af", - "gasPrice": "5425704984", - "gasUsed": "2496012", - "hash": "0xcdb5c5216aba7c049e8e237c5145d3b49998f658145c2f7c6f2c7e9958a8a4d7", - "index": 76, + "gasPrice": "282410117", + "gasUsed": "2498305", + "hash": "0x61dec67929625cf6752bf5981fd52cdc110b26336a8d2996f15fa8ccaabe09db", + "index": 98, "logs": [ { "address": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463", - "blockHash": "0x607a9ca41d5bf221af49fe6f8924f1b3133175d261210b4a7366efe39ce6fb76", - "blockNumber": 6704842, + "blockHash": "0x20d573e6b57ae092e27309e8fddde3c0ce5ef2ee25fc3b5dd409b1c2dfdc91e5", + "blockNumber": 6723530, "data": "0x0000000000000000000000000000000000000000000000000000000000000000", - "index": 92, + "index": 125, "topics": [ "0x572f161235911da04685a68c06adf558fc7e4a36909dca394650e0adc19cc93d", "0x0000000000000000000000000c1c9049564269275059032fb484aa2e7ab779af", "0x000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c3", - "0xf3957240c51304d8b8b9cad3af57bea39a5be6b769272dd735d11b324148eff7" + "0xd0522d8a860d7cc2fb5c7d817035658aa90b6aa6231e24be6c6d9f66a08dc468" ], - "transactionHash": "0xcdb5c5216aba7c049e8e237c5145d3b49998f658145c2f7c6f2c7e9958a8a4d7", - "transactionIndex": 76 + "transactionHash": "0x61dec67929625cf6752bf5981fd52cdc110b26336a8d2996f15fa8ccaabe09db", + "transactionIndex": 98 }, { "address": "0x94BBb774520C1E0Bd2aFb9b3B63cc11102ED7A7B", - "blockHash": "0x607a9ca41d5bf221af49fe6f8924f1b3133175d261210b4a7366efe39ce6fb76", - "blockNumber": 6704842, + "blockHash": "0x20d573e6b57ae092e27309e8fddde3c0ce5ef2ee25fc3b5dd409b1c2dfdc91e5", + "blockNumber": 6723530, "data": "0x", - "index": 93, + "index": 126, "topics": [ "0x6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8", "0x000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c3" ], - "transactionHash": "0xcdb5c5216aba7c049e8e237c5145d3b49998f658145c2f7c6f2c7e9958a8a4d7", - "transactionIndex": 76 + "transactionHash": "0x61dec67929625cf6752bf5981fd52cdc110b26336a8d2996f15fa8ccaabe09db", + "transactionIndex": 98 }, { "address": "0xcd414DF3f7b7dA1F867fF6B5499879308087F0c3", - "blockHash": "0x607a9ca41d5bf221af49fe6f8924f1b3133175d261210b4a7366efe39ce6fb76", - "blockNumber": 6704842, - "data": "0x0000000000000000000000000000000000000000000000000000000000000004", - "index": 94, + "blockHash": "0x20d573e6b57ae092e27309e8fddde3c0ce5ef2ee25fc3b5dd409b1c2dfdc91e5", + "blockNumber": 6723530, + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "index": 127, "topics": [ "0xa65fb05c5808f5f389d72edeaf719ce38f4cc55c1f69ca3cbfb31c21501caa07", - "0xe86112c80b3fdcd00444f5bde04496941e8a62863097b6d607d04af137595289" + "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8" ], - "transactionHash": "0xcdb5c5216aba7c049e8e237c5145d3b49998f658145c2f7c6f2c7e9958a8a4d7", - "transactionIndex": 76 + "transactionHash": "0x61dec67929625cf6752bf5981fd52cdc110b26336a8d2996f15fa8ccaabe09db", + "transactionIndex": 98 }, { "address": "0xcd414DF3f7b7dA1F867fF6B5499879308087F0c3", - "blockHash": "0x607a9ca41d5bf221af49fe6f8924f1b3133175d261210b4a7366efe39ce6fb76", - "blockNumber": 6704842, + "blockHash": "0x20d573e6b57ae092e27309e8fddde3c0ce5ef2ee25fc3b5dd409b1c2dfdc91e5", + "blockNumber": 6723530, "data": "0x", - "index": 95, + "index": 128, "topics": [ "0x4383d976757d67ca920616be0b6430a681ea9d3dcce8d6d61d4603ca4a9bff63", - "0xe86112c80b3fdcd00444f5bde04496941e8a62863097b6d607d04af137595289" + "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8" ], - "transactionHash": "0xcdb5c5216aba7c049e8e237c5145d3b49998f658145c2f7c6f2c7e9958a8a4d7", - "transactionIndex": 76 + "transactionHash": "0x61dec67929625cf6752bf5981fd52cdc110b26336a8d2996f15fa8ccaabe09db", + "transactionIndex": 98 } ], - "logsBloom": "0x00000000000010010000004000080000000000000000000000000000000000000080000000000000000000000040020000100000000000000020000000000000000200000000210000000000000000000010000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000004200000000000000000100000000000000000000008000000000000000000010004000800000000000000002000000002200000000000000100002000004000000000002000000000000000000000000040000000000000000000000000000000000000000000008000000000000000200000000000080000000000008000000", + "logsBloom": "0x00000000000010000000000000080080000000000000000000000000000000000080000000000000000000000040020000100000000000000020000000000000000000000000220000000000000000000010000000000000000000000000000000000200000000000000000000040000000000000000000000000000000000004000000000000000000100000000000000000000008000000000000000000000004000800000000000000002000000002200000000000000100002000004000000000002000000000000000000000000040000000000000000000000400000000000000000000008000000000000000240000040000080000000000008000000", "status": 1, "to": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463" }, - "metadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IJBDirectory\",\"name\":\"directory\",\"type\":\"address\"},{\"internalType\":\"contract IJBPermissions\",\"name\":\"permissions\",\"type\":\"address\"},{\"internalType\":\"contract IJB721TiersHookDeployer\",\"name\":\"hookDeployer\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"permissionId\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBPermissioned_Unauthorized\"},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DIRECTORY\",\"outputs\":[{\"internalType\":\"contract IJBDirectory\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"HOOK_DEPLOYER\",\"outputs\":[{\"internalType\":\"contract IJB721TiersHookDeployer\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"PERMISSIONS\",\"outputs\":[{\"internalType\":\"contract IJBPermissions\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"struct JBDeploy721TiersHookConfig\",\"name\":\"deployTiersHookConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"contract IJB721TokenUriResolver\",\"name\":\"tokenUriResolver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"},{\"internalType\":\"struct JB721InitTiersConfig\",\"name\":\"tiersConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JB721TierConfig[]\",\"name\":\"tiers\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"votingUnits\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useReserveBeneficiaryAsDefault\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useVotingUnits\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotIncreaseDiscountPercent\",\"type\":\"bool\"}]},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"contract IJBPrices\",\"name\":\"prices\",\"type\":\"address\"}]},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"struct JB721TiersHookFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"noNewTiersWithReserves\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithVotes\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"preventOverspending\",\"type\":\"bool\"}]}]},{\"internalType\":\"struct JBLaunchProjectConfig\",\"name\":\"launchProjectConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"projectUri\",\"type\":\"string\"},{\"internalType\":\"struct JBPayDataHookRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"decayPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBPayDataHookRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"redemptionRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowCrosschainSuckerExtension\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useTotalSurplusForRedemptions\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForRedeem\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"struct JBTerminalConfig[]\",\"name\":\"terminalConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"contract IJBTerminal\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"struct JBAccountingContext[]\",\"name\":\"accountingContextsToAccept\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}]},{\"internalType\":\"contract IJBController\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"launchProjectFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBDeploy721TiersHookConfig\",\"name\":\"deployTiersHookConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"contract IJB721TokenUriResolver\",\"name\":\"tokenUriResolver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"},{\"internalType\":\"struct JB721InitTiersConfig\",\"name\":\"tiersConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JB721TierConfig[]\",\"name\":\"tiers\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"votingUnits\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useReserveBeneficiaryAsDefault\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useVotingUnits\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotIncreaseDiscountPercent\",\"type\":\"bool\"}]},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"contract IJBPrices\",\"name\":\"prices\",\"type\":\"address\"}]},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"struct JB721TiersHookFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"noNewTiersWithReserves\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithVotes\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"preventOverspending\",\"type\":\"bool\"}]}]},{\"internalType\":\"struct JBLaunchRulesetsConfig\",\"name\":\"launchRulesetsConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"struct JBPayDataHookRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"decayPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBPayDataHookRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"redemptionRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowCrosschainSuckerExtension\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useTotalSurplusForRedemptions\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForRedeem\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"struct JBTerminalConfig[]\",\"name\":\"terminalConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"contract IJBTerminal\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"struct JBAccountingContext[]\",\"name\":\"accountingContextsToAccept\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}]},{\"internalType\":\"contract IJBController\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"launchRulesetsFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rulesetId\",\"type\":\"uint256\"}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBDeploy721TiersHookConfig\",\"name\":\"deployTiersHookConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"contract IJB721TokenUriResolver\",\"name\":\"tokenUriResolver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"},{\"internalType\":\"struct JB721InitTiersConfig\",\"name\":\"tiersConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JB721TierConfig[]\",\"name\":\"tiers\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"votingUnits\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useReserveBeneficiaryAsDefault\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useVotingUnits\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotIncreaseDiscountPercent\",\"type\":\"bool\"}]},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"contract IJBPrices\",\"name\":\"prices\",\"type\":\"address\"}]},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"struct JB721TiersHookFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"noNewTiersWithReserves\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithVotes\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"preventOverspending\",\"type\":\"bool\"}]}]},{\"internalType\":\"struct JBQueueRulesetsConfig\",\"name\":\"queueRulesetsConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"struct JBPayDataHookRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"decayPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBPayDataHookRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"redemptionRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowCrosschainSuckerExtension\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useTotalSurplusForRedemptions\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForRedeem\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}]},{\"internalType\":\"contract IJBController\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"queueRulesetsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rulesetId\",\"type\":\"uint256\"}]}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"directory\":\"The directory of terminals and controllers for projects.\",\"hookDeployer\":\"The 721 tiers hook deployer.\",\"permissions\":\"A contract storing permissions.\"}},\"launchProjectFor(address,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(string,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"params\":{\"controller\":\"The controller that the project's rulesets will be queued with.\",\"deployTiersHookConfig\":\"Configuration which dictates the behavior of the 721 tiers hook which is being deployed.\",\"launchProjectConfig\":\"Configuration which dictates the behavior of the project which is being launched.\",\"owner\":\"The address to set as the owner of the project. The ERC-721 which confers this project's ownership will be sent to this address.\"},\"returns\":{\"projectId\":\"The ID of the newly launched project.\"}},\"launchRulesetsFor(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"details\":\"Only a project's owner or an operator with the `QUEUE_RULESETS` permission can launch its rulesets.\",\"params\":{\"controller\":\"The controller that the project's rulesets will be queued with.\",\"deployTiersHookConfig\":\"Configuration which dictates the behavior of the 721 tiers hook which is being deployed.\",\"launchRulesetsConfig\":\"Configuration which dictates the project's new rulesets.\",\"projectId\":\"The ID of the project that rulesets are being launched for.\"},\"returns\":{\"rulesetId\":\"The ID of the successfully created ruleset.\"}},\"queueRulesetsOf(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],string),address)\":{\"details\":\"Only a project's owner or an operator with the `QUEUE_RULESETS` permission can queue its rulesets.\",\"params\":{\"controller\":\"The controller that the project's rulesets will be queued with.\",\"deployTiersHookConfig\":\"Configuration which dictates the behavior of the 721 tiers hook which is being deployed.\",\"projectId\":\"The ID of the project that rulesets are being queued for.\",\"queueRulesetsConfig\":\"Configuration which dictates the project's newly queued rulesets.\"},\"returns\":{\"rulesetId\":\"The ID of the successfully created ruleset.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DIRECTORY()\":{\"notice\":\"The directory of terminals and controllers for projects.\"},\"HOOK_DEPLOYER()\":{\"notice\":\"The 721 tiers hook deployer.\"},\"PERMISSIONS()\":{\"notice\":\"A contract storing permissions.\"},\"launchProjectFor(address,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(string,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"notice\":\"Launches a new project with a 721 tiers hook attached.\"},\"launchRulesetsFor(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"notice\":\"Launches rulesets for a project with an attached 721 tiers hook.\"},\"queueRulesetsOf(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],string),address)\":{\"notice\":\"Queues rulesets for a project with an attached 721 tiers hook.\"}},\"version\":1}},\"settings\":{\"remappings\":[\"@bananapus/=node_modules/@bananapus/\",\"@chainlink/=node_modules/@chainlink/\",\"@eth-optimism/=node_modules/@eth-optimism/\",\"@openzeppelin/=node_modules/@openzeppelin/\",\"@prb/=node_modules/@prb/\",\"@scroll-tech/=node_modules/@scroll-tech/\",\"@sphinx-labs/contracts/=node_modules/@sphinx-labs/contracts/contracts/foundry/\",\"@uniswap/=node_modules/@uniswap/\",\"ds-test/=lib/forge-std/lib/ds-test/src/\",\"forge-std/=lib/forge-std/src/\",\"hardhat/=node_modules/hardhat/\",\"solmate/=node_modules/solmate/\",\"sphinx/=lib/sphinx/packages/contracts/contracts/forge-std/src/\"],\"optimizer\":{\"enabled\":true,\"runs\":800},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"compilationTarget\":{\"src/JB721TiersHookProjectDeployer.sol\":\"JB721TiersHookProjectDeployer\"},\"evmVersion\":\"paris\",\"libraries\":{}},\"sources\":{\"node_modules/@bananapus/core/src/abstract/JBPermissioned.sol\":{\"keccak256\":\"0xbaaa61c6aa043522617d3c1a86960c23b9978ee2a6c9d593b00beeeb6ce64423\",\"urls\":[\"bzz-raw://09beed8608e02ce9dbf28814309aaf62c9eec67e0701a26113bdbb4cbae56c42\",\"dweb:/ipfs/QmZrHFnpjX9uBzbFrSjqQgQBkvpJ1ZyvjtT9RfneNGv32S\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/enums/JBApprovalStatus.sol\":{\"keccak256\":\"0x61c69b6bac7d24b566d87cda23a77e4ca9cdb87200b106aba8534cb9a0973e33\",\"urls\":[\"bzz-raw://6a9ca7249de76f77a8252eefe6bd1b63d47952f25a2acfa2c8db967cdff4470c\",\"dweb:/ipfs/QmaxSxptRQNj8bNy96EreENmrnRWdKmhyihBcxyWzBX5BN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBController.sol\":{\"keccak256\":\"0xf577428966a4db4ca17fb73abf2ff2e21cc0e231df2d7247bf410f926d6cb5f7\",\"urls\":[\"bzz-raw://7c1d847382f731b8c464b55ead0ed5c517aa3fa606aaf78b7881aab18108d504\",\"dweb:/ipfs/QmXW3DpPgjYw33A8bMxJFRVZRYjCnWTp28M8sSdPHbDq7E\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBDirectory.sol\":{\"keccak256\":\"0xcb97db460d2948a7f51c660fe0d1b1749047a419027711c476b86ad3573534c5\",\"urls\":[\"bzz-raw://a909c7a3d471054537894dca827e6e018e92ac25299b43026e5b1e335ec4de68\",\"dweb:/ipfs/QmU1GT3F8PNMjSiPPP5cSLLofefHYFJXnywMCdqqM9xUeh\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBDirectoryAccessControl.sol\":{\"keccak256\":\"0x1ea768919979d9f625920c05a5e633739febc822ce14b1e4724d739b19c10fb8\",\"urls\":[\"bzz-raw://7c5391a510bd610a97978245b7306d8d21c79d7c45c15f590ba9b603ea751154\",\"dweb:/ipfs/QmPSJvVWswqzv3bVq422UhA2BybMsiHoYFWGPp5Jh6Xs6a\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBFundAccessLimits.sol\":{\"keccak256\":\"0xfd8ea4cffd289e7fef6e53b5c8983eb6b941de306517f40c047048d3a8a2ca08\",\"urls\":[\"bzz-raw://2765cdee206f8b1b53874448e2481db001cd3706753190cfc9381318c7a7c41c\",\"dweb:/ipfs/QmQ5UYSadtzrb7BcTR93KnAYKXawdyDUG5HjjASV1zbys5\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPayHook.sol\":{\"keccak256\":\"0x9438866782c652c2942f4d114e35f393cd3c8b0334abce8387eed90bca35e8b2\",\"urls\":[\"bzz-raw://cfd99daf57213f92325aad7d7d16e98476d38e870470e95ba01e3ae3cdecc95d\",\"dweb:/ipfs/QmUKKAVGf7ki8BHksr99tFcRW8APveeB5tNH63ctTbbCW8\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPermissioned.sol\":{\"keccak256\":\"0x5b038d4dee116584e88b230920e56d48e135053e3f7e5642eaea14a775c1dad7\",\"urls\":[\"bzz-raw://19e43102f349fd4a1da1c0943ffb8f2950007fe4bb4bb7e8f74fc142575d091b\",\"dweb:/ipfs/QmXHAt4KzDTdDZgDDefEXH2WKi7NcfkJb9R7nxW5uDqsNp\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPermissions.sol\":{\"keccak256\":\"0x49d2b91a866004af098a6770b28040071885b048b4b50744b12a1e5b212c5e5e\",\"urls\":[\"bzz-raw://089b4dda50be91412ffe1fbe333f78cc894f073c1a7afe469f10a2cee12fbf9e\",\"dweb:/ipfs/QmYPPBZ6HwBa1RNkNGqGcR2xgj4fnWBzrPHHoJG3kZA6AN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPriceFeed.sol\":{\"keccak256\":\"0x4bd84c0f1a5d4729ed709bcddd43f4c50ec4a165ece79780af8dce482ed07d4a\",\"urls\":[\"bzz-raw://62bac4bfb6982fb002f620c77e5c445e62d50241a5aa64a07e51d929f5a42180\",\"dweb:/ipfs/QmWgJUDreVY2BuMX38a1iUUR5kNbMwGnKG3VvurB7oZtuM\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPrices.sol\":{\"keccak256\":\"0xb4d5244daa52aafab0c9b8806b7f973afa6a3b298add5966d586d27b78424cfb\",\"urls\":[\"bzz-raw://a819f74455aaa4f679ded378424702f3992608a640d7f943b19938eb4ff711da\",\"dweb:/ipfs/QmSMGvVTsMW3L5YSUyXTKoEsgNpGEutnq4frEZHuDdeDvz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBProjectUriRegistry.sol\":{\"keccak256\":\"0xc9ab647179d7d0c857fdd881d6ce96f06254739440ed08e85a1c2042218f7c7d\",\"urls\":[\"bzz-raw://8529368f30c98c8d5a69acdbe4ac79e3eeb4afa5a9cd278325c5f2184ef3d50f\",\"dweb:/ipfs/QmfUaozYiAGt1UwBDUEZvon1tEBS5sLPzqpN9dNdjQotPN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBProjects.sol\":{\"keccak256\":\"0x4ae42a9cc29b517b26d2b9b635deb82c16696b777deeca92dfcad33b0f81c0a0\",\"urls\":[\"bzz-raw://1dcbd860e7d7f05232d90c5e9cfd3d01e2ce986ffcdb053473d8a4d387b1a48a\",\"dweb:/ipfs/QmWKWoSJJbVWDumbnzXJBJyXmAacgC97bxMtchh8te41bn\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBRulesetApprovalHook.sol\":{\"keccak256\":\"0x592e95d159494421c6b1bcb362d0cee1df0132921697351304e9cd7af4fbd386\",\"urls\":[\"bzz-raw://5bebfd5fa67c1b6ea16fa2e76e9520e9dfe52a579f48dd94d0c2ec45f78ad178\",\"dweb:/ipfs/QmRUawEGtfYoYSHmHELGhvJoWuMsxLPKtqAXgsrb7fJboP\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBRulesets.sol\":{\"keccak256\":\"0x29b56a91e8cd4d3e718e18cd934eccbc22c668d08dc26adb43c958722497d3ab\",\"urls\":[\"bzz-raw://7ae1a723eaf16809b9bd73cd235985801aff85283976be342416fa301c3b4793\",\"dweb:/ipfs/QmZYSY7C9dPvR5EnT8YCjVSy842dBVP3wZdYQ71wyPkx2F\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBSplitHook.sol\":{\"keccak256\":\"0xeb8dfac7a4b81897a1c3b5d0d853a406bcff33720fb187d5ca5bb3dcc0ba3a12\",\"urls\":[\"bzz-raw://36aaeef6107cfe5b0127e063ea215aac7200f8af02e28a48e61111abd3254688\",\"dweb:/ipfs/QmQ8yQANXnhQCAWBGKsKCDsJ3A8hnTKNg5tyo79GfWXTcV\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBSplits.sol\":{\"keccak256\":\"0x424e6d1189b9ba7a5d441e7675ae09ff893c13c62b9ddde4dd6bc2690e96c6f3\",\"urls\":[\"bzz-raw://7e30ed7ab1daf20ff324aacfef7150a243b5db496eceaf032c7012ccb3c4227d\",\"dweb:/ipfs/QmRj5EZKmDjJy8tpvKbpz8vPSKHR5C9Q5ENe7oSLij4H8M\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBTerminal.sol\":{\"keccak256\":\"0xe440530f1d0cc16578981e1d2e4e13674360c677d19a74a4b08f9f7268c70aee\",\"urls\":[\"bzz-raw://ddea4aeaf523f48a1364a02d2ccb75f3dfd8a2b9af465964e9adf3ce53f4196a\",\"dweb:/ipfs/QmVWhN1Nn9khUN8ctAgh2Ypo2vnFBgDHtDw6S232A6RkFw\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBToken.sol\":{\"keccak256\":\"0xd33757cd3da65a9d66404b7e6ddb7a27b4902885a3498b9db1673c218e9fab2d\",\"urls\":[\"bzz-raw://de28759920dab1db6cfcb4ff2ffae76491be371b791a2a0ec054ff17653872dc\",\"dweb:/ipfs/QmPXnhdxbgoV4dBRJCi9siQYRfrvcJLDtY1rp3H2vtU1Cz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBTokenUriResolver.sol\":{\"keccak256\":\"0xfa5cb00dcd6085d1ef912d071fe73c63f9478a2cd0f9d8bddaf659b6af2d0967\",\"urls\":[\"bzz-raw://282e4e7c342d65f77cde0e9a08fcaf20ef5cf379c7a48b639842c0ffd0b2afb8\",\"dweb:/ipfs/QmbnN3PEQeZaXdPLT75V1J79kMg7KqSMru37RHrL3z8Yf2\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBTokens.sol\":{\"keccak256\":\"0x1348b416ebf501409acc9970d46be89ffd076566001ceff9b96fce1b0b2c405d\",\"urls\":[\"bzz-raw://74327019f5174345afed10d9a60caa9ef908382e131882c27588b13be8364b36\",\"dweb:/ipfs/QmZAqB6hFSymTEbjqHWgE4t9NRose9AJh4etGyWnvDkhJt\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBAccountingContext.sol\":{\"keccak256\":\"0x9c47e048a719f784f601df69a583505432217b9868a0244876d277f84dd1ebdf\",\"urls\":[\"bzz-raw://8565f194b87914da9a02af2e760ae2ed2a9d185c6f11229f7035140776d2fec9\",\"dweb:/ipfs/QmPs2fic8W3F5e5zNRwmGmJFjb3JWGPWJ3YUe5o82nQgEn\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBAfterPayRecordedContext.sol\":{\"keccak256\":\"0xd26c3a774ff38be79064085970454fe2603a23a638c76270d5b1b3829206c3e8\",\"urls\":[\"bzz-raw://3b55dbe3bf1ef625b7ca04efab3de35406e6041d5b3d82c7265469c500e2b702\",\"dweb:/ipfs/QmUdBDo4Lt3mcsFcsXT2mqq3czFwZjQJFPLM89YA2VtD7k\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBCurrencyAmount.sol\":{\"keccak256\":\"0x7f321bbcbd13abfbc8f0d08a5adaaf8ef312db5bb899012fcffb6170fbb962a9\",\"urls\":[\"bzz-raw://bf9301ef1dbb3abda7b492585377617508ba048c6170f21a5e7d2b3c034eb384\",\"dweb:/ipfs/QmcetEFxSYLLNSZzPBpNn3Fc8sFcrFE8A8h12ZSj2tLgxD\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBFundAccessLimitGroup.sol\":{\"keccak256\":\"0x9fdaa8d017b72da25f583700a444a86849df053f7fb8eac874ec5139bcf651e5\",\"urls\":[\"bzz-raw://c8e44c49ee444a98424a0dbeb6897a76a0bf00d88a613f62ac2012afdac754ee\",\"dweb:/ipfs/QmdYkAiRi5bXM1YYNkc7BiqimHSFodMGn1cjHR5hcpm4xH\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBPermissionsData.sol\":{\"keccak256\":\"0xd5a5fe65b1deb40b5cd9c8e05bc1352d0e95f3a18b4986fab7abdc621beb19c7\",\"urls\":[\"bzz-raw://a6141eaa414d3d61de671ae3584b87e98044bf6392cb94d2acd1bb5cc7c19db4\",\"dweb:/ipfs/QmbtvALmburKLRC5fHXscoeZii1N2qQrJAdqarfvSKaKEk\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRuleset.sol\":{\"keccak256\":\"0x03ad7bd257d4ac55ecc42b85156dce1c70eec8572dbf8feb093c033912f305e7\",\"urls\":[\"bzz-raw://9665b4c018cd469f94bec4471222cc9e5fd58ac421a0959f70e72618fe37d55b\",\"dweb:/ipfs/QmSUf6HQv2Ckcoy5tSH1UPdD8vDMerfK29G8kaxmxB3Kow\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRulesetConfig.sol\":{\"keccak256\":\"0x7a57ed3d73bd9457d8e1fb40f5204c364df87cbfdbf42412d5bbc08beabb49c9\",\"urls\":[\"bzz-raw://8b9a83916ee67d32b5f434b35b171c6122bbc4efeaa4fabb8dec2ca4e9e32c6e\",\"dweb:/ipfs/QmNquzUQn6ZvE2wBcMCgru3resV9UNvBWPPetyDChoh8vM\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRulesetMetadata.sol\":{\"keccak256\":\"0x7f49fe89eefe848e6af12aa452bd882430ff35e9dd44e9ff3d7be6911496486c\",\"urls\":[\"bzz-raw://136f3baeb71f8ac1c2721eb94b1d469d35cf3fba82f9138760dde6d451d052ef\",\"dweb:/ipfs/QmVeBaYMS9K3rPfneKiVYnFXbp3X8qxrw4qhN4PmuYHppz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRulesetWithMetadata.sol\":{\"keccak256\":\"0x1bcfadf20488f6df65227f8d4d0fbf9b7539456a2389567f7fe3900d23289bc3\",\"urls\":[\"bzz-raw://0a15c399a71e5373f8c0484c6d6b83521eda31e063a2c53e4c5cec4e74550343\",\"dweb:/ipfs/QmQwi8zkjoTVXbK89NeETYimWCacTrNsesJdpLSvGdqMPX\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBSplit.sol\":{\"keccak256\":\"0x0e1351e80cf9967caee90094712a4fc884a83f07df23a844d8cb33ebcd00721e\",\"urls\":[\"bzz-raw://19d5793c08834f2ec1d6942bd43d05042b0ecc351a57235d748a8f2ff74b6638\",\"dweb:/ipfs/QmUWjyNg7x62KsvMwAzNdpmwqCo5qK5ip9pLdshj9B2Kbf\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBSplitGroup.sol\":{\"keccak256\":\"0x8dc98fa9e730bee8bcc0a8acf1bc4db1c9b0edf307d969c9c9caa4d6b8d856d9\",\"urls\":[\"bzz-raw://66f4306e0e69c82033927952564fd617e7c4b29aa8b165d5b53a0ebe3109ea12\",\"dweb:/ipfs/QmQqN1u7FHAdEtEZNRcKvZwYtXEQVQnLd6FMzHESP7wDtx\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBSplitHookContext.sol\":{\"keccak256\":\"0x1cef82bf434f91d518092ea7e57db4a72ce7654f48a7db9bf44882900b6b6623\",\"urls\":[\"bzz-raw://cc5012008ab7e74cf766fe1c202a23e3a73365356bcf1e0b04ec01baf21b204b\",\"dweb:/ipfs/QmSwJvd6Yrg9XZMhjquBcak5sfUswbR5nPEuJBfpjM54VT\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBTerminalConfig.sol\":{\"keccak256\":\"0x9e31505080d3754b6d7db96095b0545930ef6dbc035b91fcc32fdc76a0e7c2a5\",\"urls\":[\"bzz-raw://f7702ab33a1b713c37e5397a55d8ef089289f4da8034cfe9622cbc69a98c47de\",\"dweb:/ipfs/QmXyiXps4aJyiM7vtDC373QUoqwB4DMETaZzC5cZPJKaAK\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBTokenAmount.sol\":{\"keccak256\":\"0xc61593d33d5ec30e695d382948a1b944d01e29a8f2bfd29f75ecebcdbc7816de\",\"urls\":[\"bzz-raw://8992c1e5fca0c2342ecc0e734dfba6a2a752e4c29184784931d0971e44305051\",\"dweb:/ipfs/QmYNcaW3qeCkgAExUaFTq238fgfJuoYCTwjCn7jm94U4dJ\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/JBOwnable.sol\":{\"keccak256\":\"0x8cb8f41b5c3482f1eb558d49fd56b5487f1dd0ef5c29a068f0638f4fa466aa3e\",\"urls\":[\"bzz-raw://21a9da6e467b117c31eaee30a027207cd07da3311ba830f0b26a2c168ffd9b19\",\"dweb:/ipfs/QmbedU61hLHttGe2aas4zwypBy86K8kqR9fmzW8vhS4oVH\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/JBOwnableOverrides.sol\":{\"keccak256\":\"0xae09b9163b196e10f833966f11f0005001a11792bfa01167f8d693094e024e2b\",\"urls\":[\"bzz-raw://ea26b51472e4180adf37fd6b3e7ec4e4467dbf30dfe56f64a307d882c03a8a14\",\"dweb:/ipfs/QmQmz1HdxUFHYDtgYFEHsPFqTzqa7nBKw9ZCW7Xt8iUN2c\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/interfaces/IJBOwnable.sol\":{\"keccak256\":\"0xbfdca68abf028e9df18b1885b1163fa6a89bfef0878855a1834b382e2fe924b3\",\"urls\":[\"bzz-raw://34e6a3ffd79453942d74a50bed850e7cdd796dad316b6d6be2654ecd6917f62d\",\"dweb:/ipfs/QmeZ2BwJtgomDfQ8K3gJFX9L7HFTuDQJGwYPVbcMEn1xE4\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/struct/JBOwner.sol\":{\"keccak256\":\"0xb2187c4fb303e94814d192284537e4dfac85adecb309f9fa4b2beede63800fad\",\"urls\":[\"bzz-raw://c35989c4f8f77fc8357edf473acd6a223388e24341d67240fd5f66823f595a3b\",\"dweb:/ipfs/QmSFqQ1thNTo7N33TrgPTETtXc29dfgZGeRc7ZGHk1dUGh\"],\"license\":\"MIT\"},\"node_modules/@bananapus/permission-ids/src/JBPermissionIds.sol\":{\"keccak256\":\"0x089932e597c40f1d0f277f8f2acaef065aebcbe8f69012a471b1ead688ccaa47\",\"urls\":[\"bzz-raw://9d9a0a316265d86299e110d56e3f3a1ea9e685b577ef93d6af778e788c8677bb\",\"dweb:/ipfs/QmcHUMAwfdSQknLvPF5N2jT7RM7NnERK9h3kchw18iQqFB\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"],\"license\":\"MIT\"},\"src/JB721TiersHookProjectDeployer.sol\":{\"keccak256\":\"0xd6fea0166c96291b0b4654738d0426f192af6c6e911a936e22b41fab40bc7d7e\",\"urls\":[\"bzz-raw://e90ef39d1c899a46d4e620090b310a46fcb689dc52336cc246ea3d6a2af69521\",\"dweb:/ipfs/QmT5WQhoSVNKGn5dnmJDeaUJVcjt8CSBkDthaRALLRgGdF\"],\"license\":\"MIT\"},\"src/interfaces/IJB721Hook.sol\":{\"keccak256\":\"0xc4c1b2da6354c37e67e4463ca3dc652daf98769a7dc1af5b6e8bc31dc11bdc69\",\"urls\":[\"bzz-raw://583553ab050c7a96dbee7ffe8436a0f345617a816331bba0fb3d1c1e77b39110\",\"dweb:/ipfs/QmXj783jhFVdGzFqpiCgGaNjnmDE2qNGEGE7HidhzGgrSR\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHook.sol\":{\"keccak256\":\"0x1b17153dcb3901a8d9156976ffb20c1047849ad1ce94c3a1934f7ca012b45bb5\",\"urls\":[\"bzz-raw://e86b10609f4ff4279592a7c185c6b202c0ff2572fad40dcbcfab878dbc735daa\",\"dweb:/ipfs/QmSJE6yTqKuA94BKAixiEFRGUUYhwtngsYDW3VCfrbMzKP\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHookDeployer.sol\":{\"keccak256\":\"0xdcf34032c2a22a782b7121e777715766cce471e9e8186cb710865de674d646bf\",\"urls\":[\"bzz-raw://00c19707f9fd04b9393a2081a50d69a14ed37d4a8f689c39219da6379aaacb53\",\"dweb:/ipfs/QmPdJYKrEEJxVYYaoV5rVRhoBuxmBTEH7u3J2TZtom1Sof\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHookProjectDeployer.sol\":{\"keccak256\":\"0x9ec3cdc330019db6a8aeefac543f43054814e5a8a8beed15d51729e94df9ece1\",\"urls\":[\"bzz-raw://20632197d5f24e72999e3af9106fafa3fecbe1bc58c4cebb7cb7cdd73d573959\",\"dweb:/ipfs/QmdpF5NpGzWfCXupszxTjMN616vEGZtsiW35vGmTTxycwX\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHookStore.sol\":{\"keccak256\":\"0x6f3acee1130717bf1ac5c513cb167a8f121a64c047b505e9aced2b23793b79d7\",\"urls\":[\"bzz-raw://9f4dfe3be9e21c8b5446e9d37e699071f9df257a3c7a2fb8a8791e062617acbc\",\"dweb:/ipfs/QmarDks3DcMyHPVsKdj5qpma5ZBMzH8ti92MY38K76hvSA\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TokenUriResolver.sol\":{\"keccak256\":\"0xfa599167098f4459320ec4141a98a17b2dfffbce422baa27d8b4e4530f61ece1\",\"urls\":[\"bzz-raw://8b758b161f4c7b520b2c34b4d91e585e961b8f4ca278eebb91d791f7f2f45140\",\"dweb:/ipfs/QmcD9DF7NJ9QykQpT4KPzm4bs3fkjzukdAUWwdU6Atfw85\"],\"license\":\"MIT\"},\"src/structs/JB721InitTiersConfig.sol\":{\"keccak256\":\"0xff362fcd46992e56996e1b162b129a1d03ca2342a482421f279bd930b7af79dd\",\"urls\":[\"bzz-raw://56a52c0d4461fd1b278789cd31ccc77b5eab9a0d7e2fab5074bae9c8a79d0cb1\",\"dweb:/ipfs/QmagorkFXB4rEq5rfLcoZHu6jtjcMicMBPfVqMQT86xZoB\"],\"license\":\"MIT\"},\"src/structs/JB721Tier.sol\":{\"keccak256\":\"0x99232aa73d5715977332dc7c93b03552a93259e59ae00e86b4ddc200f06adaf1\",\"urls\":[\"bzz-raw://721c0cf10a29fa11677718faafb3a2ecfcb4fbe4e1c09e70a7fac681c80fcc94\",\"dweb:/ipfs/QmSUR77E9PqnpB5kBcKNz2CGBjG9XL9FH57RWVYu3Q7GMR\"],\"license\":\"MIT\"},\"src/structs/JB721TierConfig.sol\":{\"keccak256\":\"0x86e54a0de4deab9d105bf276586aebe256188b193e83eb7a6f6f93e4a29ae9c5\",\"urls\":[\"bzz-raw://04bfcc07d452c26dfc50d3a5eb62df4b3b81e063defd752e0aa5ed049a78eef4\",\"dweb:/ipfs/QmWd5nJHUvZPHxJXkrYCboXaqdtiWWkQG26sNM6qkJuAgD\"],\"license\":\"MIT\"},\"src/structs/JB721TiersHookFlags.sol\":{\"keccak256\":\"0x283d8429f31bd58875c056515aa42abd09c95362bd929e85cfc44a0d92585766\",\"urls\":[\"bzz-raw://9a580b89fe99d9f8e930c58a4d0d63a5ff7c01c79d210af01373d066c9e72ed6\",\"dweb:/ipfs/QmdY1eSGSoTjv4KSdsG4Tm5CzJN6iqk3qTRga5ZWNbejRz\"],\"license\":\"MIT\"},\"src/structs/JB721TiersMintReservesConfig.sol\":{\"keccak256\":\"0x86fe586a05e6d4bc6fab9b68996a7f4b74c5362ca6f24b9d8057ed7e4cd1c5ac\",\"urls\":[\"bzz-raw://0915f17d1f958ab1fe6b214d99ed62f1f858684898c803f1a8a6a557472dd140\",\"dweb:/ipfs/QmUhdnSV8UzkgvbtkYEKHrpyDEmc2aJxW5HQ1gucuxxu5A\"],\"license\":\"MIT\"},\"src/structs/JB721TiersSetDiscountPercentConfig.sol\":{\"keccak256\":\"0x4672eacb6b0cda5e6f5f72ddb91463c52fb90b4df421053e3b40024f19a59954\",\"urls\":[\"bzz-raw://9d8e3a0b35d6b2a6ec66527594263400189b6c766bfd6943c83704380a989aec\",\"dweb:/ipfs/QmUE7NhFWsxjFRzTuRyHJ7oRx3JXD9CnG83t29PjGAhwPR\"],\"license\":\"MIT\"},\"src/structs/JBDeploy721TiersHookConfig.sol\":{\"keccak256\":\"0x0ce457736946394772afe54d575b68a74269cbf37a250de2d27dca6d9dd45005\",\"urls\":[\"bzz-raw://2010a8f6e19354038d3906ddb174f34464c5f341103313a5c4d628aa7732d5a8\",\"dweb:/ipfs/QmU9m18oWtYNV7UHLcW9kdwE3uzoQuGBe6sASvQTk8GZRL\"],\"license\":\"MIT\"},\"src/structs/JBLaunchProjectConfig.sol\":{\"keccak256\":\"0x0a8f87072dd6e5dd7c5cd5af7153172275de7e85625aa4a97da4fed65ad5b029\",\"urls\":[\"bzz-raw://b1d230835bf8fa17e8308d5d2ce4c820c4a719f451a65477f75956e100984047\",\"dweb:/ipfs/QmX6BwoYNJx1SssBLcBoPJBsg2Hv6ZP2uErXUvoMrAaQ71\"],\"license\":\"MIT\"},\"src/structs/JBLaunchRulesetsConfig.sol\":{\"keccak256\":\"0x0088bc7133e3fae1944247370a4eec227aeae8b371534e1d54439499644c0ede\",\"urls\":[\"bzz-raw://31847d92e9eb5e3125f07c23a651c0972e1784f748c4ce9d0c66853ee892c690\",\"dweb:/ipfs/QmRmoXg2MrkUFkMkgKvU7igkHQjhStbbc6CeiHkLCYAn7P\"],\"license\":\"MIT\"},\"src/structs/JBPayDataHookRulesetConfig.sol\":{\"keccak256\":\"0x06fdbc5c40750b8d81e4c079f86a96f5ce922a0ddbb81ddc5a044aa166723f59\",\"urls\":[\"bzz-raw://b810a5768501951e08c46f1907a7f561a49c4e16f339f1679a493fcddd30cc50\",\"dweb:/ipfs/QmfCF85EAdQCnsixXCdkKb5Xz2bL9dqAoDhmiR1QoBo81P\"],\"license\":\"MIT\"},\"src/structs/JBPayDataHookRulesetMetadata.sol\":{\"keccak256\":\"0x087280b3a959933c68ad19acbf07d80f9bbf632d902986c2ff624b6c31a6eeeb\",\"urls\":[\"bzz-raw://a2ddf9483f89b8a9012bc7714db4547b68a0df5fe3bf953e190d2021377f9811\",\"dweb:/ipfs/QmZcs1fuufGwWYy4fW3puX7ZRrribMMzEyEEL7WVCnrMer\"],\"license\":\"MIT\"},\"src/structs/JBQueueRulesetsConfig.sol\":{\"keccak256\":\"0x3ad05bfa31a90070eb4a026a13d508f9a68ca2474c3737bcda97a07307ffa554\",\"urls\":[\"bzz-raw://357f0193da0840e4b012ff1f97c65c8b6f5fea39e323a3777baf2b0625491f12\",\"dweb:/ipfs/QmZkJb8MuZ3wimiV6kry4RMp9ZkUFQA9yhfJDVUWTBWFcq\"],\"license\":\"MIT\"}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IJBDirectory\",\"name\":\"directory\",\"type\":\"address\"},{\"internalType\":\"contract IJBPermissions\",\"name\":\"permissions\",\"type\":\"address\"},{\"internalType\":\"contract IJB721TiersHookDeployer\",\"name\":\"hookDeployer\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"permissionId\",\"type\":\"uint256\"}],\"type\":\"error\",\"name\":\"JBPermissioned_Unauthorized\"},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DIRECTORY\",\"outputs\":[{\"internalType\":\"contract IJBDirectory\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"HOOK_DEPLOYER\",\"outputs\":[{\"internalType\":\"contract IJB721TiersHookDeployer\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"PERMISSIONS\",\"outputs\":[{\"internalType\":\"contract IJBPermissions\",\"name\":\"\",\"type\":\"address\"}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"struct JBDeploy721TiersHookConfig\",\"name\":\"deployTiersHookConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"contract IJB721TokenUriResolver\",\"name\":\"tokenUriResolver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"},{\"internalType\":\"struct JB721InitTiersConfig\",\"name\":\"tiersConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JB721TierConfig[]\",\"name\":\"tiers\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"votingUnits\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useReserveBeneficiaryAsDefault\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useVotingUnits\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotIncreaseDiscountPercent\",\"type\":\"bool\"}]},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"contract IJBPrices\",\"name\":\"prices\",\"type\":\"address\"}]},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"struct JB721TiersHookFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"noNewTiersWithReserves\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithVotes\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"preventOverspending\",\"type\":\"bool\"}]}]},{\"internalType\":\"struct JBLaunchProjectConfig\",\"name\":\"launchProjectConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"projectUri\",\"type\":\"string\"},{\"internalType\":\"struct JBPayDataHookRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"decayPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBPayDataHookRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"redemptionRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowCrosschainSuckerExtension\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useTotalSurplusForRedemptions\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForRedeem\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"struct JBTerminalConfig[]\",\"name\":\"terminalConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"contract IJBTerminal\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"struct JBAccountingContext[]\",\"name\":\"accountingContextsToAccept\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}]},{\"internalType\":\"contract IJBController\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"launchProjectFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"contract IJB721TiersHook\",\"name\":\"hook\",\"type\":\"address\"}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBDeploy721TiersHookConfig\",\"name\":\"deployTiersHookConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"contract IJB721TokenUriResolver\",\"name\":\"tokenUriResolver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"},{\"internalType\":\"struct JB721InitTiersConfig\",\"name\":\"tiersConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JB721TierConfig[]\",\"name\":\"tiers\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"votingUnits\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useReserveBeneficiaryAsDefault\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useVotingUnits\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotIncreaseDiscountPercent\",\"type\":\"bool\"}]},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"contract IJBPrices\",\"name\":\"prices\",\"type\":\"address\"}]},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"struct JB721TiersHookFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"noNewTiersWithReserves\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithVotes\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"preventOverspending\",\"type\":\"bool\"}]}]},{\"internalType\":\"struct JBLaunchRulesetsConfig\",\"name\":\"launchRulesetsConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"struct JBPayDataHookRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"decayPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBPayDataHookRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"redemptionRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowCrosschainSuckerExtension\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useTotalSurplusForRedemptions\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForRedeem\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"struct JBTerminalConfig[]\",\"name\":\"terminalConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"contract IJBTerminal\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"struct JBAccountingContext[]\",\"name\":\"accountingContextsToAccept\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}]},{\"internalType\":\"contract IJBController\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"launchRulesetsFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rulesetId\",\"type\":\"uint256\"},{\"internalType\":\"contract IJB721TiersHook\",\"name\":\"hook\",\"type\":\"address\"}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBDeploy721TiersHookConfig\",\"name\":\"deployTiersHookConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"internalType\":\"contract IJB721TokenUriResolver\",\"name\":\"tokenUriResolver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"},{\"internalType\":\"struct JB721InitTiersConfig\",\"name\":\"tiersConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"struct JB721TierConfig[]\",\"name\":\"tiers\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"votingUnits\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useReserveBeneficiaryAsDefault\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useVotingUnits\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotIncreaseDiscountPercent\",\"type\":\"bool\"}]},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"contract IJBPrices\",\"name\":\"prices\",\"type\":\"address\"}]},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"struct JB721TiersHookFlags\",\"name\":\"flags\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"bool\",\"name\":\"noNewTiersWithReserves\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithVotes\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"noNewTiersWithOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"preventOverspending\",\"type\":\"bool\"}]}]},{\"internalType\":\"struct JBQueueRulesetsConfig\",\"name\":\"queueRulesetsConfig\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"struct JBPayDataHookRulesetConfig[]\",\"name\":\"rulesetConfigurations\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint48\",\"name\":\"mustStartAtOrAfter\",\"type\":\"uint48\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint112\",\"name\":\"weight\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"decayPercent\",\"type\":\"uint32\"},{\"internalType\":\"contract IJBRulesetApprovalHook\",\"name\":\"approvalHook\",\"type\":\"address\"},{\"internalType\":\"struct JBPayDataHookRulesetMetadata\",\"name\":\"metadata\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint16\",\"name\":\"reservedPercent\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"redemptionRate\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"baseCurrency\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"pausePay\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"pauseCreditTransfers\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMinting\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowTerminalMigration\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetTerminals\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowSetController\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddAccountingContext\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowAddPriceFeed\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"allowCrosschainSuckerExtension\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"ownerMustSendPayouts\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"holdFees\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useTotalSurplusForRedemptions\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"useDataHookForRedeem\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"metadata\",\"type\":\"uint16\"}]},{\"internalType\":\"struct JBSplitGroup[]\",\"name\":\"splitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"struct JBSplit[]\",\"name\":\"splits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"bool\",\"name\":\"preferAddToBalance\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"percent\",\"type\":\"uint32\"},{\"internalType\":\"uint56\",\"name\":\"projectId\",\"type\":\"uint56\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"lockedUntil\",\"type\":\"uint48\"},{\"internalType\":\"contract IJBSplitHook\",\"name\":\"hook\",\"type\":\"address\"}]}]},{\"internalType\":\"struct JBFundAccessLimitGroup[]\",\"name\":\"fundAccessLimitGroups\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"address\",\"name\":\"terminal\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"payoutLimits\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]},{\"internalType\":\"struct JBCurrencyAmount[]\",\"name\":\"surplusAllowances\",\"type\":\"tuple[]\",\"components\":[{\"internalType\":\"uint224\",\"name\":\"amount\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"currency\",\"type\":\"uint32\"}]}]}]},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}]},{\"internalType\":\"contract IJBController\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"queueRulesetsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rulesetId\",\"type\":\"uint256\"},{\"internalType\":\"contract IJB721TiersHook\",\"name\":\"hook\",\"type\":\"address\"}]}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"directory\":\"The directory of terminals and controllers for projects.\",\"hookDeployer\":\"The 721 tiers hook deployer.\",\"permissions\":\"A contract storing permissions.\"}},\"launchProjectFor(address,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(string,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"params\":{\"controller\":\"The controller that the project's rulesets will be queued with.\",\"deployTiersHookConfig\":\"Configuration which dictates the behavior of the 721 tiers hook which is being deployed.\",\"launchProjectConfig\":\"Configuration which dictates the behavior of the project which is being launched.\",\"owner\":\"The address to set as the owner of the project. The ERC-721 which confers this project's ownership will be sent to this address.\"},\"returns\":{\"hook\":\"The 721 tiers hook that was deployed for the project.\",\"projectId\":\"The ID of the newly launched project.\"}},\"launchRulesetsFor(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"details\":\"Only a project's owner or an operator with the `QUEUE_RULESETS` permission can launch its rulesets.\",\"params\":{\"controller\":\"The controller that the project's rulesets will be queued with.\",\"deployTiersHookConfig\":\"Configuration which dictates the behavior of the 721 tiers hook which is being deployed.\",\"launchRulesetsConfig\":\"Configuration which dictates the project's new rulesets.\",\"projectId\":\"The ID of the project that rulesets are being launched for.\"},\"returns\":{\"hook\":\"The 721 tiers hook that was deployed for the project.\",\"rulesetId\":\"The ID of the successfully created ruleset.\"}},\"queueRulesetsOf(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],string),address)\":{\"details\":\"Only a project's owner or an operator with the `QUEUE_RULESETS` permission can queue its rulesets.\",\"params\":{\"controller\":\"The controller that the project's rulesets will be queued with.\",\"deployTiersHookConfig\":\"Configuration which dictates the behavior of the 721 tiers hook which is being deployed.\",\"projectId\":\"The ID of the project that rulesets are being queued for.\",\"queueRulesetsConfig\":\"Configuration which dictates the project's newly queued rulesets.\"},\"returns\":{\"hook\":\"The 721 tiers hook that was deployed for the project.\",\"rulesetId\":\"The ID of the successfully created ruleset.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DIRECTORY()\":{\"notice\":\"The directory of terminals and controllers for projects.\"},\"HOOK_DEPLOYER()\":{\"notice\":\"The 721 tiers hook deployer.\"},\"PERMISSIONS()\":{\"notice\":\"A contract storing permissions.\"},\"launchProjectFor(address,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(string,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"notice\":\"Launches a new project with a 721 tiers hook attached.\"},\"launchRulesetsFor(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],(address,(address,uint8,uint32)[])[],string),address)\":{\"notice\":\"Launches rulesets for a project with an attached 721 tiers hook.\"},\"queueRulesetsOf(uint256,(string,string,string,address,string,((uint104,uint32,uint32,uint16,address,bytes32,uint24,uint8,bool,bool,bool,bool,bool,bool)[],uint32,uint8,address),address,(bool,bool,bool,bool)),(uint56,(uint48,uint32,uint112,uint32,address,(uint16,uint16,uint32,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,uint16),(uint256,(bool,uint32,uint56,address,uint48,address)[])[],(address,address,(uint224,uint32)[],(uint224,uint32)[])[])[],string),address)\":{\"notice\":\"Queues rulesets for a project with an attached 721 tiers hook.\"}},\"version\":1}},\"settings\":{\"remappings\":[\"@bananapus/=node_modules/@bananapus/\",\"@chainlink/=node_modules/@chainlink/\",\"@eth-optimism/=node_modules/@eth-optimism/\",\"@openzeppelin/=node_modules/@openzeppelin/\",\"@prb/=node_modules/@prb/\",\"@scroll-tech/=node_modules/@scroll-tech/\",\"@sphinx-labs/contracts/=node_modules/@sphinx-labs/contracts/contracts/foundry/\",\"@uniswap/=node_modules/@uniswap/\",\"ds-test/=lib/forge-std/lib/ds-test/src/\",\"forge-std/=lib/forge-std/src/\",\"hardhat/=node_modules/hardhat/\",\"solmate/=node_modules/solmate/\",\"sphinx/=lib/sphinx/packages/contracts/contracts/forge-std/src/\"],\"optimizer\":{\"enabled\":true,\"runs\":800},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"compilationTarget\":{\"src/JB721TiersHookProjectDeployer.sol\":\"JB721TiersHookProjectDeployer\"},\"evmVersion\":\"paris\",\"libraries\":{}},\"sources\":{\"node_modules/@bananapus/core/src/abstract/JBPermissioned.sol\":{\"keccak256\":\"0xbaaa61c6aa043522617d3c1a86960c23b9978ee2a6c9d593b00beeeb6ce64423\",\"urls\":[\"bzz-raw://09beed8608e02ce9dbf28814309aaf62c9eec67e0701a26113bdbb4cbae56c42\",\"dweb:/ipfs/QmZrHFnpjX9uBzbFrSjqQgQBkvpJ1ZyvjtT9RfneNGv32S\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/enums/JBApprovalStatus.sol\":{\"keccak256\":\"0x61c69b6bac7d24b566d87cda23a77e4ca9cdb87200b106aba8534cb9a0973e33\",\"urls\":[\"bzz-raw://6a9ca7249de76f77a8252eefe6bd1b63d47952f25a2acfa2c8db967cdff4470c\",\"dweb:/ipfs/QmaxSxptRQNj8bNy96EreENmrnRWdKmhyihBcxyWzBX5BN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBController.sol\":{\"keccak256\":\"0xf577428966a4db4ca17fb73abf2ff2e21cc0e231df2d7247bf410f926d6cb5f7\",\"urls\":[\"bzz-raw://7c1d847382f731b8c464b55ead0ed5c517aa3fa606aaf78b7881aab18108d504\",\"dweb:/ipfs/QmXW3DpPgjYw33A8bMxJFRVZRYjCnWTp28M8sSdPHbDq7E\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBDirectory.sol\":{\"keccak256\":\"0xcb97db460d2948a7f51c660fe0d1b1749047a419027711c476b86ad3573534c5\",\"urls\":[\"bzz-raw://a909c7a3d471054537894dca827e6e018e92ac25299b43026e5b1e335ec4de68\",\"dweb:/ipfs/QmU1GT3F8PNMjSiPPP5cSLLofefHYFJXnywMCdqqM9xUeh\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBDirectoryAccessControl.sol\":{\"keccak256\":\"0x1ea768919979d9f625920c05a5e633739febc822ce14b1e4724d739b19c10fb8\",\"urls\":[\"bzz-raw://7c5391a510bd610a97978245b7306d8d21c79d7c45c15f590ba9b603ea751154\",\"dweb:/ipfs/QmPSJvVWswqzv3bVq422UhA2BybMsiHoYFWGPp5Jh6Xs6a\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBFundAccessLimits.sol\":{\"keccak256\":\"0xfd8ea4cffd289e7fef6e53b5c8983eb6b941de306517f40c047048d3a8a2ca08\",\"urls\":[\"bzz-raw://2765cdee206f8b1b53874448e2481db001cd3706753190cfc9381318c7a7c41c\",\"dweb:/ipfs/QmQ5UYSadtzrb7BcTR93KnAYKXawdyDUG5HjjASV1zbys5\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPayHook.sol\":{\"keccak256\":\"0x9438866782c652c2942f4d114e35f393cd3c8b0334abce8387eed90bca35e8b2\",\"urls\":[\"bzz-raw://cfd99daf57213f92325aad7d7d16e98476d38e870470e95ba01e3ae3cdecc95d\",\"dweb:/ipfs/QmUKKAVGf7ki8BHksr99tFcRW8APveeB5tNH63ctTbbCW8\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPermissioned.sol\":{\"keccak256\":\"0x5b038d4dee116584e88b230920e56d48e135053e3f7e5642eaea14a775c1dad7\",\"urls\":[\"bzz-raw://19e43102f349fd4a1da1c0943ffb8f2950007fe4bb4bb7e8f74fc142575d091b\",\"dweb:/ipfs/QmXHAt4KzDTdDZgDDefEXH2WKi7NcfkJb9R7nxW5uDqsNp\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPermissions.sol\":{\"keccak256\":\"0x49d2b91a866004af098a6770b28040071885b048b4b50744b12a1e5b212c5e5e\",\"urls\":[\"bzz-raw://089b4dda50be91412ffe1fbe333f78cc894f073c1a7afe469f10a2cee12fbf9e\",\"dweb:/ipfs/QmYPPBZ6HwBa1RNkNGqGcR2xgj4fnWBzrPHHoJG3kZA6AN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPriceFeed.sol\":{\"keccak256\":\"0x4bd84c0f1a5d4729ed709bcddd43f4c50ec4a165ece79780af8dce482ed07d4a\",\"urls\":[\"bzz-raw://62bac4bfb6982fb002f620c77e5c445e62d50241a5aa64a07e51d929f5a42180\",\"dweb:/ipfs/QmWgJUDreVY2BuMX38a1iUUR5kNbMwGnKG3VvurB7oZtuM\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBPrices.sol\":{\"keccak256\":\"0xb4d5244daa52aafab0c9b8806b7f973afa6a3b298add5966d586d27b78424cfb\",\"urls\":[\"bzz-raw://a819f74455aaa4f679ded378424702f3992608a640d7f943b19938eb4ff711da\",\"dweb:/ipfs/QmSMGvVTsMW3L5YSUyXTKoEsgNpGEutnq4frEZHuDdeDvz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBProjectUriRegistry.sol\":{\"keccak256\":\"0xc9ab647179d7d0c857fdd881d6ce96f06254739440ed08e85a1c2042218f7c7d\",\"urls\":[\"bzz-raw://8529368f30c98c8d5a69acdbe4ac79e3eeb4afa5a9cd278325c5f2184ef3d50f\",\"dweb:/ipfs/QmfUaozYiAGt1UwBDUEZvon1tEBS5sLPzqpN9dNdjQotPN\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBProjects.sol\":{\"keccak256\":\"0x4ae42a9cc29b517b26d2b9b635deb82c16696b777deeca92dfcad33b0f81c0a0\",\"urls\":[\"bzz-raw://1dcbd860e7d7f05232d90c5e9cfd3d01e2ce986ffcdb053473d8a4d387b1a48a\",\"dweb:/ipfs/QmWKWoSJJbVWDumbnzXJBJyXmAacgC97bxMtchh8te41bn\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBRulesetApprovalHook.sol\":{\"keccak256\":\"0x592e95d159494421c6b1bcb362d0cee1df0132921697351304e9cd7af4fbd386\",\"urls\":[\"bzz-raw://5bebfd5fa67c1b6ea16fa2e76e9520e9dfe52a579f48dd94d0c2ec45f78ad178\",\"dweb:/ipfs/QmRUawEGtfYoYSHmHELGhvJoWuMsxLPKtqAXgsrb7fJboP\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBRulesets.sol\":{\"keccak256\":\"0x29b56a91e8cd4d3e718e18cd934eccbc22c668d08dc26adb43c958722497d3ab\",\"urls\":[\"bzz-raw://7ae1a723eaf16809b9bd73cd235985801aff85283976be342416fa301c3b4793\",\"dweb:/ipfs/QmZYSY7C9dPvR5EnT8YCjVSy842dBVP3wZdYQ71wyPkx2F\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBSplitHook.sol\":{\"keccak256\":\"0xeb8dfac7a4b81897a1c3b5d0d853a406bcff33720fb187d5ca5bb3dcc0ba3a12\",\"urls\":[\"bzz-raw://36aaeef6107cfe5b0127e063ea215aac7200f8af02e28a48e61111abd3254688\",\"dweb:/ipfs/QmQ8yQANXnhQCAWBGKsKCDsJ3A8hnTKNg5tyo79GfWXTcV\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBSplits.sol\":{\"keccak256\":\"0x424e6d1189b9ba7a5d441e7675ae09ff893c13c62b9ddde4dd6bc2690e96c6f3\",\"urls\":[\"bzz-raw://7e30ed7ab1daf20ff324aacfef7150a243b5db496eceaf032c7012ccb3c4227d\",\"dweb:/ipfs/QmRj5EZKmDjJy8tpvKbpz8vPSKHR5C9Q5ENe7oSLij4H8M\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBTerminal.sol\":{\"keccak256\":\"0xe440530f1d0cc16578981e1d2e4e13674360c677d19a74a4b08f9f7268c70aee\",\"urls\":[\"bzz-raw://ddea4aeaf523f48a1364a02d2ccb75f3dfd8a2b9af465964e9adf3ce53f4196a\",\"dweb:/ipfs/QmVWhN1Nn9khUN8ctAgh2Ypo2vnFBgDHtDw6S232A6RkFw\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBToken.sol\":{\"keccak256\":\"0xd33757cd3da65a9d66404b7e6ddb7a27b4902885a3498b9db1673c218e9fab2d\",\"urls\":[\"bzz-raw://de28759920dab1db6cfcb4ff2ffae76491be371b791a2a0ec054ff17653872dc\",\"dweb:/ipfs/QmPXnhdxbgoV4dBRJCi9siQYRfrvcJLDtY1rp3H2vtU1Cz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBTokenUriResolver.sol\":{\"keccak256\":\"0xfa5cb00dcd6085d1ef912d071fe73c63f9478a2cd0f9d8bddaf659b6af2d0967\",\"urls\":[\"bzz-raw://282e4e7c342d65f77cde0e9a08fcaf20ef5cf379c7a48b639842c0ffd0b2afb8\",\"dweb:/ipfs/QmbnN3PEQeZaXdPLT75V1J79kMg7KqSMru37RHrL3z8Yf2\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/interfaces/IJBTokens.sol\":{\"keccak256\":\"0x1348b416ebf501409acc9970d46be89ffd076566001ceff9b96fce1b0b2c405d\",\"urls\":[\"bzz-raw://74327019f5174345afed10d9a60caa9ef908382e131882c27588b13be8364b36\",\"dweb:/ipfs/QmZAqB6hFSymTEbjqHWgE4t9NRose9AJh4etGyWnvDkhJt\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBAccountingContext.sol\":{\"keccak256\":\"0x9c47e048a719f784f601df69a583505432217b9868a0244876d277f84dd1ebdf\",\"urls\":[\"bzz-raw://8565f194b87914da9a02af2e760ae2ed2a9d185c6f11229f7035140776d2fec9\",\"dweb:/ipfs/QmPs2fic8W3F5e5zNRwmGmJFjb3JWGPWJ3YUe5o82nQgEn\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBAfterPayRecordedContext.sol\":{\"keccak256\":\"0xd26c3a774ff38be79064085970454fe2603a23a638c76270d5b1b3829206c3e8\",\"urls\":[\"bzz-raw://3b55dbe3bf1ef625b7ca04efab3de35406e6041d5b3d82c7265469c500e2b702\",\"dweb:/ipfs/QmUdBDo4Lt3mcsFcsXT2mqq3czFwZjQJFPLM89YA2VtD7k\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBCurrencyAmount.sol\":{\"keccak256\":\"0x7f321bbcbd13abfbc8f0d08a5adaaf8ef312db5bb899012fcffb6170fbb962a9\",\"urls\":[\"bzz-raw://bf9301ef1dbb3abda7b492585377617508ba048c6170f21a5e7d2b3c034eb384\",\"dweb:/ipfs/QmcetEFxSYLLNSZzPBpNn3Fc8sFcrFE8A8h12ZSj2tLgxD\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBFundAccessLimitGroup.sol\":{\"keccak256\":\"0x9fdaa8d017b72da25f583700a444a86849df053f7fb8eac874ec5139bcf651e5\",\"urls\":[\"bzz-raw://c8e44c49ee444a98424a0dbeb6897a76a0bf00d88a613f62ac2012afdac754ee\",\"dweb:/ipfs/QmdYkAiRi5bXM1YYNkc7BiqimHSFodMGn1cjHR5hcpm4xH\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBPermissionsData.sol\":{\"keccak256\":\"0xd5a5fe65b1deb40b5cd9c8e05bc1352d0e95f3a18b4986fab7abdc621beb19c7\",\"urls\":[\"bzz-raw://a6141eaa414d3d61de671ae3584b87e98044bf6392cb94d2acd1bb5cc7c19db4\",\"dweb:/ipfs/QmbtvALmburKLRC5fHXscoeZii1N2qQrJAdqarfvSKaKEk\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRuleset.sol\":{\"keccak256\":\"0x03ad7bd257d4ac55ecc42b85156dce1c70eec8572dbf8feb093c033912f305e7\",\"urls\":[\"bzz-raw://9665b4c018cd469f94bec4471222cc9e5fd58ac421a0959f70e72618fe37d55b\",\"dweb:/ipfs/QmSUf6HQv2Ckcoy5tSH1UPdD8vDMerfK29G8kaxmxB3Kow\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRulesetConfig.sol\":{\"keccak256\":\"0x7a57ed3d73bd9457d8e1fb40f5204c364df87cbfdbf42412d5bbc08beabb49c9\",\"urls\":[\"bzz-raw://8b9a83916ee67d32b5f434b35b171c6122bbc4efeaa4fabb8dec2ca4e9e32c6e\",\"dweb:/ipfs/QmNquzUQn6ZvE2wBcMCgru3resV9UNvBWPPetyDChoh8vM\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRulesetMetadata.sol\":{\"keccak256\":\"0x7f49fe89eefe848e6af12aa452bd882430ff35e9dd44e9ff3d7be6911496486c\",\"urls\":[\"bzz-raw://136f3baeb71f8ac1c2721eb94b1d469d35cf3fba82f9138760dde6d451d052ef\",\"dweb:/ipfs/QmVeBaYMS9K3rPfneKiVYnFXbp3X8qxrw4qhN4PmuYHppz\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBRulesetWithMetadata.sol\":{\"keccak256\":\"0x1bcfadf20488f6df65227f8d4d0fbf9b7539456a2389567f7fe3900d23289bc3\",\"urls\":[\"bzz-raw://0a15c399a71e5373f8c0484c6d6b83521eda31e063a2c53e4c5cec4e74550343\",\"dweb:/ipfs/QmQwi8zkjoTVXbK89NeETYimWCacTrNsesJdpLSvGdqMPX\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBSplit.sol\":{\"keccak256\":\"0x0e1351e80cf9967caee90094712a4fc884a83f07df23a844d8cb33ebcd00721e\",\"urls\":[\"bzz-raw://19d5793c08834f2ec1d6942bd43d05042b0ecc351a57235d748a8f2ff74b6638\",\"dweb:/ipfs/QmUWjyNg7x62KsvMwAzNdpmwqCo5qK5ip9pLdshj9B2Kbf\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBSplitGroup.sol\":{\"keccak256\":\"0x8dc98fa9e730bee8bcc0a8acf1bc4db1c9b0edf307d969c9c9caa4d6b8d856d9\",\"urls\":[\"bzz-raw://66f4306e0e69c82033927952564fd617e7c4b29aa8b165d5b53a0ebe3109ea12\",\"dweb:/ipfs/QmQqN1u7FHAdEtEZNRcKvZwYtXEQVQnLd6FMzHESP7wDtx\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBSplitHookContext.sol\":{\"keccak256\":\"0x1cef82bf434f91d518092ea7e57db4a72ce7654f48a7db9bf44882900b6b6623\",\"urls\":[\"bzz-raw://cc5012008ab7e74cf766fe1c202a23e3a73365356bcf1e0b04ec01baf21b204b\",\"dweb:/ipfs/QmSwJvd6Yrg9XZMhjquBcak5sfUswbR5nPEuJBfpjM54VT\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBTerminalConfig.sol\":{\"keccak256\":\"0x9e31505080d3754b6d7db96095b0545930ef6dbc035b91fcc32fdc76a0e7c2a5\",\"urls\":[\"bzz-raw://f7702ab33a1b713c37e5397a55d8ef089289f4da8034cfe9622cbc69a98c47de\",\"dweb:/ipfs/QmXyiXps4aJyiM7vtDC373QUoqwB4DMETaZzC5cZPJKaAK\"],\"license\":\"MIT\"},\"node_modules/@bananapus/core/src/structs/JBTokenAmount.sol\":{\"keccak256\":\"0xc61593d33d5ec30e695d382948a1b944d01e29a8f2bfd29f75ecebcdbc7816de\",\"urls\":[\"bzz-raw://8992c1e5fca0c2342ecc0e734dfba6a2a752e4c29184784931d0971e44305051\",\"dweb:/ipfs/QmYNcaW3qeCkgAExUaFTq238fgfJuoYCTwjCn7jm94U4dJ\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/JBOwnable.sol\":{\"keccak256\":\"0x8cb8f41b5c3482f1eb558d49fd56b5487f1dd0ef5c29a068f0638f4fa466aa3e\",\"urls\":[\"bzz-raw://21a9da6e467b117c31eaee30a027207cd07da3311ba830f0b26a2c168ffd9b19\",\"dweb:/ipfs/QmbedU61hLHttGe2aas4zwypBy86K8kqR9fmzW8vhS4oVH\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/JBOwnableOverrides.sol\":{\"keccak256\":\"0xae09b9163b196e10f833966f11f0005001a11792bfa01167f8d693094e024e2b\",\"urls\":[\"bzz-raw://ea26b51472e4180adf37fd6b3e7ec4e4467dbf30dfe56f64a307d882c03a8a14\",\"dweb:/ipfs/QmQmz1HdxUFHYDtgYFEHsPFqTzqa7nBKw9ZCW7Xt8iUN2c\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/interfaces/IJBOwnable.sol\":{\"keccak256\":\"0xbfdca68abf028e9df18b1885b1163fa6a89bfef0878855a1834b382e2fe924b3\",\"urls\":[\"bzz-raw://34e6a3ffd79453942d74a50bed850e7cdd796dad316b6d6be2654ecd6917f62d\",\"dweb:/ipfs/QmeZ2BwJtgomDfQ8K3gJFX9L7HFTuDQJGwYPVbcMEn1xE4\"],\"license\":\"MIT\"},\"node_modules/@bananapus/ownable/src/struct/JBOwner.sol\":{\"keccak256\":\"0xb2187c4fb303e94814d192284537e4dfac85adecb309f9fa4b2beede63800fad\",\"urls\":[\"bzz-raw://c35989c4f8f77fc8357edf473acd6a223388e24341d67240fd5f66823f595a3b\",\"dweb:/ipfs/QmSFqQ1thNTo7N33TrgPTETtXc29dfgZGeRc7ZGHk1dUGh\"],\"license\":\"MIT\"},\"node_modules/@bananapus/permission-ids/src/JBPermissionIds.sol\":{\"keccak256\":\"0x089932e597c40f1d0f277f8f2acaef065aebcbe8f69012a471b1ead688ccaa47\",\"urls\":[\"bzz-raw://9d9a0a316265d86299e110d56e3f3a1ea9e685b577ef93d6af778e788c8677bb\",\"dweb:/ipfs/QmcHUMAwfdSQknLvPF5N2jT7RM7NnERK9h3kchw18iQqFB\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"],\"license\":\"MIT\"},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"],\"license\":\"MIT\"},\"src/JB721TiersHookProjectDeployer.sol\":{\"keccak256\":\"0xcd7165987797aca8e0fa948e69b77e8b7da1f0ccbb7b487d52cd601b3a9f678e\",\"urls\":[\"bzz-raw://935ad4437be2b3bdeb263718b53adc51a1812e914b03f8a8d720e10b05faaa70\",\"dweb:/ipfs/QmQ85fKayU5cLTCEV4ZfYTTYdJwiZuq1rSNZFAeXsBkRu9\"],\"license\":\"MIT\"},\"src/interfaces/IJB721Hook.sol\":{\"keccak256\":\"0xc4c1b2da6354c37e67e4463ca3dc652daf98769a7dc1af5b6e8bc31dc11bdc69\",\"urls\":[\"bzz-raw://583553ab050c7a96dbee7ffe8436a0f345617a816331bba0fb3d1c1e77b39110\",\"dweb:/ipfs/QmXj783jhFVdGzFqpiCgGaNjnmDE2qNGEGE7HidhzGgrSR\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHook.sol\":{\"keccak256\":\"0x1b17153dcb3901a8d9156976ffb20c1047849ad1ce94c3a1934f7ca012b45bb5\",\"urls\":[\"bzz-raw://e86b10609f4ff4279592a7c185c6b202c0ff2572fad40dcbcfab878dbc735daa\",\"dweb:/ipfs/QmSJE6yTqKuA94BKAixiEFRGUUYhwtngsYDW3VCfrbMzKP\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHookDeployer.sol\":{\"keccak256\":\"0xdcf34032c2a22a782b7121e777715766cce471e9e8186cb710865de674d646bf\",\"urls\":[\"bzz-raw://00c19707f9fd04b9393a2081a50d69a14ed37d4a8f689c39219da6379aaacb53\",\"dweb:/ipfs/QmPdJYKrEEJxVYYaoV5rVRhoBuxmBTEH7u3J2TZtom1Sof\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHookProjectDeployer.sol\":{\"keccak256\":\"0xffcee695bbdf4960b99b905b966ba6225a1909e65397c1f32389e77ec49207d0\",\"urls\":[\"bzz-raw://7aadbb2a046524b164e0886b9deb049823e5b1c92efcf2ad7fd8e22d5a746d51\",\"dweb:/ipfs/QmbhafFJmJ6MUtrSzHqLnshz1PNUz3rgcvB8zif1p8sf7d\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TiersHookStore.sol\":{\"keccak256\":\"0x6f3acee1130717bf1ac5c513cb167a8f121a64c047b505e9aced2b23793b79d7\",\"urls\":[\"bzz-raw://9f4dfe3be9e21c8b5446e9d37e699071f9df257a3c7a2fb8a8791e062617acbc\",\"dweb:/ipfs/QmarDks3DcMyHPVsKdj5qpma5ZBMzH8ti92MY38K76hvSA\"],\"license\":\"MIT\"},\"src/interfaces/IJB721TokenUriResolver.sol\":{\"keccak256\":\"0xfa599167098f4459320ec4141a98a17b2dfffbce422baa27d8b4e4530f61ece1\",\"urls\":[\"bzz-raw://8b758b161f4c7b520b2c34b4d91e585e961b8f4ca278eebb91d791f7f2f45140\",\"dweb:/ipfs/QmcD9DF7NJ9QykQpT4KPzm4bs3fkjzukdAUWwdU6Atfw85\"],\"license\":\"MIT\"},\"src/structs/JB721InitTiersConfig.sol\":{\"keccak256\":\"0xff362fcd46992e56996e1b162b129a1d03ca2342a482421f279bd930b7af79dd\",\"urls\":[\"bzz-raw://56a52c0d4461fd1b278789cd31ccc77b5eab9a0d7e2fab5074bae9c8a79d0cb1\",\"dweb:/ipfs/QmagorkFXB4rEq5rfLcoZHu6jtjcMicMBPfVqMQT86xZoB\"],\"license\":\"MIT\"},\"src/structs/JB721Tier.sol\":{\"keccak256\":\"0x99232aa73d5715977332dc7c93b03552a93259e59ae00e86b4ddc200f06adaf1\",\"urls\":[\"bzz-raw://721c0cf10a29fa11677718faafb3a2ecfcb4fbe4e1c09e70a7fac681c80fcc94\",\"dweb:/ipfs/QmSUR77E9PqnpB5kBcKNz2CGBjG9XL9FH57RWVYu3Q7GMR\"],\"license\":\"MIT\"},\"src/structs/JB721TierConfig.sol\":{\"keccak256\":\"0x86e54a0de4deab9d105bf276586aebe256188b193e83eb7a6f6f93e4a29ae9c5\",\"urls\":[\"bzz-raw://04bfcc07d452c26dfc50d3a5eb62df4b3b81e063defd752e0aa5ed049a78eef4\",\"dweb:/ipfs/QmWd5nJHUvZPHxJXkrYCboXaqdtiWWkQG26sNM6qkJuAgD\"],\"license\":\"MIT\"},\"src/structs/JB721TiersHookFlags.sol\":{\"keccak256\":\"0x283d8429f31bd58875c056515aa42abd09c95362bd929e85cfc44a0d92585766\",\"urls\":[\"bzz-raw://9a580b89fe99d9f8e930c58a4d0d63a5ff7c01c79d210af01373d066c9e72ed6\",\"dweb:/ipfs/QmdY1eSGSoTjv4KSdsG4Tm5CzJN6iqk3qTRga5ZWNbejRz\"],\"license\":\"MIT\"},\"src/structs/JB721TiersMintReservesConfig.sol\":{\"keccak256\":\"0x86fe586a05e6d4bc6fab9b68996a7f4b74c5362ca6f24b9d8057ed7e4cd1c5ac\",\"urls\":[\"bzz-raw://0915f17d1f958ab1fe6b214d99ed62f1f858684898c803f1a8a6a557472dd140\",\"dweb:/ipfs/QmUhdnSV8UzkgvbtkYEKHrpyDEmc2aJxW5HQ1gucuxxu5A\"],\"license\":\"MIT\"},\"src/structs/JB721TiersSetDiscountPercentConfig.sol\":{\"keccak256\":\"0x4672eacb6b0cda5e6f5f72ddb91463c52fb90b4df421053e3b40024f19a59954\",\"urls\":[\"bzz-raw://9d8e3a0b35d6b2a6ec66527594263400189b6c766bfd6943c83704380a989aec\",\"dweb:/ipfs/QmUE7NhFWsxjFRzTuRyHJ7oRx3JXD9CnG83t29PjGAhwPR\"],\"license\":\"MIT\"},\"src/structs/JBDeploy721TiersHookConfig.sol\":{\"keccak256\":\"0x0ce457736946394772afe54d575b68a74269cbf37a250de2d27dca6d9dd45005\",\"urls\":[\"bzz-raw://2010a8f6e19354038d3906ddb174f34464c5f341103313a5c4d628aa7732d5a8\",\"dweb:/ipfs/QmU9m18oWtYNV7UHLcW9kdwE3uzoQuGBe6sASvQTk8GZRL\"],\"license\":\"MIT\"},\"src/structs/JBLaunchProjectConfig.sol\":{\"keccak256\":\"0x0a8f87072dd6e5dd7c5cd5af7153172275de7e85625aa4a97da4fed65ad5b029\",\"urls\":[\"bzz-raw://b1d230835bf8fa17e8308d5d2ce4c820c4a719f451a65477f75956e100984047\",\"dweb:/ipfs/QmX6BwoYNJx1SssBLcBoPJBsg2Hv6ZP2uErXUvoMrAaQ71\"],\"license\":\"MIT\"},\"src/structs/JBLaunchRulesetsConfig.sol\":{\"keccak256\":\"0x0088bc7133e3fae1944247370a4eec227aeae8b371534e1d54439499644c0ede\",\"urls\":[\"bzz-raw://31847d92e9eb5e3125f07c23a651c0972e1784f748c4ce9d0c66853ee892c690\",\"dweb:/ipfs/QmRmoXg2MrkUFkMkgKvU7igkHQjhStbbc6CeiHkLCYAn7P\"],\"license\":\"MIT\"},\"src/structs/JBPayDataHookRulesetConfig.sol\":{\"keccak256\":\"0x06fdbc5c40750b8d81e4c079f86a96f5ce922a0ddbb81ddc5a044aa166723f59\",\"urls\":[\"bzz-raw://b810a5768501951e08c46f1907a7f561a49c4e16f339f1679a493fcddd30cc50\",\"dweb:/ipfs/QmfCF85EAdQCnsixXCdkKb5Xz2bL9dqAoDhmiR1QoBo81P\"],\"license\":\"MIT\"},\"src/structs/JBPayDataHookRulesetMetadata.sol\":{\"keccak256\":\"0x087280b3a959933c68ad19acbf07d80f9bbf632d902986c2ff624b6c31a6eeeb\",\"urls\":[\"bzz-raw://a2ddf9483f89b8a9012bc7714db4547b68a0df5fe3bf953e190d2021377f9811\",\"dweb:/ipfs/QmZcs1fuufGwWYy4fW3puX7ZRrribMMzEyEEL7WVCnrMer\"],\"license\":\"MIT\"},\"src/structs/JBQueueRulesetsConfig.sol\":{\"keccak256\":\"0x3ad05bfa31a90070eb4a026a13d508f9a68ca2474c3737bcda97a07307ffa554\",\"urls\":[\"bzz-raw://357f0193da0840e4b012ff1f97c65c8b6f5fea39e323a3777baf2b0625491f12\",\"dweb:/ipfs/QmZkJb8MuZ3wimiV6kry4RMp9ZkUFQA9yhfJDVUWTBWFcq\"],\"license\":\"MIT\"}},\"version\":1}", "args": [ "0xE0B2860344bA476e12eD1d559656dA9D04F1AD22", "0x4CDb4200e4E65a277676Cd5E8d3c7C7C4dA7fBe5", "0x2BAd941E6c2f9CdBbfc9C25F804f060ffEA1d7bE" ], - "bytecode": "0x60e06040523480156200001157600080fd5b5060405162002a2138038062002a2183398101604081905262000034916200006b565b6001600160a01b0391821660805291811660a0521660c052620000bf565b6001600160a01b03811681146200006857600080fd5b50565b6000806000606084860312156200008157600080fd5b83516200008e8162000052565b6020850151909350620000a18162000052565b6040850151909250620000b48162000052565b809150509250925092565b60805160a05160c0516129036200011e6000396000818160f4015281816102460152818161046501526105d801526000818160a20152818161015401528181610355015261056201526000818161012e0152610a2401526129036000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063abf8c5c811610050578063abf8c5c8146100ef578063ac6a26f814610116578063f434c9141461012957600080fd5b80633c3a22bb1461007757806388bc2ef31461009d5780638b716777146100dc575b600080fd5b61008a6100853660046111cc565b610150565b6040519081526020015b60405180910390f35b6100c47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610094565b61008a6100ea366004611255565b61034e565b6100c47f000000000000000000000000000000000000000000000000000000000000000081565b61008a61012436600461128a565b61055b565b6100c47f000000000000000000000000000000000000000000000000000000000000000081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d49190611304565b6001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610211573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102359190611328565b610240906001611341565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663cc7bb31f83876040518363ffffffff1660e01b81526004016102929291906116c7565b6020604051808303816000875af11580156102b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d59190611304565b90506102eb866102e486612135565b83866106c4565b6040516351106b4b60e11b8152600481018390526001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561032d57600080fd5b505af1158015610341573d6000803e3d6000fd5b5050505050949350505050565b600061044b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d59190611304565b6001600160a01b0316636352211e876040518263ffffffff1660e01b815260040161040291815260200190565b602060405180830381865afa15801561041f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104439190611304565b8660026109cc565b60405163cc7bb31f60e01b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f9061049c90899089906004016116c7565b6020604051808303816000875af11580156104bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104df9190611304565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561052457600080fd5b505af1158015610538573d6000803e3d6000fd5b50505050610551868561054a906121ec565b8386610ada565b9695505050505050565b60006105be7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b1573d6000803e3d6000fd5b60405163cc7bb31f60e01b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f9061060f90899089906004016116c7565b6020604051808303816000875af115801561062e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106529190611304565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561069757600080fd5b505af11580156106ab573d6000803e3d6000fd5b5050505061055186856106bd9061222c565b8386610de4565b60208301515160008167ffffffffffffffff8111156106e5576106e56117e7565b60405190808252806020026020018201604052801561071e57816020015b61070b61109b565b8152602001906001900390816107035790505b50905060005b8281101561094457600086602001518281518110610744576107446122aa565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e0015115158152602001896001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610930576109306122aa565b602090810291909101015250600101610724565b50845160408087015160608801519151634e530d8960e11b81526001600160a01b03871693639ca61b1293610980938c938892906004016127de565b6020604051808303816000875af115801561099f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c39190611328565b50505050505050565b336001600160a01b0384168114801590610a915750604051631a45b42760e11b81526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000000000000000000000000000000000000000000000169063348b684e9060c401602060405180830381865afa158015610a6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8f9190612846565b155b15610ad457604051631326f75560e11b81526001600160a01b03808616600483015282166024820152604481018490526064810183905260840160405180910390fd5b50505050565b602083015151600090818167ffffffffffffffff811115610afd57610afd6117e7565b604051908082528060200260200182016040528015610b3657816020015b610b2361109b565b815260200190600190039081610b1b5790505b50905060005b82811015610d5c57600087602001518281518110610b5c57610b5c6122aa565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610d4857610d486122aa565b602090810291909101015250600101610b3c565b5060408087015160608801519151632a550fab60e11b81526001600160a01b038716926354aa1f5692610d96928c92879291600401612863565b6020604051808303816000875af1158015610db5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd99190611328565b979650505050505050565b602083015151600090818167ffffffffffffffff811115610e0757610e076117e7565b604051908082528060200260200182016040528015610e4057816020015b610e2d61109b565b815260200190600190039081610e255790505b50905060005b8281101561106657600087602001518281518110610e6657610e666122aa565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110611052576110526122aa565b602090810291909101015250600101610e46565b506040808701519051630e18de6b60e41b81526001600160a01b0386169163e18de6b091610d96918b918691906004016128a2565b6040805161010080820183526000808352602080840182905283850182905260608085018390526080808601849052865161028081018852848152928301849052958201839052810182905293840181905260a084810182905260c0850182905260e0850182905291840181905261012084018190526101408401819052610160840181905261018084018190526101a084018190526101c084018190526101e08401819052610200840181905261022084018190526102408401819052610260840152909190820190815260200160608152602001606081525090565b6001600160a01b038116811461118e57600080fd5b50565b803561119c81611179565b919050565b600061016082840312156111b457600080fd5b50919050565b6000608082840312156111b457600080fd5b600080600080608085870312156111e257600080fd5b84356111ed81611179565b9350602085013567ffffffffffffffff8082111561120a57600080fd5b611216888389016111a1565b9450604087013591508082111561122c57600080fd5b50611239878288016111ba565b925050606085013561124a81611179565b939692955090935050565b6000806000806080858703121561126b57600080fd5b84359350602085013567ffffffffffffffff8082111561120a57600080fd5b600080600080608085870312156112a057600080fd5b84359350602085013567ffffffffffffffff808211156112bf57600080fd5b6112cb888389016111a1565b945060408701359150808211156112e157600080fd5b508501606081880312156112f457600080fd5b9150606085013561124a81611179565b60006020828403121561131657600080fd5b815161132181611179565b9392505050565b60006020828403121561133a57600080fd5b5051919050565b8082018082111561136257634e487b7160e01b600052601160045260246000fd5b92915050565b6000808335601e1984360301811261137f57600080fd5b830160208101925035905067ffffffffffffffff81111561139f57600080fd5b8036038213156113ae57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008235607e198336030181126113f457600080fd5b90910192915050565b80356cffffffffffffffffffffffffff8116811461119c57600080fd5b803563ffffffff8116811461119c57600080fd5b803561ffff8116811461119c57600080fd5b803562ffffff8116811461119c57600080fd5b803560ff8116811461119c57600080fd5b801515811461118e57600080fd5b803561119c81611464565b600060808084018335601e1985360301811261149857600080fd5b8401602081810191359067ffffffffffffffff8211156114b757600080fd5b6101c080830236038413156114cb57600080fd5b608089529382905260a09384890160005b8481101561161757611504826114f1886113fd565b6cffffffffffffffffffffffffff169052565b61150f84870161141a565b63ffffffff1684830152604061152687820161141a565b63ffffffff1690830152606061153d87820161142e565b61ffff1690830152611550868901611191565b6001600160a01b031688830152858701358783015260c0611572818801611440565b62ffffff169083015260e0611588878201611453565b60ff169083015261010061159d878201611472565b1515908301526101206115b1878201611472565b1515908301526101406115c5878201611472565b1515908301526101606115d9878201611472565b1515908301526101806115ed878201611472565b1515908301526101a0611601878201611472565b15159083015294820194908201906001016114dc565b5061162460208a0161141a565b63ffffffff811660208c0152965061163e60408a01611453565b60ff811660408c0152965061165560608a01611191565b6001600160a01b03811660608c015296509998505050505050505050565b803561167e81611464565b15158252602081013561169081611464565b1515602083015260408101356116a581611464565b1515604083015260608101356116ba81611464565b8015156060840152505050565b8281526040602082015260006116dd8384611368565b61016060408501526116f46101a0850182846113b5565b9150506117046020850185611368565b603f198086850301606087015261171c8483856113b5565b935061172b6040880188611368565b93509150808685030160808701526117448484846113b5565b935061175260608801611191565b6001600160a01b03811660a088015292506117706080880188611368565b93509150808685030160c08701526117898484846113b5565b935061179860a08801886113de565b9250808685030160e087015250506117b0828261147d565b9150506117bf60c08501611191565b6001600160a01b03166101008401526117df610120840160e08601611673565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff81118282101715611821576118216117e7565b60405290565b6040805190810167ffffffffffffffff81118282101715611821576118216117e7565b60405160c0810167ffffffffffffffff81118282101715611821576118216117e7565b6040516080810167ffffffffffffffff81118282101715611821576118216117e7565b604051610100810167ffffffffffffffff81118282101715611821576118216117e7565b6040516060810167ffffffffffffffff81118282101715611821576118216117e7565b604051601f8201601f1916810167ffffffffffffffff81118282101715611900576119006117e7565b604052919050565b600082601f83011261191957600080fd5b813567ffffffffffffffff811115611933576119336117e7565b611946601f8201601f19166020016118d7565b81815284602083860101111561195b57600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff821115611992576119926117e7565b5060051b60200190565b803565ffffffffffff8116811461119c57600080fd5b80356dffffffffffffffffffffffffffff8116811461119c57600080fd5b600061022082840312156119e357600080fd5b6119eb6117fd565b90506119f68261142e565b8152611a046020830161142e565b6020820152611a156040830161141a565b6040820152611a2660608301611472565b6060820152611a3760808301611472565b6080820152611a4860a08301611472565b60a0820152611a5960c08301611472565b60c0820152611a6a60e08301611472565b60e0820152610100611a7d818401611472565b90820152610120611a8f838201611472565b90820152610140611aa1838201611472565b90820152610160611ab3838201611472565b90820152610180611ac5838201611472565b908201526101a0611ad7838201611472565b908201526101c0611ae9838201611472565b908201526101e0611afb838201611472565b90820152610200611b0d83820161142e565b9082015292915050565b803566ffffffffffffff8116811461119c57600080fd5b600082601f830112611b3f57600080fd5b81356020611b54611b4f83611978565b6118d7565b82815260059290921b84018101918181019086841115611b7357600080fd5b8286015b84811015611cc257803567ffffffffffffffff80821115611b9757600080fd5b908801906040828b03601f1901811315611bb057600080fd5b611bb8611827565b8784013581528184013583811115611bcf57600080fd5b8085019450508b603f850112611be457600080fd5b878401359250611bf6611b4f84611978565b83815260c09093028401820192888101908d851115611c1457600080fd5b948301945b84861015611cad5760c0868f031215611c3157600080fd5b611c3961184a565b8635611c4481611464565b8152611c51878c0161141a565b8b820152611c60858801611b17565b858201526060870135611c7281611179565b6060820152611c836080880161199c565b608082015260a0870135611c9681611179565b60a0820152825260c0959095019490890190611c19565b828a0152508652505050918301918301611b77565b509695505050505050565b600082601f830112611cde57600080fd5b81356020611cee611b4f83611978565b82815260069290921b84018101918181019086841115611d0d57600080fd5b8286015b84811015611cc25760408189031215611d2a5760008081fd5b611d32611827565b81357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81168114611d5f5760008081fd5b8152611d6c82860161141a565b81860152835291830191604001611d11565b600082601f830112611d8f57600080fd5b81356020611d9f611b4f83611978565b82815260059290921b84018101918181019086841115611dbe57600080fd5b8286015b84811015611cc257803567ffffffffffffffff80821115611de35760008081fd5b908801906080828b03601f1901811315611dfd5760008081fd5b611e0561186d565b87840135611e1281611179565b8152604084810135611e2381611179565b828a015260608581013585811115611e3b5760008081fd5b611e498f8c838a0101611ccd565b8484015250928501359284841115611e6357600091508182fd5b611e718e8b86890101611ccd565b90830152508652505050918301918301611dc2565b600082601f830112611e9757600080fd5b81356020611ea7611b4f83611978565b82815260059290921b84018101918181019086841115611ec657600080fd5b8286015b84811015611cc257803567ffffffffffffffff80821115611eeb5760008081fd5b90880190610300828b03601f1901811315611f065760008081fd5b611f0e611890565b611f1988850161199c565b81526040611f2881860161141a565b898301526060611f398187016119b2565b8284015260809150611f4c82870161141a565b9083015260a0611f5d868201611191565b8284015260c09150611f718e8388016119d0565b908301526102e085013584811115611f895760008081fd5b611f978e8b83890101611b2e565b82840152505081840135915082821115611fb15760008081fd5b611fbf8c8984870101611d7e565b60e08201528652505050918301918301611eca565b600082601f830112611fe557600080fd5b81356020611ff5611b4f83611978565b82815260059290921b8401810191818101908684111561201457600080fd5b8286015b84811015611cc257803567ffffffffffffffff8082111561203857600080fd5b908801906040828b03601f190181131561205157600080fd5b612059611827565b8784013561206681611179565b8152838201358381111561207957600080fd5b8085019450508b603f85011261208e57600080fd5b8784013592506120a0611b4f84611978565b83815260609093028401820192888101908d8511156120be57600080fd5b948301945b84861015612120576060868f0312156120db57600080fd5b6120e36118b4565b86356120ee81611179565b81526120fb878c01611453565b8b82015261210a85880161141a565b81860152825260609590950194908901906120c3565b828a0152508652505050918301918301612018565b60006080823603121561214757600080fd5b61214f61186d565b823567ffffffffffffffff8082111561216757600080fd5b61217336838701611908565b8352602085013591508082111561218957600080fd5b61219536838701611e86565b602084015260408501359150808211156121ae57600080fd5b6121ba36838701611fd4565b604084015260608501359150808211156121d357600080fd5b506121e036828601611908565b60608301525092915050565b6000608082360312156121fe57600080fd5b61220661186d565b61220f83611b17565b8152602083013567ffffffffffffffff8082111561218957600080fd5b60006060823603121561223e57600080fd5b6122466118b4565b61224f83611b17565b8152602083013567ffffffffffffffff8082111561226c57600080fd5b61227836838701611e86565b6020840152604085013591508082111561229157600080fd5b5061229e36828601611908565b60408301525092915050565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156122e6576020818501810151868301820152016122ca565b506000602082860101526020601f19601f83011685010191505092915050565b805161ffff1682526020810151612323602084018261ffff169052565b50604081015161233b604084018263ffffffff169052565b50606081015161234f606084018215159052565b506080810151612363608084018215159052565b5060a081015161237760a084018215159052565b5060c081015161238b60c084018215159052565b5060e081015161239f60e084018215159052565b5061010081810151151590830152610120808201511515908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c0808201511515908301526101e0808201511515908301526102008082015115159083015261022080820151151590830152610240808201516001600160a01b0316908301526102608082015161ffff811682850152610ad4565b600082825180855260208086019550808260051b8401018186016000805b8581101561252857868403601f19018a52825180518552850151604086860181905281518187018190529187019160609081880190865b818110156125115785518051151584528b81015163ffffffff168c8501528581015166ffffffffffffff1686850152848101516001600160a01b039081168686015260808083015165ffffffffffff169086015260a0918201511690840152948a019460c0909201916001016124a0565b50509c88019c965050509285019250600101612469565b509198975050505050505050565b60008151808452602080850194506020840160005b8381101561259657815180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16885283015163ffffffff16838801526040909601959082019060010161254b565b509495945050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561263557601f19868403018952815160806001600160a01b038083511686528087840151168787015250604080830151828288015261260383880182612536565b92505050606080830151925085820381870152506126218183612536565b9a86019a94505050908301906001016125be565b5090979650505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561263557601f198684030189528151805165ffffffffffff1684528481015163ffffffff908116868601526040808301516dffffffffffffffffffffffffffff1690860152606080830151909116908501526080808201516001600160a01b03169085015260a08082015161036091906126df82880182612306565b505060c0820151816103208701526126f98287018261244b565b91505060e0820151915084810361034086015261271681836125a1565b9a86019a945050509083019060010161265f565b600082825180855260208086019550808260051b8401018186016000805b8581101561252857868403601f19018a52825180516001600160a01b03908116865290860151604087870181905281518188018190529188019290916060919082890190875b818110156127c65786518051851684528c81015160ff168d85015286015163ffffffff1686840152958b01959184019160010161278e565b50509d89019d97505050938601935050600101612748565b6001600160a01b038616815260a06020820152600061280060a08301876122c0565b82810360408401526128128187612642565b90508281036060840152612826818661272a565b9050828103608084015261283a81856122c0565b98975050505050505050565b60006020828403121561285857600080fd5b815161132181611464565b84815260806020820152600061287c6080830186612642565b828103604084015261288e818661272a565b90508281036060840152610dd981856122c0565b8381526060602082015260006128bb6060830185612642565b828103604084015261055181856122c056fea264697066735822122065bea5c5b12a0b599df982d500bc196b031d7371de559ac209ff46d6b263a22064736f6c63430008170033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100725760003560e01c8063abf8c5c811610050578063abf8c5c8146100ef578063ac6a26f814610116578063f434c9141461012957600080fd5b80633c3a22bb1461007757806388bc2ef31461009d5780638b716777146100dc575b600080fd5b61008a6100853660046111cc565b610150565b6040519081526020015b60405180910390f35b6100c47f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad2281565b6040516001600160a01b039091168152602001610094565b61008a6100ea366004611255565b61034e565b6100c47f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be81565b61008a61012436600461128a565b61055b565b6100c47f0000000000000000000000004cdb4200e4e65a277676cd5e8d3c7c7c4da7fbe581565b60007f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad226001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d49190611304565b6001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610211573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102359190611328565b610240906001611341565b905060007f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be6001600160a01b031663cc7bb31f83876040518363ffffffff1660e01b81526004016102929291906116c7565b6020604051808303816000875af11580156102b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d59190611304565b90506102eb866102e486612135565b83866106c4565b6040516351106b4b60e11b8152600481018390526001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561032d57600080fd5b505af1158015610341573d6000803e3d6000fd5b5050505050949350505050565b600061044b7f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad226001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d59190611304565b6001600160a01b0316636352211e876040518263ffffffff1660e01b815260040161040291815260200190565b602060405180830381865afa15801561041f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104439190611304565b8660026109cc565b60405163cc7bb31f60e01b81526000906001600160a01b037f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be169063cc7bb31f9061049c90899089906004016116c7565b6020604051808303816000875af11580156104bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104df9190611304565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561052457600080fd5b505af1158015610538573d6000803e3d6000fd5b50505050610551868561054a906121ec565b8386610ada565b9695505050505050565b60006105be7f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad226001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b1573d6000803e3d6000fd5b60405163cc7bb31f60e01b81526000906001600160a01b037f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be169063cc7bb31f9061060f90899089906004016116c7565b6020604051808303816000875af115801561062e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106529190611304565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561069757600080fd5b505af11580156106ab573d6000803e3d6000fd5b5050505061055186856106bd9061222c565b8386610de4565b60208301515160008167ffffffffffffffff8111156106e5576106e56117e7565b60405190808252806020026020018201604052801561071e57816020015b61070b61109b565b8152602001906001900390816107035790505b50905060005b8281101561094457600086602001518281518110610744576107446122aa565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e0015115158152602001896001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610930576109306122aa565b602090810291909101015250600101610724565b50845160408087015160608801519151634e530d8960e11b81526001600160a01b03871693639ca61b1293610980938c938892906004016127de565b6020604051808303816000875af115801561099f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c39190611328565b50505050505050565b336001600160a01b0384168114801590610a915750604051631a45b42760e11b81526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000004cdb4200e4e65a277676cd5e8d3c7c7c4da7fbe5169063348b684e9060c401602060405180830381865afa158015610a6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8f9190612846565b155b15610ad457604051631326f75560e11b81526001600160a01b03808616600483015282166024820152604481018490526064810183905260840160405180910390fd5b50505050565b602083015151600090818167ffffffffffffffff811115610afd57610afd6117e7565b604051908082528060200260200182016040528015610b3657816020015b610b2361109b565b815260200190600190039081610b1b5790505b50905060005b82811015610d5c57600087602001518281518110610b5c57610b5c6122aa565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610d4857610d486122aa565b602090810291909101015250600101610b3c565b5060408087015160608801519151632a550fab60e11b81526001600160a01b038716926354aa1f5692610d96928c92879291600401612863565b6020604051808303816000875af1158015610db5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd99190611328565b979650505050505050565b602083015151600090818167ffffffffffffffff811115610e0757610e076117e7565b604051908082528060200260200182016040528015610e4057816020015b610e2d61109b565b815260200190600190039081610e255790505b50905060005b8281101561106657600087602001518281518110610e6657610e666122aa565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110611052576110526122aa565b602090810291909101015250600101610e46565b506040808701519051630e18de6b60e41b81526001600160a01b0386169163e18de6b091610d96918b918691906004016128a2565b6040805161010080820183526000808352602080840182905283850182905260608085018390526080808601849052865161028081018852848152928301849052958201839052810182905293840181905260a084810182905260c0850182905260e0850182905291840181905261012084018190526101408401819052610160840181905261018084018190526101a084018190526101c084018190526101e08401819052610200840181905261022084018190526102408401819052610260840152909190820190815260200160608152602001606081525090565b6001600160a01b038116811461118e57600080fd5b50565b803561119c81611179565b919050565b600061016082840312156111b457600080fd5b50919050565b6000608082840312156111b457600080fd5b600080600080608085870312156111e257600080fd5b84356111ed81611179565b9350602085013567ffffffffffffffff8082111561120a57600080fd5b611216888389016111a1565b9450604087013591508082111561122c57600080fd5b50611239878288016111ba565b925050606085013561124a81611179565b939692955090935050565b6000806000806080858703121561126b57600080fd5b84359350602085013567ffffffffffffffff8082111561120a57600080fd5b600080600080608085870312156112a057600080fd5b84359350602085013567ffffffffffffffff808211156112bf57600080fd5b6112cb888389016111a1565b945060408701359150808211156112e157600080fd5b508501606081880312156112f457600080fd5b9150606085013561124a81611179565b60006020828403121561131657600080fd5b815161132181611179565b9392505050565b60006020828403121561133a57600080fd5b5051919050565b8082018082111561136257634e487b7160e01b600052601160045260246000fd5b92915050565b6000808335601e1984360301811261137f57600080fd5b830160208101925035905067ffffffffffffffff81111561139f57600080fd5b8036038213156113ae57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008235607e198336030181126113f457600080fd5b90910192915050565b80356cffffffffffffffffffffffffff8116811461119c57600080fd5b803563ffffffff8116811461119c57600080fd5b803561ffff8116811461119c57600080fd5b803562ffffff8116811461119c57600080fd5b803560ff8116811461119c57600080fd5b801515811461118e57600080fd5b803561119c81611464565b600060808084018335601e1985360301811261149857600080fd5b8401602081810191359067ffffffffffffffff8211156114b757600080fd5b6101c080830236038413156114cb57600080fd5b608089529382905260a09384890160005b8481101561161757611504826114f1886113fd565b6cffffffffffffffffffffffffff169052565b61150f84870161141a565b63ffffffff1684830152604061152687820161141a565b63ffffffff1690830152606061153d87820161142e565b61ffff1690830152611550868901611191565b6001600160a01b031688830152858701358783015260c0611572818801611440565b62ffffff169083015260e0611588878201611453565b60ff169083015261010061159d878201611472565b1515908301526101206115b1878201611472565b1515908301526101406115c5878201611472565b1515908301526101606115d9878201611472565b1515908301526101806115ed878201611472565b1515908301526101a0611601878201611472565b15159083015294820194908201906001016114dc565b5061162460208a0161141a565b63ffffffff811660208c0152965061163e60408a01611453565b60ff811660408c0152965061165560608a01611191565b6001600160a01b03811660608c015296509998505050505050505050565b803561167e81611464565b15158252602081013561169081611464565b1515602083015260408101356116a581611464565b1515604083015260608101356116ba81611464565b8015156060840152505050565b8281526040602082015260006116dd8384611368565b61016060408501526116f46101a0850182846113b5565b9150506117046020850185611368565b603f198086850301606087015261171c8483856113b5565b935061172b6040880188611368565b93509150808685030160808701526117448484846113b5565b935061175260608801611191565b6001600160a01b03811660a088015292506117706080880188611368565b93509150808685030160c08701526117898484846113b5565b935061179860a08801886113de565b9250808685030160e087015250506117b0828261147d565b9150506117bf60c08501611191565b6001600160a01b03166101008401526117df610120840160e08601611673565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff81118282101715611821576118216117e7565b60405290565b6040805190810167ffffffffffffffff81118282101715611821576118216117e7565b60405160c0810167ffffffffffffffff81118282101715611821576118216117e7565b6040516080810167ffffffffffffffff81118282101715611821576118216117e7565b604051610100810167ffffffffffffffff81118282101715611821576118216117e7565b6040516060810167ffffffffffffffff81118282101715611821576118216117e7565b604051601f8201601f1916810167ffffffffffffffff81118282101715611900576119006117e7565b604052919050565b600082601f83011261191957600080fd5b813567ffffffffffffffff811115611933576119336117e7565b611946601f8201601f19166020016118d7565b81815284602083860101111561195b57600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff821115611992576119926117e7565b5060051b60200190565b803565ffffffffffff8116811461119c57600080fd5b80356dffffffffffffffffffffffffffff8116811461119c57600080fd5b600061022082840312156119e357600080fd5b6119eb6117fd565b90506119f68261142e565b8152611a046020830161142e565b6020820152611a156040830161141a565b6040820152611a2660608301611472565b6060820152611a3760808301611472565b6080820152611a4860a08301611472565b60a0820152611a5960c08301611472565b60c0820152611a6a60e08301611472565b60e0820152610100611a7d818401611472565b90820152610120611a8f838201611472565b90820152610140611aa1838201611472565b90820152610160611ab3838201611472565b90820152610180611ac5838201611472565b908201526101a0611ad7838201611472565b908201526101c0611ae9838201611472565b908201526101e0611afb838201611472565b90820152610200611b0d83820161142e565b9082015292915050565b803566ffffffffffffff8116811461119c57600080fd5b600082601f830112611b3f57600080fd5b81356020611b54611b4f83611978565b6118d7565b82815260059290921b84018101918181019086841115611b7357600080fd5b8286015b84811015611cc257803567ffffffffffffffff80821115611b9757600080fd5b908801906040828b03601f1901811315611bb057600080fd5b611bb8611827565b8784013581528184013583811115611bcf57600080fd5b8085019450508b603f850112611be457600080fd5b878401359250611bf6611b4f84611978565b83815260c09093028401820192888101908d851115611c1457600080fd5b948301945b84861015611cad5760c0868f031215611c3157600080fd5b611c3961184a565b8635611c4481611464565b8152611c51878c0161141a565b8b820152611c60858801611b17565b858201526060870135611c7281611179565b6060820152611c836080880161199c565b608082015260a0870135611c9681611179565b60a0820152825260c0959095019490890190611c19565b828a0152508652505050918301918301611b77565b509695505050505050565b600082601f830112611cde57600080fd5b81356020611cee611b4f83611978565b82815260069290921b84018101918181019086841115611d0d57600080fd5b8286015b84811015611cc25760408189031215611d2a5760008081fd5b611d32611827565b81357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81168114611d5f5760008081fd5b8152611d6c82860161141a565b81860152835291830191604001611d11565b600082601f830112611d8f57600080fd5b81356020611d9f611b4f83611978565b82815260059290921b84018101918181019086841115611dbe57600080fd5b8286015b84811015611cc257803567ffffffffffffffff80821115611de35760008081fd5b908801906080828b03601f1901811315611dfd5760008081fd5b611e0561186d565b87840135611e1281611179565b8152604084810135611e2381611179565b828a015260608581013585811115611e3b5760008081fd5b611e498f8c838a0101611ccd565b8484015250928501359284841115611e6357600091508182fd5b611e718e8b86890101611ccd565b90830152508652505050918301918301611dc2565b600082601f830112611e9757600080fd5b81356020611ea7611b4f83611978565b82815260059290921b84018101918181019086841115611ec657600080fd5b8286015b84811015611cc257803567ffffffffffffffff80821115611eeb5760008081fd5b90880190610300828b03601f1901811315611f065760008081fd5b611f0e611890565b611f1988850161199c565b81526040611f2881860161141a565b898301526060611f398187016119b2565b8284015260809150611f4c82870161141a565b9083015260a0611f5d868201611191565b8284015260c09150611f718e8388016119d0565b908301526102e085013584811115611f895760008081fd5b611f978e8b83890101611b2e565b82840152505081840135915082821115611fb15760008081fd5b611fbf8c8984870101611d7e565b60e08201528652505050918301918301611eca565b600082601f830112611fe557600080fd5b81356020611ff5611b4f83611978565b82815260059290921b8401810191818101908684111561201457600080fd5b8286015b84811015611cc257803567ffffffffffffffff8082111561203857600080fd5b908801906040828b03601f190181131561205157600080fd5b612059611827565b8784013561206681611179565b8152838201358381111561207957600080fd5b8085019450508b603f85011261208e57600080fd5b8784013592506120a0611b4f84611978565b83815260609093028401820192888101908d8511156120be57600080fd5b948301945b84861015612120576060868f0312156120db57600080fd5b6120e36118b4565b86356120ee81611179565b81526120fb878c01611453565b8b82015261210a85880161141a565b81860152825260609590950194908901906120c3565b828a0152508652505050918301918301612018565b60006080823603121561214757600080fd5b61214f61186d565b823567ffffffffffffffff8082111561216757600080fd5b61217336838701611908565b8352602085013591508082111561218957600080fd5b61219536838701611e86565b602084015260408501359150808211156121ae57600080fd5b6121ba36838701611fd4565b604084015260608501359150808211156121d357600080fd5b506121e036828601611908565b60608301525092915050565b6000608082360312156121fe57600080fd5b61220661186d565b61220f83611b17565b8152602083013567ffffffffffffffff8082111561218957600080fd5b60006060823603121561223e57600080fd5b6122466118b4565b61224f83611b17565b8152602083013567ffffffffffffffff8082111561226c57600080fd5b61227836838701611e86565b6020840152604085013591508082111561229157600080fd5b5061229e36828601611908565b60408301525092915050565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156122e6576020818501810151868301820152016122ca565b506000602082860101526020601f19601f83011685010191505092915050565b805161ffff1682526020810151612323602084018261ffff169052565b50604081015161233b604084018263ffffffff169052565b50606081015161234f606084018215159052565b506080810151612363608084018215159052565b5060a081015161237760a084018215159052565b5060c081015161238b60c084018215159052565b5060e081015161239f60e084018215159052565b5061010081810151151590830152610120808201511515908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c0808201511515908301526101e0808201511515908301526102008082015115159083015261022080820151151590830152610240808201516001600160a01b0316908301526102608082015161ffff811682850152610ad4565b600082825180855260208086019550808260051b8401018186016000805b8581101561252857868403601f19018a52825180518552850151604086860181905281518187018190529187019160609081880190865b818110156125115785518051151584528b81015163ffffffff168c8501528581015166ffffffffffffff1686850152848101516001600160a01b039081168686015260808083015165ffffffffffff169086015260a0918201511690840152948a019460c0909201916001016124a0565b50509c88019c965050509285019250600101612469565b509198975050505050505050565b60008151808452602080850194506020840160005b8381101561259657815180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16885283015163ffffffff16838801526040909601959082019060010161254b565b509495945050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561263557601f19868403018952815160806001600160a01b038083511686528087840151168787015250604080830151828288015261260383880182612536565b92505050606080830151925085820381870152506126218183612536565b9a86019a94505050908301906001016125be565b5090979650505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561263557601f198684030189528151805165ffffffffffff1684528481015163ffffffff908116868601526040808301516dffffffffffffffffffffffffffff1690860152606080830151909116908501526080808201516001600160a01b03169085015260a08082015161036091906126df82880182612306565b505060c0820151816103208701526126f98287018261244b565b91505060e0820151915084810361034086015261271681836125a1565b9a86019a945050509083019060010161265f565b600082825180855260208086019550808260051b8401018186016000805b8581101561252857868403601f19018a52825180516001600160a01b03908116865290860151604087870181905281518188018190529188019290916060919082890190875b818110156127c65786518051851684528c81015160ff168d85015286015163ffffffff1686840152958b01959184019160010161278e565b50509d89019d97505050938601935050600101612748565b6001600160a01b038616815260a06020820152600061280060a08301876122c0565b82810360408401526128128187612642565b90508281036060840152612826818661272a565b9050828103608084015261283a81856122c0565b98975050505050505050565b60006020828403121561285857600080fd5b815161132181611464565b84815260806020820152600061287c6080830186612642565b828103604084015261288e818661272a565b90508281036060840152610dd981856122c0565b8381526060602082015260006128bb6060830185612642565b828103604084015261055181856122c056fea264697066735822122065bea5c5b12a0b599df982d500bc196b031d7371de559ac209ff46d6b263a22064736f6c63430008170033", + "bytecode": "0x60e06040523480156200001157600080fd5b5060405162002a3838038062002a3883398101604081905262000034916200006b565b6001600160a01b0391821660805291811660a0521660c052620000bf565b6001600160a01b03811681146200006857600080fd5b50565b6000806000606084860312156200008157600080fd5b83516200008e8162000052565b6020850151909350620000a18162000052565b6040850151909250620000b48162000052565b809150509250925092565b60805160a05160c0516129196200011f600039600081816101030152818161026a0152818161047201526105e401526000818160b10152818161016401528181610365015261057101526000818161013d0152610a3001526129196000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063abf8c5c811610050578063abf8c5c8146100fe578063ac6a26f814610125578063f434c9141461013857600080fd5b80633c3a22bb1461007757806388bc2ef3146100ac5780638b716777146100eb575b600080fd5b61008a6100853660046111d8565b61015f565b604080519283526001600160a01b039091166020830152015b60405180910390f35b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100a3565b61008a6100f9366004611261565b61035d565b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b61008a610133366004611296565b610569565b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e49190611310565b6001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102459190611334565b61025090600161134d565b60405163cc7bb31f60e01b81529092506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f906102a190859089906004016116d3565b6020604051808303816000875af11580156102c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e49190611310565b90506102fa866102f386612141565b83866106d0565b6040516351106b4b60e11b8152600481018390526001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561033c57600080fd5b505af1158015610350573d6000803e3d6000fd5b5050505094509492505050565b60008061045b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e59190611310565b6001600160a01b0316636352211e886040518263ffffffff1660e01b815260040161041291815260200190565b602060405180830381865afa15801561042f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104539190611310565b8760026109d8565b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f906104a990899089906004016116d3565b6020604051808303816000875af11580156104c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ec9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b5050505061055e8685610557906121f8565b8386610ae6565b915094509492505050565b6000806105cd7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f9061061b90899089906004016116d3565b6020604051808303816000875af115801561063a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065e9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b1580156106a357600080fd5b505af11580156106b7573d6000803e3d6000fd5b5050505061055e86856106c990612238565b8386610df0565b60208301515160008167ffffffffffffffff8111156106f1576106f16117f3565b60405190808252806020026020018201604052801561072a57816020015b6107176110a7565b81526020019060019003908161070f5790505b50905060005b8281101561095057600086602001518281518110610750576107506122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e0015115158152602001896001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061093c5761093c6122b6565b602090810291909101015250600101610730565b50845160408087015160608801519151634e530d8960e11b81526001600160a01b03871693639ca61b129361098c938c938892906004016127ea565b6020604051808303816000875af11580156109ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cf9190611334565b50505050505050565b336001600160a01b0384168114801590610a9d5750604051631a45b42760e11b81526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000000000000000000000000000000000000000000000169063348b684e9060c401602060405180830381865afa158015610a77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9b9190612852565b155b15610ae057604051631326f75560e11b81526001600160a01b03808616600483015282166024820152604481018490526064810183905260840160405180910390fd5b50505050565b602083015151600090818167ffffffffffffffff811115610b0957610b096117f3565b604051908082528060200260200182016040528015610b4257816020015b610b2f6110a7565b815260200190600190039081610b275790505b50905060005b82811015610d6857600087602001518281518110610b6857610b686122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610d5457610d546122b6565b602090810291909101015250600101610b48565b5060408087015160608801519151632a550fab60e11b81526001600160a01b038716926354aa1f5692610da2928c9287929160040161286f565b6020604051808303816000875af1158015610dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de59190611334565b979650505050505050565b602083015151600090818167ffffffffffffffff811115610e1357610e136117f3565b604051908082528060200260200182016040528015610e4c57816020015b610e396110a7565b815260200190600190039081610e315790505b50905060005b8281101561107257600087602001518281518110610e7257610e726122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061105e5761105e6122b6565b602090810291909101015250600101610e52565b506040808701519051630e18de6b60e41b81526001600160a01b0386169163e18de6b091610da2918b918691906004016128ae565b6040805161010080820183526000808352602080840182905283850182905260608085018390526080808601849052865161028081018852848152928301849052958201839052810182905293840181905260a084810182905260c0850182905260e0850182905291840181905261012084018190526101408401819052610160840181905261018084018190526101a084018190526101c084018190526101e08401819052610200840181905261022084018190526102408401819052610260840152909190820190815260200160608152602001606081525090565b6001600160a01b038116811461119a57600080fd5b50565b80356111a881611185565b919050565b600061016082840312156111c057600080fd5b50919050565b6000608082840312156111c057600080fd5b600080600080608085870312156111ee57600080fd5b84356111f981611185565b9350602085013567ffffffffffffffff8082111561121657600080fd5b611222888389016111ad565b9450604087013591508082111561123857600080fd5b50611245878288016111c6565b925050606085013561125681611185565b939692955090935050565b6000806000806080858703121561127757600080fd5b84359350602085013567ffffffffffffffff8082111561121657600080fd5b600080600080608085870312156112ac57600080fd5b84359350602085013567ffffffffffffffff808211156112cb57600080fd5b6112d7888389016111ad565b945060408701359150808211156112ed57600080fd5b5085016060818803121561130057600080fd5b9150606085013561125681611185565b60006020828403121561132257600080fd5b815161132d81611185565b9392505050565b60006020828403121561134657600080fd5b5051919050565b8082018082111561136e57634e487b7160e01b600052601160045260246000fd5b92915050565b6000808335601e1984360301811261138b57600080fd5b830160208101925035905067ffffffffffffffff8111156113ab57600080fd5b8036038213156113ba57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008235607e1983360301811261140057600080fd5b90910192915050565b80356cffffffffffffffffffffffffff811681146111a857600080fd5b803563ffffffff811681146111a857600080fd5b803561ffff811681146111a857600080fd5b803562ffffff811681146111a857600080fd5b803560ff811681146111a857600080fd5b801515811461119a57600080fd5b80356111a881611470565b600060808084018335601e198536030181126114a457600080fd5b8401602081810191359067ffffffffffffffff8211156114c357600080fd5b6101c080830236038413156114d757600080fd5b608089529382905260a09384890160005b8481101561162357611510826114fd88611409565b6cffffffffffffffffffffffffff169052565b61151b848701611426565b63ffffffff16848301526040611532878201611426565b63ffffffff1690830152606061154987820161143a565b61ffff169083015261155c86890161119d565b6001600160a01b031688830152858701358783015260c061157e81880161144c565b62ffffff169083015260e061159487820161145f565b60ff16908301526101006115a987820161147e565b1515908301526101206115bd87820161147e565b1515908301526101406115d187820161147e565b1515908301526101606115e587820161147e565b1515908301526101806115f987820161147e565b1515908301526101a061160d87820161147e565b15159083015294820194908201906001016114e8565b5061163060208a01611426565b63ffffffff811660208c0152965061164a60408a0161145f565b60ff811660408c0152965061166160608a0161119d565b6001600160a01b03811660608c015296509998505050505050505050565b803561168a81611470565b15158252602081013561169c81611470565b1515602083015260408101356116b181611470565b1515604083015260608101356116c681611470565b8015156060840152505050565b8281526040602082015260006116e98384611374565b61016060408501526117006101a0850182846113c1565b9150506117106020850185611374565b603f19808685030160608701526117288483856113c1565b93506117376040880188611374565b93509150808685030160808701526117508484846113c1565b935061175e6060880161119d565b6001600160a01b03811660a0880152925061177c6080880188611374565b93509150808685030160c08701526117958484846113c1565b93506117a460a08801886113ea565b9250808685030160e087015250506117bc8282611489565b9150506117cb60c0850161119d565b6001600160a01b03166101008401526117eb610120840160e0860161167f565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405290565b6040805190810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405160c0810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516080810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051610100810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516060810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051601f8201601f1916810167ffffffffffffffff8111828210171561190c5761190c6117f3565b604052919050565b600082601f83011261192557600080fd5b813567ffffffffffffffff81111561193f5761193f6117f3565b611952601f8201601f19166020016118e3565b81815284602083860101111561196757600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff82111561199e5761199e6117f3565b5060051b60200190565b803565ffffffffffff811681146111a857600080fd5b80356dffffffffffffffffffffffffffff811681146111a857600080fd5b600061022082840312156119ef57600080fd5b6119f7611809565b9050611a028261143a565b8152611a106020830161143a565b6020820152611a2160408301611426565b6040820152611a326060830161147e565b6060820152611a436080830161147e565b6080820152611a5460a0830161147e565b60a0820152611a6560c0830161147e565b60c0820152611a7660e0830161147e565b60e0820152610100611a8981840161147e565b90820152610120611a9b83820161147e565b90820152610140611aad83820161147e565b90820152610160611abf83820161147e565b90820152610180611ad183820161147e565b908201526101a0611ae383820161147e565b908201526101c0611af583820161147e565b908201526101e0611b0783820161147e565b90820152610200611b1983820161143a565b9082015292915050565b803566ffffffffffffff811681146111a857600080fd5b600082601f830112611b4b57600080fd5b81356020611b60611b5b83611984565b6118e3565b82815260059290921b84018101918181019086841115611b7f57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ba357600080fd5b908801906040828b03601f1901811315611bbc57600080fd5b611bc4611833565b8784013581528184013583811115611bdb57600080fd5b8085019450508b603f850112611bf057600080fd5b878401359250611c02611b5b84611984565b83815260c09093028401820192888101908d851115611c2057600080fd5b948301945b84861015611cb95760c0868f031215611c3d57600080fd5b611c45611856565b8635611c5081611470565b8152611c5d878c01611426565b8b820152611c6c858801611b23565b858201526060870135611c7e81611185565b6060820152611c8f608088016119a8565b608082015260a0870135611ca281611185565b60a0820152825260c0959095019490890190611c25565b828a0152508652505050918301918301611b83565b509695505050505050565b600082601f830112611cea57600080fd5b81356020611cfa611b5b83611984565b82815260069290921b84018101918181019086841115611d1957600080fd5b8286015b84811015611cce5760408189031215611d365760008081fd5b611d3e611833565b81357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81168114611d6b5760008081fd5b8152611d78828601611426565b81860152835291830191604001611d1d565b600082601f830112611d9b57600080fd5b81356020611dab611b5b83611984565b82815260059290921b84018101918181019086841115611dca57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611def5760008081fd5b908801906080828b03601f1901811315611e095760008081fd5b611e11611879565b87840135611e1e81611185565b8152604084810135611e2f81611185565b828a015260608581013585811115611e475760008081fd5b611e558f8c838a0101611cd9565b8484015250928501359284841115611e6f57600091508182fd5b611e7d8e8b86890101611cd9565b90830152508652505050918301918301611dce565b600082601f830112611ea357600080fd5b81356020611eb3611b5b83611984565b82815260059290921b84018101918181019086841115611ed257600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ef75760008081fd5b90880190610300828b03601f1901811315611f125760008081fd5b611f1a61189c565b611f258885016119a8565b81526040611f34818601611426565b898301526060611f458187016119be565b8284015260809150611f58828701611426565b9083015260a0611f6986820161119d565b8284015260c09150611f7d8e8388016119dc565b908301526102e085013584811115611f955760008081fd5b611fa38e8b83890101611b3a565b82840152505081840135915082821115611fbd5760008081fd5b611fcb8c8984870101611d8a565b60e08201528652505050918301918301611ed6565b600082601f830112611ff157600080fd5b81356020612001611b5b83611984565b82815260059290921b8401810191818101908684111561202057600080fd5b8286015b84811015611cce57803567ffffffffffffffff8082111561204457600080fd5b908801906040828b03601f190181131561205d57600080fd5b612065611833565b8784013561207281611185565b8152838201358381111561208557600080fd5b8085019450508b603f85011261209a57600080fd5b8784013592506120ac611b5b84611984565b83815260609093028401820192888101908d8511156120ca57600080fd5b948301945b8486101561212c576060868f0312156120e757600080fd5b6120ef6118c0565b86356120fa81611185565b8152612107878c0161145f565b8b820152612116858801611426565b81860152825260609590950194908901906120cf565b828a0152508652505050918301918301612024565b60006080823603121561215357600080fd5b61215b611879565b823567ffffffffffffffff8082111561217357600080fd5b61217f36838701611914565b8352602085013591508082111561219557600080fd5b6121a136838701611e92565b602084015260408501359150808211156121ba57600080fd5b6121c636838701611fe0565b604084015260608501359150808211156121df57600080fd5b506121ec36828601611914565b60608301525092915050565b60006080823603121561220a57600080fd5b612212611879565b61221b83611b23565b8152602083013567ffffffffffffffff8082111561219557600080fd5b60006060823603121561224a57600080fd5b6122526118c0565b61225b83611b23565b8152602083013567ffffffffffffffff8082111561227857600080fd5b61228436838701611e92565b6020840152604085013591508082111561229d57600080fd5b506122aa36828601611914565b60408301525092915050565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156122f2576020818501810151868301820152016122d6565b506000602082860101526020601f19601f83011685010191505092915050565b805161ffff168252602081015161232f602084018261ffff169052565b506040810151612347604084018263ffffffff169052565b50606081015161235b606084018215159052565b50608081015161236f608084018215159052565b5060a081015161238360a084018215159052565b5060c081015161239760c084018215159052565b5060e08101516123ab60e084018215159052565b5061010081810151151590830152610120808201511515908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c0808201511515908301526101e0808201511515908301526102008082015115159083015261022080820151151590830152610240808201516001600160a01b0316908301526102608082015161ffff811682850152610ae0565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180518552850151604086860181905281518187018190529187019160609081880190865b8181101561251d5785518051151584528b81015163ffffffff168c8501528581015166ffffffffffffff1686850152848101516001600160a01b039081168686015260808083015165ffffffffffff169086015260a0918201511690840152948a019460c0909201916001016124ac565b50509c88019c965050509285019250600101612475565b509198975050505050505050565b60008151808452602080850194506020840160005b838110156125a257815180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16885283015163ffffffff168388015260409096019590820190600101612557565b509495945050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f19868403018952815160806001600160a01b038083511686528087840151168787015250604080830151828288015261260f83880182612542565b925050506060808301519250858203818701525061262d8183612542565b9a86019a94505050908301906001016125ca565b5090979650505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f198684030189528151805165ffffffffffff1684528481015163ffffffff908116868601526040808301516dffffffffffffffffffffffffffff1690860152606080830151909116908501526080808201516001600160a01b03169085015260a08082015161036091906126eb82880182612312565b505060c08201518161032087015261270582870182612457565b91505060e0820151915084810361034086015261272281836125ad565b9a86019a945050509083019060010161266b565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180516001600160a01b03908116865290860151604087870181905281518188018190529188019290916060919082890190875b818110156127d25786518051851684528c81015160ff168d85015286015163ffffffff1686840152958b01959184019160010161279a565b50509d89019d97505050938601935050600101612754565b6001600160a01b038616815260a06020820152600061280c60a08301876122cc565b828103604084015261281e818761264e565b905082810360608401526128328186612736565b9050828103608084015261284681856122cc565b98975050505050505050565b60006020828403121561286457600080fd5b815161132d81611470565b848152608060208201526000612888608083018661264e565b828103604084015261289a8186612736565b90508281036060840152610de581856122cc565b8381526060602082015260006128c7606083018561264e565b82810360408401526128d981856122cc565b969550505050505056fea2646970667358221220fe9aeb2923c79b329e15f469ded294b7c8f953591673f78360a251462b46f9d064736f6c63430008170033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100725760003560e01c8063abf8c5c811610050578063abf8c5c8146100fe578063ac6a26f814610125578063f434c9141461013857600080fd5b80633c3a22bb1461007757806388bc2ef3146100ac5780638b716777146100eb575b600080fd5b61008a6100853660046111d8565b61015f565b604080519283526001600160a01b039091166020830152015b60405180910390f35b6100d37f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad2281565b6040516001600160a01b0390911681526020016100a3565b61008a6100f9366004611261565b61035d565b6100d37f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be81565b61008a610133366004611296565b610569565b6100d37f0000000000000000000000004cdb4200e4e65a277676cd5e8d3c7c7c4da7fbe581565b6000807f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad226001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e49190611310565b6001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102459190611334565b61025090600161134d565b60405163cc7bb31f60e01b81529092506001600160a01b037f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be169063cc7bb31f906102a190859089906004016116d3565b6020604051808303816000875af11580156102c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e49190611310565b90506102fa866102f386612141565b83866106d0565b6040516351106b4b60e11b8152600481018390526001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561033c57600080fd5b505af1158015610350573d6000803e3d6000fd5b5050505094509492505050565b60008061045b7f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad226001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e59190611310565b6001600160a01b0316636352211e886040518263ffffffff1660e01b815260040161041291815260200190565b602060405180830381865afa15801561042f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104539190611310565b8760026109d8565b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be169063cc7bb31f906104a990899089906004016116d3565b6020604051808303816000875af11580156104c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ec9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b5050505061055e8685610557906121f8565b8386610ae6565b915094509492505050565b6000806105cd7f000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad226001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be169063cc7bb31f9061061b90899089906004016116d3565b6020604051808303816000875af115801561063a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065e9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b1580156106a357600080fd5b505af11580156106b7573d6000803e3d6000fd5b5050505061055e86856106c990612238565b8386610df0565b60208301515160008167ffffffffffffffff8111156106f1576106f16117f3565b60405190808252806020026020018201604052801561072a57816020015b6107176110a7565b81526020019060019003908161070f5790505b50905060005b8281101561095057600086602001518281518110610750576107506122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e0015115158152602001896001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061093c5761093c6122b6565b602090810291909101015250600101610730565b50845160408087015160608801519151634e530d8960e11b81526001600160a01b03871693639ca61b129361098c938c938892906004016127ea565b6020604051808303816000875af11580156109ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cf9190611334565b50505050505050565b336001600160a01b0384168114801590610a9d5750604051631a45b42760e11b81526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000004cdb4200e4e65a277676cd5e8d3c7c7c4da7fbe5169063348b684e9060c401602060405180830381865afa158015610a77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9b9190612852565b155b15610ae057604051631326f75560e11b81526001600160a01b03808616600483015282166024820152604481018490526064810183905260840160405180910390fd5b50505050565b602083015151600090818167ffffffffffffffff811115610b0957610b096117f3565b604051908082528060200260200182016040528015610b4257816020015b610b2f6110a7565b815260200190600190039081610b275790505b50905060005b82811015610d6857600087602001518281518110610b6857610b686122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610d5457610d546122b6565b602090810291909101015250600101610b48565b5060408087015160608801519151632a550fab60e11b81526001600160a01b038716926354aa1f5692610da2928c9287929160040161286f565b6020604051808303816000875af1158015610dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de59190611334565b979650505050505050565b602083015151600090818167ffffffffffffffff811115610e1357610e136117f3565b604051908082528060200260200182016040528015610e4c57816020015b610e396110a7565b815260200190600190039081610e315790505b50905060005b8281101561107257600087602001518281518110610e7257610e726122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061105e5761105e6122b6565b602090810291909101015250600101610e52565b506040808701519051630e18de6b60e41b81526001600160a01b0386169163e18de6b091610da2918b918691906004016128ae565b6040805161010080820183526000808352602080840182905283850182905260608085018390526080808601849052865161028081018852848152928301849052958201839052810182905293840181905260a084810182905260c0850182905260e0850182905291840181905261012084018190526101408401819052610160840181905261018084018190526101a084018190526101c084018190526101e08401819052610200840181905261022084018190526102408401819052610260840152909190820190815260200160608152602001606081525090565b6001600160a01b038116811461119a57600080fd5b50565b80356111a881611185565b919050565b600061016082840312156111c057600080fd5b50919050565b6000608082840312156111c057600080fd5b600080600080608085870312156111ee57600080fd5b84356111f981611185565b9350602085013567ffffffffffffffff8082111561121657600080fd5b611222888389016111ad565b9450604087013591508082111561123857600080fd5b50611245878288016111c6565b925050606085013561125681611185565b939692955090935050565b6000806000806080858703121561127757600080fd5b84359350602085013567ffffffffffffffff8082111561121657600080fd5b600080600080608085870312156112ac57600080fd5b84359350602085013567ffffffffffffffff808211156112cb57600080fd5b6112d7888389016111ad565b945060408701359150808211156112ed57600080fd5b5085016060818803121561130057600080fd5b9150606085013561125681611185565b60006020828403121561132257600080fd5b815161132d81611185565b9392505050565b60006020828403121561134657600080fd5b5051919050565b8082018082111561136e57634e487b7160e01b600052601160045260246000fd5b92915050565b6000808335601e1984360301811261138b57600080fd5b830160208101925035905067ffffffffffffffff8111156113ab57600080fd5b8036038213156113ba57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008235607e1983360301811261140057600080fd5b90910192915050565b80356cffffffffffffffffffffffffff811681146111a857600080fd5b803563ffffffff811681146111a857600080fd5b803561ffff811681146111a857600080fd5b803562ffffff811681146111a857600080fd5b803560ff811681146111a857600080fd5b801515811461119a57600080fd5b80356111a881611470565b600060808084018335601e198536030181126114a457600080fd5b8401602081810191359067ffffffffffffffff8211156114c357600080fd5b6101c080830236038413156114d757600080fd5b608089529382905260a09384890160005b8481101561162357611510826114fd88611409565b6cffffffffffffffffffffffffff169052565b61151b848701611426565b63ffffffff16848301526040611532878201611426565b63ffffffff1690830152606061154987820161143a565b61ffff169083015261155c86890161119d565b6001600160a01b031688830152858701358783015260c061157e81880161144c565b62ffffff169083015260e061159487820161145f565b60ff16908301526101006115a987820161147e565b1515908301526101206115bd87820161147e565b1515908301526101406115d187820161147e565b1515908301526101606115e587820161147e565b1515908301526101806115f987820161147e565b1515908301526101a061160d87820161147e565b15159083015294820194908201906001016114e8565b5061163060208a01611426565b63ffffffff811660208c0152965061164a60408a0161145f565b60ff811660408c0152965061166160608a0161119d565b6001600160a01b03811660608c015296509998505050505050505050565b803561168a81611470565b15158252602081013561169c81611470565b1515602083015260408101356116b181611470565b1515604083015260608101356116c681611470565b8015156060840152505050565b8281526040602082015260006116e98384611374565b61016060408501526117006101a0850182846113c1565b9150506117106020850185611374565b603f19808685030160608701526117288483856113c1565b93506117376040880188611374565b93509150808685030160808701526117508484846113c1565b935061175e6060880161119d565b6001600160a01b03811660a0880152925061177c6080880188611374565b93509150808685030160c08701526117958484846113c1565b93506117a460a08801886113ea565b9250808685030160e087015250506117bc8282611489565b9150506117cb60c0850161119d565b6001600160a01b03166101008401526117eb610120840160e0860161167f565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405290565b6040805190810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405160c0810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516080810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051610100810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516060810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051601f8201601f1916810167ffffffffffffffff8111828210171561190c5761190c6117f3565b604052919050565b600082601f83011261192557600080fd5b813567ffffffffffffffff81111561193f5761193f6117f3565b611952601f8201601f19166020016118e3565b81815284602083860101111561196757600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff82111561199e5761199e6117f3565b5060051b60200190565b803565ffffffffffff811681146111a857600080fd5b80356dffffffffffffffffffffffffffff811681146111a857600080fd5b600061022082840312156119ef57600080fd5b6119f7611809565b9050611a028261143a565b8152611a106020830161143a565b6020820152611a2160408301611426565b6040820152611a326060830161147e565b6060820152611a436080830161147e565b6080820152611a5460a0830161147e565b60a0820152611a6560c0830161147e565b60c0820152611a7660e0830161147e565b60e0820152610100611a8981840161147e565b90820152610120611a9b83820161147e565b90820152610140611aad83820161147e565b90820152610160611abf83820161147e565b90820152610180611ad183820161147e565b908201526101a0611ae383820161147e565b908201526101c0611af583820161147e565b908201526101e0611b0783820161147e565b90820152610200611b1983820161143a565b9082015292915050565b803566ffffffffffffff811681146111a857600080fd5b600082601f830112611b4b57600080fd5b81356020611b60611b5b83611984565b6118e3565b82815260059290921b84018101918181019086841115611b7f57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ba357600080fd5b908801906040828b03601f1901811315611bbc57600080fd5b611bc4611833565b8784013581528184013583811115611bdb57600080fd5b8085019450508b603f850112611bf057600080fd5b878401359250611c02611b5b84611984565b83815260c09093028401820192888101908d851115611c2057600080fd5b948301945b84861015611cb95760c0868f031215611c3d57600080fd5b611c45611856565b8635611c5081611470565b8152611c5d878c01611426565b8b820152611c6c858801611b23565b858201526060870135611c7e81611185565b6060820152611c8f608088016119a8565b608082015260a0870135611ca281611185565b60a0820152825260c0959095019490890190611c25565b828a0152508652505050918301918301611b83565b509695505050505050565b600082601f830112611cea57600080fd5b81356020611cfa611b5b83611984565b82815260069290921b84018101918181019086841115611d1957600080fd5b8286015b84811015611cce5760408189031215611d365760008081fd5b611d3e611833565b81357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81168114611d6b5760008081fd5b8152611d78828601611426565b81860152835291830191604001611d1d565b600082601f830112611d9b57600080fd5b81356020611dab611b5b83611984565b82815260059290921b84018101918181019086841115611dca57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611def5760008081fd5b908801906080828b03601f1901811315611e095760008081fd5b611e11611879565b87840135611e1e81611185565b8152604084810135611e2f81611185565b828a015260608581013585811115611e475760008081fd5b611e558f8c838a0101611cd9565b8484015250928501359284841115611e6f57600091508182fd5b611e7d8e8b86890101611cd9565b90830152508652505050918301918301611dce565b600082601f830112611ea357600080fd5b81356020611eb3611b5b83611984565b82815260059290921b84018101918181019086841115611ed257600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ef75760008081fd5b90880190610300828b03601f1901811315611f125760008081fd5b611f1a61189c565b611f258885016119a8565b81526040611f34818601611426565b898301526060611f458187016119be565b8284015260809150611f58828701611426565b9083015260a0611f6986820161119d565b8284015260c09150611f7d8e8388016119dc565b908301526102e085013584811115611f955760008081fd5b611fa38e8b83890101611b3a565b82840152505081840135915082821115611fbd5760008081fd5b611fcb8c8984870101611d8a565b60e08201528652505050918301918301611ed6565b600082601f830112611ff157600080fd5b81356020612001611b5b83611984565b82815260059290921b8401810191818101908684111561202057600080fd5b8286015b84811015611cce57803567ffffffffffffffff8082111561204457600080fd5b908801906040828b03601f190181131561205d57600080fd5b612065611833565b8784013561207281611185565b8152838201358381111561208557600080fd5b8085019450508b603f85011261209a57600080fd5b8784013592506120ac611b5b84611984565b83815260609093028401820192888101908d8511156120ca57600080fd5b948301945b8486101561212c576060868f0312156120e757600080fd5b6120ef6118c0565b86356120fa81611185565b8152612107878c0161145f565b8b820152612116858801611426565b81860152825260609590950194908901906120cf565b828a0152508652505050918301918301612024565b60006080823603121561215357600080fd5b61215b611879565b823567ffffffffffffffff8082111561217357600080fd5b61217f36838701611914565b8352602085013591508082111561219557600080fd5b6121a136838701611e92565b602084015260408501359150808211156121ba57600080fd5b6121c636838701611fe0565b604084015260608501359150808211156121df57600080fd5b506121ec36828601611914565b60608301525092915050565b60006080823603121561220a57600080fd5b612212611879565b61221b83611b23565b8152602083013567ffffffffffffffff8082111561219557600080fd5b60006060823603121561224a57600080fd5b6122526118c0565b61225b83611b23565b8152602083013567ffffffffffffffff8082111561227857600080fd5b61228436838701611e92565b6020840152604085013591508082111561229d57600080fd5b506122aa36828601611914565b60408301525092915050565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156122f2576020818501810151868301820152016122d6565b506000602082860101526020601f19601f83011685010191505092915050565b805161ffff168252602081015161232f602084018261ffff169052565b506040810151612347604084018263ffffffff169052565b50606081015161235b606084018215159052565b50608081015161236f608084018215159052565b5060a081015161238360a084018215159052565b5060c081015161239760c084018215159052565b5060e08101516123ab60e084018215159052565b5061010081810151151590830152610120808201511515908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c0808201511515908301526101e0808201511515908301526102008082015115159083015261022080820151151590830152610240808201516001600160a01b0316908301526102608082015161ffff811682850152610ae0565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180518552850151604086860181905281518187018190529187019160609081880190865b8181101561251d5785518051151584528b81015163ffffffff168c8501528581015166ffffffffffffff1686850152848101516001600160a01b039081168686015260808083015165ffffffffffff169086015260a0918201511690840152948a019460c0909201916001016124ac565b50509c88019c965050509285019250600101612475565b509198975050505050505050565b60008151808452602080850194506020840160005b838110156125a257815180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16885283015163ffffffff168388015260409096019590820190600101612557565b509495945050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f19868403018952815160806001600160a01b038083511686528087840151168787015250604080830151828288015261260f83880182612542565b925050506060808301519250858203818701525061262d8183612542565b9a86019a94505050908301906001016125ca565b5090979650505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f198684030189528151805165ffffffffffff1684528481015163ffffffff908116868601526040808301516dffffffffffffffffffffffffffff1690860152606080830151909116908501526080808201516001600160a01b03169085015260a08082015161036091906126eb82880182612312565b505060c08201518161032087015261270582870182612457565b91505060e0820151915084810361034086015261272281836125ad565b9a86019a945050509083019060010161266b565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180516001600160a01b03908116865290860151604087870181905281518188018190529188019290916060919082890190875b818110156127d25786518051851684528c81015160ff168d85015286015163ffffffff1686840152958b01959184019160010161279a565b50509d89019d97505050938601935050600101612754565b6001600160a01b038616815260a06020820152600061280c60a08301876122cc565b828103604084015261281e818761264e565b905082810360608401526128328186612736565b9050828103608084015261284681856122cc565b98975050505050505050565b60006020828403121561286457600080fd5b815161132d81611470565b848152608060208201526000612888608083018661264e565b828103604084015261289a8186612736565b90508281036060840152610de581856122cc565b8381526060602082015260006128c7606083018561264e565b82810360408401526128d981856122cc565b969550505050505056fea2646970667358221220fe9aeb2923c79b329e15f469ded294b7c8f953591673f78360a251462b46f9d064736f6c63430008170033", "devdoc": { "kind": "dev", "methods": { @@ -1540,6 +1555,7 @@ "owner": "The address to set as the owner of the project. The ERC-721 which confers this project's ownership will be sent to this address." }, "returns": { + "hook": "The 721 tiers hook that was deployed for the project.", "projectId": "The ID of the newly launched project." } }, @@ -1552,6 +1568,7 @@ "projectId": "The ID of the project that rulesets are being launched for." }, "returns": { + "hook": "The 721 tiers hook that was deployed for the project.", "rulesetId": "The ID of the successfully created ruleset." } }, @@ -1564,6 +1581,7 @@ "queueRulesetsConfig": "Configuration which dictates the project's newly queued rulesets." }, "returns": { + "hook": "The 721 tiers hook that was deployed for the project.", "rulesetId": "The ID of the successfully created ruleset." } } @@ -1594,7 +1612,7 @@ }, "version": 1 }, - "gitCommit": "4c5a6a4ff88604a9c0a981284b933b4e7757161c", + "gitCommit": "ad100ab7826a4aace8ac39612835a18c1e961ec2", "sourceName": "src/JB721TiersHookProjectDeployer.sol", "chainId": "11155111", "linkReferences": {}, diff --git a/deployments/nana-721-hook-testnet/sepolia/execution/371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8.json b/deployments/nana-721-hook-testnet/sepolia/execution/371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8.json new file mode 100644 index 00000000..a0e4ca7b --- /dev/null +++ b/deployments/nana-721-hook-testnet/sepolia/execution/371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8.json @@ -0,0 +1,221 @@ +{ + "_format": "sphinx-sol-execution-artifact-1", + "transactions": [ + { + "receipt": { + "blockHash": "0x5df53510a39579a4919163a1d84f561ae97d58558902c515289cf26e8866a3d7", + "blockNumber": 6723528, + "contractAddress": null, + "cumulativeGasUsed": "18878280", + "from": "0x0c1c9049564269275059032Fb484Aa2e7Ab779af", + "gasPrice": "254340841", + "gasUsed": "176675", + "hash": "0x5e73576957dddaf93f49a9997a88b423813922dc995428235e9a0f6978f66c3c", + "index": 82, + "logs": [ + { + "address": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463", + "blockHash": "0x5df53510a39579a4919163a1d84f561ae97d58558902c515289cf26e8866a3d7", + "blockNumber": 6723528, + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "index": 139, + "topics": [ + "0x572f161235911da04685a68c06adf558fc7e4a36909dca394650e0adc19cc93d", + "0x0000000000000000000000000c1c9049564269275059032fb484aa2e7ab779af", + "0x000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c3", + "0x7085dcf0b4ebb721e63d0d897c79c8787f2a651d1a17a0a979119bfa07db2701" + ], + "transactionHash": "0x5e73576957dddaf93f49a9997a88b423813922dc995428235e9a0f6978f66c3c", + "transactionIndex": 82 + }, + { + "address": "0xcd414DF3f7b7dA1F867fF6B5499879308087F0c3", + "blockHash": "0x5df53510a39579a4919163a1d84f561ae97d58558902c515289cf26e8866a3d7", + "blockNumber": 6723528, + "data": "0x000000000000000000000000a2ea7657440875bf916cbfc0cfa88f13e38ad463000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "index": 140, + "topics": [ + "0x382c7aec02462c9b086aba9a7f8dbb1fb8bf336e7b624b0149eeca6726d0fb4a", + "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8", + "0x0000000000000000000000000000000000000000000000000000000000000003" + ], + "transactionHash": "0x5e73576957dddaf93f49a9997a88b423813922dc995428235e9a0f6978f66c3c", + "transactionIndex": 82 + } + ], + "logsBloom": "0x000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000400200001000000200000000200000000000000040000000000200000000000000000000100000000000000000001000000000000000000000200000000000000000000000000000000000000000000000000040000000000000000001000001000000000000000080000000000000000000000040000000000000000000020000000020000000008000001000000000004000000000020000000000000000000000000000000000000000000001000000000000000000000000000000000000000000400000400000a0000000000000000000", + "status": 1, + "to": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463" + }, + "response": { + "accessList": [], + "blockNumber": 6723528, + "blockHash": "0x5df53510a39579a4919163a1d84f561ae97d58558902c515289cf26e8866a3d7", + "chainId": "11155111", + "data": "0xbe6002c2000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c3000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000003448f38f835371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000aa36a7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000010000000000000000000000000094bbb774520c1e0bd2afb9b3b63cc11102ed7a7b000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000002000000000000000000000000a2ea7657440875bf916cbfc0cfa88f13e38ad46300000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003166ad80d4438b499d28195ab628aedd3b8fd448eed8624b6f1361c389e977204a0b44b2915cc9faadf476e43e1451843390a74b0c263f6cc546420fc7a5ff49014a49fdb0b549e9c144fc1aa88fa725fa415d5b5055d3a633eb501cb489fd9b4000000000000000000000000000000000000000000000000000000000000004156788b273eba8848384686f9540ee3d92ddcdc26c8271f29a00d5b08f003ecc465ec6968a34470418793c1f1cf4cf744e9131595eabdb81e083505aba2c0e1ac1b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "from": "0x0c1c9049564269275059032Fb484Aa2e7Ab779af", + "gasLimit": "188968", + "gasPrice": "254340841", + "hash": "0x5e73576957dddaf93f49a9997a88b423813922dc995428235e9a0f6978f66c3c", + "maxFeePerGas": "521823050", + "maxPriorityFeePerGas": "7126094", + "nonce": 133, + "signature": { + "networkV": null, + "r": "0x8cbee0558c9eb37a7f7b151cc140aec5ea787c49de340c45c7eb24819ed47553", + "s": "0x22f2d2be75bd4fd43b177f61a8ed2635f85a11d464397b08533cd381660b5ad0", + "v": 28 + }, + "to": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463", + "type": 2, + "value": "0" + } + }, + { + "receipt": { + "blockHash": "0x20d573e6b57ae092e27309e8fddde3c0ce5ef2ee25fc3b5dd409b1c2dfdc91e5", + "blockNumber": 6723530, + "contractAddress": null, + "cumulativeGasUsed": "13728131", + "from": "0x0c1c9049564269275059032Fb484Aa2e7Ab779af", + "gasPrice": "282410117", + "gasUsed": "2498305", + "hash": "0x61dec67929625cf6752bf5981fd52cdc110b26336a8d2996f15fa8ccaabe09db", + "index": 98, + "logs": [ + { + "address": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463", + "blockHash": "0x20d573e6b57ae092e27309e8fddde3c0ce5ef2ee25fc3b5dd409b1c2dfdc91e5", + "blockNumber": 6723530, + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "index": 125, + "topics": [ + "0x572f161235911da04685a68c06adf558fc7e4a36909dca394650e0adc19cc93d", + "0x0000000000000000000000000c1c9049564269275059032fb484aa2e7ab779af", + "0x000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c3", + "0xd0522d8a860d7cc2fb5c7d817035658aa90b6aa6231e24be6c6d9f66a08dc468" + ], + "transactionHash": "0x61dec67929625cf6752bf5981fd52cdc110b26336a8d2996f15fa8ccaabe09db", + "transactionIndex": 98 + }, + { + "address": "0x94BBb774520C1E0Bd2aFb9b3B63cc11102ED7A7B", + "blockHash": "0x20d573e6b57ae092e27309e8fddde3c0ce5ef2ee25fc3b5dd409b1c2dfdc91e5", + "blockNumber": 6723530, + "data": "0x", + "index": 126, + "topics": [ + "0x6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8", + "0x000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c3" + ], + "transactionHash": "0x61dec67929625cf6752bf5981fd52cdc110b26336a8d2996f15fa8ccaabe09db", + "transactionIndex": 98 + }, + { + "address": "0xcd414DF3f7b7dA1F867fF6B5499879308087F0c3", + "blockHash": "0x20d573e6b57ae092e27309e8fddde3c0ce5ef2ee25fc3b5dd409b1c2dfdc91e5", + "blockNumber": 6723530, + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "index": 127, + "topics": [ + "0xa65fb05c5808f5f389d72edeaf719ce38f4cc55c1f69ca3cbfb31c21501caa07", + "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8" + ], + "transactionHash": "0x61dec67929625cf6752bf5981fd52cdc110b26336a8d2996f15fa8ccaabe09db", + "transactionIndex": 98 + }, + { + "address": "0xcd414DF3f7b7dA1F867fF6B5499879308087F0c3", + "blockHash": "0x20d573e6b57ae092e27309e8fddde3c0ce5ef2ee25fc3b5dd409b1c2dfdc91e5", + "blockNumber": 6723530, + "data": "0x", + "index": 128, + "topics": [ + "0x4383d976757d67ca920616be0b6430a681ea9d3dcce8d6d61d4603ca4a9bff63", + "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8" + ], + "transactionHash": "0x61dec67929625cf6752bf5981fd52cdc110b26336a8d2996f15fa8ccaabe09db", + "transactionIndex": 98 + } + ], + "logsBloom": "0x00000000000010000000000000080080000000000000000000000000000000000080000000000000000000000040020000100000000000000020000000000000000000000000220000000000000000000010000000000000000000000000000000000200000000000000000000040000000000000000000000000000000000004000000000000000000100000000000000000000008000000000000000000000004000800000000000000002000000002200000000000000100002000004000000000002000000000000000000000000040000000000000000000000400000000000000000000008000000000000000240000040000080000000000008000000", + "status": 1, + "to": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463" + }, + "response": { + "accessList": [], + "blockNumber": 6723530, + "blockHash": "0x20d573e6b57ae092e27309e8fddde3c0ce5ef2ee25fc3b5dd409b1c2dfdc91e5", + "chainId": "11155111", + "data": "0xbe6002c2000000000000000000000000cd414df3f7b7da1f867ff6b5499879308087f0c300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000002d64e65ec46d00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000aa36a70000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000004e59b44847b379578588920ca78fbf26c0b4956c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029e88700000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000002ab84a423732315469657273486f6f6b50726f6a6563744465706c6f79657200000060e06040523480156200001157600080fd5b5060405162002a3838038062002a3883398101604081905262000034916200006b565b6001600160a01b0391821660805291811660a0521660c052620000bf565b6001600160a01b03811681146200006857600080fd5b50565b6000806000606084860312156200008157600080fd5b83516200008e8162000052565b6020850151909350620000a18162000052565b6040850151909250620000b48162000052565b809150509250925092565b60805160a05160c0516129196200011f600039600081816101030152818161026a0152818161047201526105e401526000818160b10152818161016401528181610365015261057101526000818161013d0152610a3001526129196000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063abf8c5c811610050578063abf8c5c8146100fe578063ac6a26f814610125578063f434c9141461013857600080fd5b80633c3a22bb1461007757806388bc2ef3146100ac5780638b716777146100eb575b600080fd5b61008a6100853660046111d8565b61015f565b604080519283526001600160a01b039091166020830152015b60405180910390f35b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100a3565b61008a6100f9366004611261565b61035d565b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b61008a610133366004611296565b610569565b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e49190611310565b6001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102459190611334565b61025090600161134d565b60405163cc7bb31f60e01b81529092506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f906102a190859089906004016116d3565b6020604051808303816000875af11580156102c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e49190611310565b90506102fa866102f386612141565b83866106d0565b6040516351106b4b60e11b8152600481018390526001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561033c57600080fd5b505af1158015610350573d6000803e3d6000fd5b5050505094509492505050565b60008061045b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e59190611310565b6001600160a01b0316636352211e886040518263ffffffff1660e01b815260040161041291815260200190565b602060405180830381865afa15801561042f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104539190611310565b8760026109d8565b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f906104a990899089906004016116d3565b6020604051808303816000875af11580156104c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ec9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b5050505061055e8685610557906121f8565b8386610ae6565b915094509492505050565b6000806105cd7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f9061061b90899089906004016116d3565b6020604051808303816000875af115801561063a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065e9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b1580156106a357600080fd5b505af11580156106b7573d6000803e3d6000fd5b5050505061055e86856106c990612238565b8386610df0565b60208301515160008167ffffffffffffffff8111156106f1576106f16117f3565b60405190808252806020026020018201604052801561072a57816020015b6107176110a7565b81526020019060019003908161070f5790505b50905060005b8281101561095057600086602001518281518110610750576107506122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e0015115158152602001896001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061093c5761093c6122b6565b602090810291909101015250600101610730565b50845160408087015160608801519151634e530d8960e11b81526001600160a01b03871693639ca61b129361098c938c938892906004016127ea565b6020604051808303816000875af11580156109ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cf9190611334565b50505050505050565b336001600160a01b0384168114801590610a9d5750604051631a45b42760e11b81526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000000000000000000000000000000000000000000000169063348b684e9060c401602060405180830381865afa158015610a77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9b9190612852565b155b15610ae057604051631326f75560e11b81526001600160a01b03808616600483015282166024820152604481018490526064810183905260840160405180910390fd5b50505050565b602083015151600090818167ffffffffffffffff811115610b0957610b096117f3565b604051908082528060200260200182016040528015610b4257816020015b610b2f6110a7565b815260200190600190039081610b275790505b50905060005b82811015610d6857600087602001518281518110610b6857610b686122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610d5457610d546122b6565b602090810291909101015250600101610b48565b5060408087015160608801519151632a550fab60e11b81526001600160a01b038716926354aa1f5692610da2928c9287929160040161286f565b6020604051808303816000875af1158015610dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de59190611334565b979650505050505050565b602083015151600090818167ffffffffffffffff811115610e1357610e136117f3565b604051908082528060200260200182016040528015610e4c57816020015b610e396110a7565b815260200190600190039081610e315790505b50905060005b8281101561107257600087602001518281518110610e7257610e726122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061105e5761105e6122b6565b602090810291909101015250600101610e52565b506040808701519051630e18de6b60e41b81526001600160a01b0386169163e18de6b091610da2918b918691906004016128ae565b6040805161010080820183526000808352602080840182905283850182905260608085018390526080808601849052865161028081018852848152928301849052958201839052810182905293840181905260a084810182905260c0850182905260e0850182905291840181905261012084018190526101408401819052610160840181905261018084018190526101a084018190526101c084018190526101e08401819052610200840181905261022084018190526102408401819052610260840152909190820190815260200160608152602001606081525090565b6001600160a01b038116811461119a57600080fd5b50565b80356111a881611185565b919050565b600061016082840312156111c057600080fd5b50919050565b6000608082840312156111c057600080fd5b600080600080608085870312156111ee57600080fd5b84356111f981611185565b9350602085013567ffffffffffffffff8082111561121657600080fd5b611222888389016111ad565b9450604087013591508082111561123857600080fd5b50611245878288016111c6565b925050606085013561125681611185565b939692955090935050565b6000806000806080858703121561127757600080fd5b84359350602085013567ffffffffffffffff8082111561121657600080fd5b600080600080608085870312156112ac57600080fd5b84359350602085013567ffffffffffffffff808211156112cb57600080fd5b6112d7888389016111ad565b945060408701359150808211156112ed57600080fd5b5085016060818803121561130057600080fd5b9150606085013561125681611185565b60006020828403121561132257600080fd5b815161132d81611185565b9392505050565b60006020828403121561134657600080fd5b5051919050565b8082018082111561136e57634e487b7160e01b600052601160045260246000fd5b92915050565b6000808335601e1984360301811261138b57600080fd5b830160208101925035905067ffffffffffffffff8111156113ab57600080fd5b8036038213156113ba57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008235607e1983360301811261140057600080fd5b90910192915050565b80356cffffffffffffffffffffffffff811681146111a857600080fd5b803563ffffffff811681146111a857600080fd5b803561ffff811681146111a857600080fd5b803562ffffff811681146111a857600080fd5b803560ff811681146111a857600080fd5b801515811461119a57600080fd5b80356111a881611470565b600060808084018335601e198536030181126114a457600080fd5b8401602081810191359067ffffffffffffffff8211156114c357600080fd5b6101c080830236038413156114d757600080fd5b608089529382905260a09384890160005b8481101561162357611510826114fd88611409565b6cffffffffffffffffffffffffff169052565b61151b848701611426565b63ffffffff16848301526040611532878201611426565b63ffffffff1690830152606061154987820161143a565b61ffff169083015261155c86890161119d565b6001600160a01b031688830152858701358783015260c061157e81880161144c565b62ffffff169083015260e061159487820161145f565b60ff16908301526101006115a987820161147e565b1515908301526101206115bd87820161147e565b1515908301526101406115d187820161147e565b1515908301526101606115e587820161147e565b1515908301526101806115f987820161147e565b1515908301526101a061160d87820161147e565b15159083015294820194908201906001016114e8565b5061163060208a01611426565b63ffffffff811660208c0152965061164a60408a0161145f565b60ff811660408c0152965061166160608a0161119d565b6001600160a01b03811660608c015296509998505050505050505050565b803561168a81611470565b15158252602081013561169c81611470565b1515602083015260408101356116b181611470565b1515604083015260608101356116c681611470565b8015156060840152505050565b8281526040602082015260006116e98384611374565b61016060408501526117006101a0850182846113c1565b9150506117106020850185611374565b603f19808685030160608701526117288483856113c1565b93506117376040880188611374565b93509150808685030160808701526117508484846113c1565b935061175e6060880161119d565b6001600160a01b03811660a0880152925061177c6080880188611374565b93509150808685030160c08701526117958484846113c1565b93506117a460a08801886113ea565b9250808685030160e087015250506117bc8282611489565b9150506117cb60c0850161119d565b6001600160a01b03166101008401526117eb610120840160e0860161167f565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405290565b6040805190810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405160c0810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516080810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051610100810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516060810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051601f8201601f1916810167ffffffffffffffff8111828210171561190c5761190c6117f3565b604052919050565b600082601f83011261192557600080fd5b813567ffffffffffffffff81111561193f5761193f6117f3565b611952601f8201601f19166020016118e3565b81815284602083860101111561196757600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff82111561199e5761199e6117f3565b5060051b60200190565b803565ffffffffffff811681146111a857600080fd5b80356dffffffffffffffffffffffffffff811681146111a857600080fd5b600061022082840312156119ef57600080fd5b6119f7611809565b9050611a028261143a565b8152611a106020830161143a565b6020820152611a2160408301611426565b6040820152611a326060830161147e565b6060820152611a436080830161147e565b6080820152611a5460a0830161147e565b60a0820152611a6560c0830161147e565b60c0820152611a7660e0830161147e565b60e0820152610100611a8981840161147e565b90820152610120611a9b83820161147e565b90820152610140611aad83820161147e565b90820152610160611abf83820161147e565b90820152610180611ad183820161147e565b908201526101a0611ae383820161147e565b908201526101c0611af583820161147e565b908201526101e0611b0783820161147e565b90820152610200611b1983820161143a565b9082015292915050565b803566ffffffffffffff811681146111a857600080fd5b600082601f830112611b4b57600080fd5b81356020611b60611b5b83611984565b6118e3565b82815260059290921b84018101918181019086841115611b7f57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ba357600080fd5b908801906040828b03601f1901811315611bbc57600080fd5b611bc4611833565b8784013581528184013583811115611bdb57600080fd5b8085019450508b603f850112611bf057600080fd5b878401359250611c02611b5b84611984565b83815260c09093028401820192888101908d851115611c2057600080fd5b948301945b84861015611cb95760c0868f031215611c3d57600080fd5b611c45611856565b8635611c5081611470565b8152611c5d878c01611426565b8b820152611c6c858801611b23565b858201526060870135611c7e81611185565b6060820152611c8f608088016119a8565b608082015260a0870135611ca281611185565b60a0820152825260c0959095019490890190611c25565b828a0152508652505050918301918301611b83565b509695505050505050565b600082601f830112611cea57600080fd5b81356020611cfa611b5b83611984565b82815260069290921b84018101918181019086841115611d1957600080fd5b8286015b84811015611cce5760408189031215611d365760008081fd5b611d3e611833565b81357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81168114611d6b5760008081fd5b8152611d78828601611426565b81860152835291830191604001611d1d565b600082601f830112611d9b57600080fd5b81356020611dab611b5b83611984565b82815260059290921b84018101918181019086841115611dca57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611def5760008081fd5b908801906080828b03601f1901811315611e095760008081fd5b611e11611879565b87840135611e1e81611185565b8152604084810135611e2f81611185565b828a015260608581013585811115611e475760008081fd5b611e558f8c838a0101611cd9565b8484015250928501359284841115611e6f57600091508182fd5b611e7d8e8b86890101611cd9565b90830152508652505050918301918301611dce565b600082601f830112611ea357600080fd5b81356020611eb3611b5b83611984565b82815260059290921b84018101918181019086841115611ed257600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ef75760008081fd5b90880190610300828b03601f1901811315611f125760008081fd5b611f1a61189c565b611f258885016119a8565b81526040611f34818601611426565b898301526060611f458187016119be565b8284015260809150611f58828701611426565b9083015260a0611f6986820161119d565b8284015260c09150611f7d8e8388016119dc565b908301526102e085013584811115611f955760008081fd5b611fa38e8b83890101611b3a565b82840152505081840135915082821115611fbd5760008081fd5b611fcb8c8984870101611d8a565b60e08201528652505050918301918301611ed6565b600082601f830112611ff157600080fd5b81356020612001611b5b83611984565b82815260059290921b8401810191818101908684111561202057600080fd5b8286015b84811015611cce57803567ffffffffffffffff8082111561204457600080fd5b908801906040828b03601f190181131561205d57600080fd5b612065611833565b8784013561207281611185565b8152838201358381111561208557600080fd5b8085019450508b603f85011261209a57600080fd5b8784013592506120ac611b5b84611984565b83815260609093028401820192888101908d8511156120ca57600080fd5b948301945b8486101561212c576060868f0312156120e757600080fd5b6120ef6118c0565b86356120fa81611185565b8152612107878c0161145f565b8b820152612116858801611426565b81860152825260609590950194908901906120cf565b828a0152508652505050918301918301612024565b60006080823603121561215357600080fd5b61215b611879565b823567ffffffffffffffff8082111561217357600080fd5b61217f36838701611914565b8352602085013591508082111561219557600080fd5b6121a136838701611e92565b602084015260408501359150808211156121ba57600080fd5b6121c636838701611fe0565b604084015260608501359150808211156121df57600080fd5b506121ec36828601611914565b60608301525092915050565b60006080823603121561220a57600080fd5b612212611879565b61221b83611b23565b8152602083013567ffffffffffffffff8082111561219557600080fd5b60006060823603121561224a57600080fd5b6122526118c0565b61225b83611b23565b8152602083013567ffffffffffffffff8082111561227857600080fd5b61228436838701611e92565b6020840152604085013591508082111561229d57600080fd5b506122aa36828601611914565b60408301525092915050565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156122f2576020818501810151868301820152016122d6565b506000602082860101526020601f19601f83011685010191505092915050565b805161ffff168252602081015161232f602084018261ffff169052565b506040810151612347604084018263ffffffff169052565b50606081015161235b606084018215159052565b50608081015161236f608084018215159052565b5060a081015161238360a084018215159052565b5060c081015161239760c084018215159052565b5060e08101516123ab60e084018215159052565b5061010081810151151590830152610120808201511515908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c0808201511515908301526101e0808201511515908301526102008082015115159083015261022080820151151590830152610240808201516001600160a01b0316908301526102608082015161ffff811682850152610ae0565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180518552850151604086860181905281518187018190529187019160609081880190865b8181101561251d5785518051151584528b81015163ffffffff168c8501528581015166ffffffffffffff1686850152848101516001600160a01b039081168686015260808083015165ffffffffffff169086015260a0918201511690840152948a019460c0909201916001016124ac565b50509c88019c965050509285019250600101612475565b509198975050505050505050565b60008151808452602080850194506020840160005b838110156125a257815180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16885283015163ffffffff168388015260409096019590820190600101612557565b509495945050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f19868403018952815160806001600160a01b038083511686528087840151168787015250604080830151828288015261260f83880182612542565b925050506060808301519250858203818701525061262d8183612542565b9a86019a94505050908301906001016125ca565b5090979650505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f198684030189528151805165ffffffffffff1684528481015163ffffffff908116868601526040808301516dffffffffffffffffffffffffffff1690860152606080830151909116908501526080808201516001600160a01b03169085015260a08082015161036091906126eb82880182612312565b505060c08201518161032087015261270582870182612457565b91505060e0820151915084810361034086015261272281836125ad565b9a86019a945050509083019060010161266b565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180516001600160a01b03908116865290860151604087870181905281518188018190529188019290916060919082890190875b818110156127d25786518051851684528c81015160ff168d85015286015163ffffffff1686840152958b01959184019160010161279a565b50509d89019d97505050938601935050600101612754565b6001600160a01b038616815260a06020820152600061280c60a08301876122cc565b828103604084015261281e818761264e565b905082810360608401526128328186612736565b9050828103608084015261284681856122cc565b98975050505050505050565b60006020828403121561286457600080fd5b815161132d81611470565b848152608060208201526000612888608083018661264e565b828103604084015261289a8186612736565b90508281036060840152610de581856122cc565b8381526060602082015260006128c7606083018561264e565b82810360408401526128d981856122cc565b969550505050505056fea2646970667358221220fe9aeb2923c79b329e15f469ded294b7c8f953591673f78360a251462b46f9d064736f6c63430008170033000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad220000000000000000000000004cdb4200e4e65a277676cd5e8d3c7c7c4da7fbe50000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be00000000000000000000000000000000000000000000000000000000000000000000000000000003d44d6dc16c9e639c863bb7217afe62a2c101bf15afd62374f3e5d47b3870276f7bbda61fda245389fd1f3ea4e226bb6b1e6bf554bd6bef2d58dc9e1cf53e08ea8f580c8c7a0330aee655985cf3975e809df7589b0bf9e1752533b3a7e1d895e500000000000000000000000000000000000000000000000000000000", + "from": "0x0c1c9049564269275059032Fb484Aa2e7Ab779af", + "gasLimit": "3228434", + "gasPrice": "282410117", + "hash": "0x61dec67929625cf6752bf5981fd52cdc110b26336a8d2996f15fa8ccaabe09db", + "maxFeePerGas": "562957142", + "maxPriorityFeePerGas": "7126094", + "nonce": 134, + "signature": { + "networkV": null, + "r": "0x0fe599b6a2501d150a6b3c8cf43f32370282b8e67d07ef560697806ce0fda67b", + "s": "0x3480d9b324d67a0d48b340399026d79ed0a6f56b9e122b8780ee97c1b6a746bb", + "v": 27 + }, + "to": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463", + "type": 2, + "value": "0" + } + } + ], + "merkleRoot": "0x371be9e8b2fb6a7a3a2ca8ccb3e95c6dc7668514963a865e35ad1d0fc4e44ab8", + "solcInputHashes": [ + "2fd444c97aa0fa789adae5192c86e854" + ], + "safeAddress": "0x94BBb774520C1E0Bd2aFb9b3B63cc11102ED7A7B", + "moduleAddress": "0xcd414DF3f7b7dA1F867fF6B5499879308087F0c3", + "executorAddress": "0xA2eA7657440875bF916CBFC0cfA88F13e38aD463", + "nonce": "3", + "chainId": "11155111", + "actions": [ + { + "to": "0x4e59b44847b379578588920cA78FbF26c0B4956C", + "value": "0", + "txData": "0x4a423732315469657273486f6f6b50726f6a6563744465706c6f79657200000060e06040523480156200001157600080fd5b5060405162002a3838038062002a3883398101604081905262000034916200006b565b6001600160a01b0391821660805291811660a0521660c052620000bf565b6001600160a01b03811681146200006857600080fd5b50565b6000806000606084860312156200008157600080fd5b83516200008e8162000052565b6020850151909350620000a18162000052565b6040850151909250620000b48162000052565b809150509250925092565b60805160a05160c0516129196200011f600039600081816101030152818161026a0152818161047201526105e401526000818160b10152818161016401528181610365015261057101526000818161013d0152610a3001526129196000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063abf8c5c811610050578063abf8c5c8146100fe578063ac6a26f814610125578063f434c9141461013857600080fd5b80633c3a22bb1461007757806388bc2ef3146100ac5780638b716777146100eb575b600080fd5b61008a6100853660046111d8565b61015f565b604080519283526001600160a01b039091166020830152015b60405180910390f35b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100a3565b61008a6100f9366004611261565b61035d565b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b61008a610133366004611296565b610569565b6100d37f000000000000000000000000000000000000000000000000000000000000000081565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e49190611310565b6001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102459190611334565b61025090600161134d565b60405163cc7bb31f60e01b81529092506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f906102a190859089906004016116d3565b6020604051808303816000875af11580156102c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e49190611310565b90506102fa866102f386612141565b83866106d0565b6040516351106b4b60e11b8152600481018390526001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561033c57600080fd5b505af1158015610350573d6000803e3d6000fd5b5050505094509492505050565b60008061045b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e59190611310565b6001600160a01b0316636352211e886040518263ffffffff1660e01b815260040161041291815260200190565b602060405180830381865afa15801561042f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104539190611310565b8760026109d8565b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f906104a990899089906004016116d3565b6020604051808303816000875af11580156104c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ec9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b5050505061055e8685610557906121f8565b8386610ae6565b915094509492505050565b6000806105cd7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663293c49996040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c1573d6000803e3d6000fd5b60405163cc7bb31f60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc7bb31f9061061b90899089906004016116d3565b6020604051808303816000875af115801561063a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065e9190611310565b6040516351106b4b60e11b8152600481018890529091506001600160a01b0382169063a220d69690602401600060405180830381600087803b1580156106a357600080fd5b505af11580156106b7573d6000803e3d6000fd5b5050505061055e86856106c990612238565b8386610df0565b60208301515160008167ffffffffffffffff8111156106f1576106f16117f3565b60405190808252806020026020018201604052801561072a57816020015b6107176110a7565b81526020019060019003908161070f5790505b50905060005b8281101561095057600086602001518281518110610750576107506122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e0015115158152602001896001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061093c5761093c6122b6565b602090810291909101015250600101610730565b50845160408087015160608801519151634e530d8960e11b81526001600160a01b03871693639ca61b129361098c938c938892906004016127ea565b6020604051808303816000875af11580156109ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cf9190611334565b50505050505050565b336001600160a01b0384168114801590610a9d5750604051631a45b42760e11b81526001600160a01b0382811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000000000000000000000000000000000000000000000169063348b684e9060c401602060405180830381865afa158015610a77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9b9190612852565b155b15610ae057604051631326f75560e11b81526001600160a01b03808616600483015282166024820152604481018490526064810183905260840160405180910390fd5b50505050565b602083015151600090818167ffffffffffffffff811115610b0957610b096117f3565b604051908082528060200260200182016040528015610b4257816020015b610b2f6110a7565b815260200190600190039081610b275790505b50905060005b82811015610d6857600087602001518281518110610b6857610b686122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e00151815250838381518110610d5457610d546122b6565b602090810291909101015250600101610b48565b5060408087015160608801519151632a550fab60e11b81526001600160a01b038716926354aa1f5692610da2928c9287929160040161286f565b6020604051808303816000875af1158015610dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de59190611334565b979650505050505050565b602083015151600090818167ffffffffffffffff811115610e1357610e136117f3565b604051908082528060200260200182016040528015610e4c57816020015b610e396110a7565b815260200190600190039081610e315790505b50905060005b8281101561107257600087602001518281518110610e7257610e726122b6565b60200260200101519050604051806101000160405280826000015165ffffffffffff168152602001826020015163ffffffff16815260200182604001516dffffffffffffffffffffffffffff168152602001826060015163ffffffff16815260200182608001516001600160a01b031681526020016040518061028001604052808460a001516000015161ffff1681526020018460a001516020015161ffff1681526020018460a001516040015163ffffffff1681526020018460a0015160600151151581526020018460a0015160800151151581526020018460a0015160a00151151581526020016000151581526020018460a0015160c00151151581526020018460a0015160e00151151581526020018460a001516101000151151581526020018460a001516101200151151581526020018460a001516101400151151581526020018460a001516101600151151581526020018460a001516101800151151581526020018460a001516101a00151151581526020018460a001516101c00151151581526020016001151581526020018460a001516101e00151151581526020018a6001600160a01b031681526020018460a00151610200015161ffff1681525081526020018260c0015181526020018260e0015181525083838151811061105e5761105e6122b6565b602090810291909101015250600101610e52565b506040808701519051630e18de6b60e41b81526001600160a01b0386169163e18de6b091610da2918b918691906004016128ae565b6040805161010080820183526000808352602080840182905283850182905260608085018390526080808601849052865161028081018852848152928301849052958201839052810182905293840181905260a084810182905260c0850182905260e0850182905291840181905261012084018190526101408401819052610160840181905261018084018190526101a084018190526101c084018190526101e08401819052610200840181905261022084018190526102408401819052610260840152909190820190815260200160608152602001606081525090565b6001600160a01b038116811461119a57600080fd5b50565b80356111a881611185565b919050565b600061016082840312156111c057600080fd5b50919050565b6000608082840312156111c057600080fd5b600080600080608085870312156111ee57600080fd5b84356111f981611185565b9350602085013567ffffffffffffffff8082111561121657600080fd5b611222888389016111ad565b9450604087013591508082111561123857600080fd5b50611245878288016111c6565b925050606085013561125681611185565b939692955090935050565b6000806000806080858703121561127757600080fd5b84359350602085013567ffffffffffffffff8082111561121657600080fd5b600080600080608085870312156112ac57600080fd5b84359350602085013567ffffffffffffffff808211156112cb57600080fd5b6112d7888389016111ad565b945060408701359150808211156112ed57600080fd5b5085016060818803121561130057600080fd5b9150606085013561125681611185565b60006020828403121561132257600080fd5b815161132d81611185565b9392505050565b60006020828403121561134657600080fd5b5051919050565b8082018082111561136e57634e487b7160e01b600052601160045260246000fd5b92915050565b6000808335601e1984360301811261138b57600080fd5b830160208101925035905067ffffffffffffffff8111156113ab57600080fd5b8036038213156113ba57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008235607e1983360301811261140057600080fd5b90910192915050565b80356cffffffffffffffffffffffffff811681146111a857600080fd5b803563ffffffff811681146111a857600080fd5b803561ffff811681146111a857600080fd5b803562ffffff811681146111a857600080fd5b803560ff811681146111a857600080fd5b801515811461119a57600080fd5b80356111a881611470565b600060808084018335601e198536030181126114a457600080fd5b8401602081810191359067ffffffffffffffff8211156114c357600080fd5b6101c080830236038413156114d757600080fd5b608089529382905260a09384890160005b8481101561162357611510826114fd88611409565b6cffffffffffffffffffffffffff169052565b61151b848701611426565b63ffffffff16848301526040611532878201611426565b63ffffffff1690830152606061154987820161143a565b61ffff169083015261155c86890161119d565b6001600160a01b031688830152858701358783015260c061157e81880161144c565b62ffffff169083015260e061159487820161145f565b60ff16908301526101006115a987820161147e565b1515908301526101206115bd87820161147e565b1515908301526101406115d187820161147e565b1515908301526101606115e587820161147e565b1515908301526101806115f987820161147e565b1515908301526101a061160d87820161147e565b15159083015294820194908201906001016114e8565b5061163060208a01611426565b63ffffffff811660208c0152965061164a60408a0161145f565b60ff811660408c0152965061166160608a0161119d565b6001600160a01b03811660608c015296509998505050505050505050565b803561168a81611470565b15158252602081013561169c81611470565b1515602083015260408101356116b181611470565b1515604083015260608101356116c681611470565b8015156060840152505050565b8281526040602082015260006116e98384611374565b61016060408501526117006101a0850182846113c1565b9150506117106020850185611374565b603f19808685030160608701526117288483856113c1565b93506117376040880188611374565b93509150808685030160808701526117508484846113c1565b935061175e6060880161119d565b6001600160a01b03811660a0880152925061177c6080880188611374565b93509150808685030160c08701526117958484846113c1565b93506117a460a08801886113ea565b9250808685030160e087015250506117bc8282611489565b9150506117cb60c0850161119d565b6001600160a01b03166101008401526117eb610120840160e0860161167f565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405290565b6040805190810167ffffffffffffffff8111828210171561182d5761182d6117f3565b60405160c0810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516080810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051610100810167ffffffffffffffff8111828210171561182d5761182d6117f3565b6040516060810167ffffffffffffffff8111828210171561182d5761182d6117f3565b604051601f8201601f1916810167ffffffffffffffff8111828210171561190c5761190c6117f3565b604052919050565b600082601f83011261192557600080fd5b813567ffffffffffffffff81111561193f5761193f6117f3565b611952601f8201601f19166020016118e3565b81815284602083860101111561196757600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff82111561199e5761199e6117f3565b5060051b60200190565b803565ffffffffffff811681146111a857600080fd5b80356dffffffffffffffffffffffffffff811681146111a857600080fd5b600061022082840312156119ef57600080fd5b6119f7611809565b9050611a028261143a565b8152611a106020830161143a565b6020820152611a2160408301611426565b6040820152611a326060830161147e565b6060820152611a436080830161147e565b6080820152611a5460a0830161147e565b60a0820152611a6560c0830161147e565b60c0820152611a7660e0830161147e565b60e0820152610100611a8981840161147e565b90820152610120611a9b83820161147e565b90820152610140611aad83820161147e565b90820152610160611abf83820161147e565b90820152610180611ad183820161147e565b908201526101a0611ae383820161147e565b908201526101c0611af583820161147e565b908201526101e0611b0783820161147e565b90820152610200611b1983820161143a565b9082015292915050565b803566ffffffffffffff811681146111a857600080fd5b600082601f830112611b4b57600080fd5b81356020611b60611b5b83611984565b6118e3565b82815260059290921b84018101918181019086841115611b7f57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ba357600080fd5b908801906040828b03601f1901811315611bbc57600080fd5b611bc4611833565b8784013581528184013583811115611bdb57600080fd5b8085019450508b603f850112611bf057600080fd5b878401359250611c02611b5b84611984565b83815260c09093028401820192888101908d851115611c2057600080fd5b948301945b84861015611cb95760c0868f031215611c3d57600080fd5b611c45611856565b8635611c5081611470565b8152611c5d878c01611426565b8b820152611c6c858801611b23565b858201526060870135611c7e81611185565b6060820152611c8f608088016119a8565b608082015260a0870135611ca281611185565b60a0820152825260c0959095019490890190611c25565b828a0152508652505050918301918301611b83565b509695505050505050565b600082601f830112611cea57600080fd5b81356020611cfa611b5b83611984565b82815260069290921b84018101918181019086841115611d1957600080fd5b8286015b84811015611cce5760408189031215611d365760008081fd5b611d3e611833565b81357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81168114611d6b5760008081fd5b8152611d78828601611426565b81860152835291830191604001611d1d565b600082601f830112611d9b57600080fd5b81356020611dab611b5b83611984565b82815260059290921b84018101918181019086841115611dca57600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611def5760008081fd5b908801906080828b03601f1901811315611e095760008081fd5b611e11611879565b87840135611e1e81611185565b8152604084810135611e2f81611185565b828a015260608581013585811115611e475760008081fd5b611e558f8c838a0101611cd9565b8484015250928501359284841115611e6f57600091508182fd5b611e7d8e8b86890101611cd9565b90830152508652505050918301918301611dce565b600082601f830112611ea357600080fd5b81356020611eb3611b5b83611984565b82815260059290921b84018101918181019086841115611ed257600080fd5b8286015b84811015611cce57803567ffffffffffffffff80821115611ef75760008081fd5b90880190610300828b03601f1901811315611f125760008081fd5b611f1a61189c565b611f258885016119a8565b81526040611f34818601611426565b898301526060611f458187016119be565b8284015260809150611f58828701611426565b9083015260a0611f6986820161119d565b8284015260c09150611f7d8e8388016119dc565b908301526102e085013584811115611f955760008081fd5b611fa38e8b83890101611b3a565b82840152505081840135915082821115611fbd5760008081fd5b611fcb8c8984870101611d8a565b60e08201528652505050918301918301611ed6565b600082601f830112611ff157600080fd5b81356020612001611b5b83611984565b82815260059290921b8401810191818101908684111561202057600080fd5b8286015b84811015611cce57803567ffffffffffffffff8082111561204457600080fd5b908801906040828b03601f190181131561205d57600080fd5b612065611833565b8784013561207281611185565b8152838201358381111561208557600080fd5b8085019450508b603f85011261209a57600080fd5b8784013592506120ac611b5b84611984565b83815260609093028401820192888101908d8511156120ca57600080fd5b948301945b8486101561212c576060868f0312156120e757600080fd5b6120ef6118c0565b86356120fa81611185565b8152612107878c0161145f565b8b820152612116858801611426565b81860152825260609590950194908901906120cf565b828a0152508652505050918301918301612024565b60006080823603121561215357600080fd5b61215b611879565b823567ffffffffffffffff8082111561217357600080fd5b61217f36838701611914565b8352602085013591508082111561219557600080fd5b6121a136838701611e92565b602084015260408501359150808211156121ba57600080fd5b6121c636838701611fe0565b604084015260608501359150808211156121df57600080fd5b506121ec36828601611914565b60608301525092915050565b60006080823603121561220a57600080fd5b612212611879565b61221b83611b23565b8152602083013567ffffffffffffffff8082111561219557600080fd5b60006060823603121561224a57600080fd5b6122526118c0565b61225b83611b23565b8152602083013567ffffffffffffffff8082111561227857600080fd5b61228436838701611e92565b6020840152604085013591508082111561229d57600080fd5b506122aa36828601611914565b60408301525092915050565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b818110156122f2576020818501810151868301820152016122d6565b506000602082860101526020601f19601f83011685010191505092915050565b805161ffff168252602081015161232f602084018261ffff169052565b506040810151612347604084018263ffffffff169052565b50606081015161235b606084018215159052565b50608081015161236f608084018215159052565b5060a081015161238360a084018215159052565b5060c081015161239760c084018215159052565b5060e08101516123ab60e084018215159052565b5061010081810151151590830152610120808201511515908301526101408082015115159083015261016080820151151590830152610180808201511515908301526101a0808201511515908301526101c0808201511515908301526101e0808201511515908301526102008082015115159083015261022080820151151590830152610240808201516001600160a01b0316908301526102608082015161ffff811682850152610ae0565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180518552850151604086860181905281518187018190529187019160609081880190865b8181101561251d5785518051151584528b81015163ffffffff168c8501528581015166ffffffffffffff1686850152848101516001600160a01b039081168686015260808083015165ffffffffffff169086015260a0918201511690840152948a019460c0909201916001016124ac565b50509c88019c965050509285019250600101612475565b509198975050505050505050565b60008151808452602080850194506020840160005b838110156125a257815180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16885283015163ffffffff168388015260409096019590820190600101612557565b509495945050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f19868403018952815160806001600160a01b038083511686528087840151168787015250604080830151828288015261260f83880182612542565b925050506060808301519250858203818701525061262d8183612542565b9a86019a94505050908301906001016125ca565b5090979650505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561264157601f198684030189528151805165ffffffffffff1684528481015163ffffffff908116868601526040808301516dffffffffffffffffffffffffffff1690860152606080830151909116908501526080808201516001600160a01b03169085015260a08082015161036091906126eb82880182612312565b505060c08201518161032087015261270582870182612457565b91505060e0820151915084810361034086015261272281836125ad565b9a86019a945050509083019060010161266b565b600082825180855260208086019550808260051b8401018186016000805b8581101561253457868403601f19018a52825180516001600160a01b03908116865290860151604087870181905281518188018190529188019290916060919082890190875b818110156127d25786518051851684528c81015160ff168d85015286015163ffffffff1686840152958b01959184019160010161279a565b50509d89019d97505050938601935050600101612754565b6001600160a01b038616815260a06020820152600061280c60a08301876122cc565b828103604084015261281e818761264e565b905082810360608401526128328186612736565b9050828103608084015261284681856122cc565b98975050505050505050565b60006020828403121561286457600080fd5b815161132d81611470565b848152608060208201526000612888608083018661264e565b828103604084015261289a8186612736565b90508281036060840152610de581856122cc565b8381526060602082015260006128c7606083018561264e565b82810360408401526128d981856122cc565b969550505050505056fea2646970667358221220fe9aeb2923c79b329e15f469ded294b7c8f953591673f78360a251462b46f9d064736f6c63430008170033000000000000000000000000e0b2860344ba476e12ed1d559656da9d04f1ad220000000000000000000000004cdb4200e4e65a277676cd5e8d3c7c7c4da7fbe50000000000000000000000002bad941e6c2f9cdbbfc9c25f804f060ffea1d7be", + "gas": "2746503", + "operation": 0, + "requireSuccess": true + } + ], + "sphinxConfig": { + "projectName": "nana-721-hook-testnet", + "orgId": "my-org-id", + "owners": [ + "0xba5ed94ab173e1242638F28d1449b24F1A883292" + ], + "mainnets": [ + "ethereum", + "optimism", + "base", + "arbitrum" + ], + "testnets": [ + "ethereum_sepolia", + "optimism_sepolia", + "base_sepolia", + "arbitrum_sepolia" + ], + "threshold": "1", + "saltNonce": "12" + }, + "executionMode": 2, + "initialState": { + "isSafeDeployed": true, + "isModuleDeployed": true, + "isExecuting": false + }, + "unlabeledContracts": [], + "arbitraryChain": false, + "libraries": [], + "gitCommit": "ad100ab7826a4aace8ac39612835a18c1e961ec2", + "safeInitData": null +} \ No newline at end of file diff --git a/lib/forge-std b/lib/forge-std index 77876f8a..e04104ab 160000 --- a/lib/forge-std +++ b/lib/forge-std @@ -1 +1 @@ -Subproject commit 77876f8a5b44b770a935621bb331660c90ac928e +Subproject commit e04104ab93e771441eab03fb76eda1402cb5927b diff --git a/lib/sphinx b/lib/sphinx index 8126b932..5fb24a82 160000 --- a/lib/sphinx +++ b/lib/sphinx @@ -1 +1 @@ -Subproject commit 8126b93269809c693df357fd21b16a93b4db6728 +Subproject commit 5fb24a825f46bd6ae0b5359fe0da1d2346126b09 From 9cb891b53175b58e4b4e39ff985f642e5e847518 Mon Sep 17 00:00:00 2001 From: 0xBA5ED <83727748+xBA5ED@users.noreply.github.com> Date: Thu, 19 Sep 2024 23:44:01 +0200 Subject: [PATCH 3/3] ci: bump package version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3a22a8ce..46a87986 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@bananapus/721-hook", - "version": "0.0.23", + "version": "0.0.24", "license": "MIT", "repository": { "type": "git",