{
  "_format": "hh-sol-artifact-1",
  "contractName": "AllocateLimitHandlerLib",
  "sourceName": "contracts/V3/handler/AllocateLimitHandlerLib.sol",
  "abi": [
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "engine",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "clusterArea",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "clusterId",
              "type": "uint32"
            },
            {
              "internalType": "uint16",
              "name": "ruleSlotIndexInput",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "ruleSlotIndexOutput",
              "type": "uint16"
            },
            {
              "internalType": "uint8",
              "name": "branch",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "stateCounter",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "taskId",
              "type": "uint32"
            },
            {
              "internalType": "address",
              "name": "caller",
              "type": "address"
            },
            {
              "internalType": "uint8",
              "name": "cmd",
              "type": "uint8"
            },
            {
              "internalType": "bytes",
              "name": "args",
              "type": "bytes"
            }
          ],
          "internalType": "struct Handler.StateParams",
          "name": "params",
          "type": "tuple"
        },
        {
          "internalType": "uint128",
          "name": "ruleConfig",
          "type": "uint128"
        },
        {
          "internalType": "uint256",
          "name": "timesLeft",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "timesTotal",
          "type": "uint256"
        }
      ],
      "name": "getAllocateLimitState",
      "outputs": [
        {
          "internalType": "bytes[]",
          "name": "",
          "type": "bytes[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x610ea961003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063206d9d401461003a575b600080fd5b61004d610048366004610abf565b610063565b60405161005a9190610bfc565b60405180910390f35b6060600061007d856001600160801b03166008600061024c565b60408051600580825260c0820190925291925060009190816020015b60608152602001906001900390816100995790505090506100e66040518060400160405280600e81526020016d0626c6f636b54696d657374616d760941b8152504263ffffffff1661026b565b816000815181106100f9576100f9610c97565b602002602001018190525061013e6040518060400160405280600b81526020016a313637b1b5a73ab6b132b960a91b81525061013361034e565b63ffffffff1661026b565b8160018151811061015157610151610c97565b60200260200101819052506101916040518060400160405280601081526020016f0caf0cac6eae8ca626060a6eed2e8c6d60831b8152508360ff1661026b565b816002815181106101a4576101a4610c97565b60200260200101819052506101da604051806040016040528060098152602001681d1a5b595cd319599d60ba1b8152508661026b565b816003815181106101ed576101ed610c97565b60200260200101819052506102246040518060400160405280600a8152602001691d1a5b595cd51bdd185b60b21b8152508561026b565b8160048151811061023757610237610c97565b60209081029190910101529695505050505050565b91821c91600080610260600180861b610cc3565b909416949350505050565b60606000610278846103da565b90506000610285846103e5565b6040805160038082526080820190925291925060009190816020015b60608152602001906001900390816102a157905050905082816000815181106102cc576102cc610c97565b60200260200101819052506102fc604051806040016040528060048152602001631d5a5b9d60e21b8152506103da565b8160018151811061030f5761030f610c97565b6020026020010181905250818160028151811061032e5761032e610c97565b6020026020010181905250610342816103f8565b93505050505b92915050565b60004661a4b18114156103d35760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561039557600080fd5b505afa1580156103a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cd9190610cda565b91505090565b4391505090565b606061034882610423565b60606103486103f383610473565b610423565b60606000610405836105b0565b905061041c610416825160c06106df565b82610895565b9392505050565b60608082516001148015610452575060808360008151811061044757610447610c97565b016020015160f81c11155b1561045e575081610348565b61041c61046d845160806106df565b84610895565b6040805160208082528183019092526060916000919060208201818036833701905050905082602082015260005b60208110156104e7578181815181106104bc576104bc610c97565b01602001516001600160f81b031916156104d5576104e7565b806104df81610cf3565b9150506104a1565b60006104f4826020610cc3565b6001600160401b0381111561050b5761050b61098a565b6040519080825280601f01601f191660200182016040528015610535576020820181803683370190505b50905060005b81518110156105a757838361054f81610cf3565b94508151811061056157610561610c97565b602001015160f81c60f81b82828151811061057e5761057e610c97565b60200101906001600160f81b031916908160001a9053508061059f81610cf3565b91505061053b565b50949350505050565b60608151600014156105d057505060408051600081526020810190915290565b6000805b8351811015610617578381815181106105ef576105ef610c97565b602002602001015151826106039190610d0e565b91508061060f81610cf3565b9150506105d4565b6000826001600160401b038111156106315761063161098a565b6040519080825280601f01601f19166020018201604052801561065b576020820181803683370190505b50600092509050602081015b85518310156105a757600086848151811061068457610684610c97565b6020026020010151905060006020820190506106a283828451610912565b8785815181106106b4576106b4610c97565b602002602001015151836106c89190610d0e565b9250505082806106d790610cf3565b935050610667565b606080603884101561074957604080516001808252818301909252906020820181803683370190505090506107148385610d0e565b601f1a60f81b8160008151811061072d5761072d610c97565b60200101906001600160f81b031916908160001a90535061041c565b600060015b6107588187610d3c565b1561077e578161076781610cf3565b9250610777905061010082610d50565b905061074e565b610789826001610d0e565b6001600160401b038111156107a0576107a061098a565b6040519080825280601f01601f1916602001820160405280156107ca576020820181803683370190505b5092506107d78583610d0e565b6107e2906037610d0e565b601f1a60f81b836000815181106107fb576107fb610c97565b60200101906001600160f81b031916908160001a905350600190505b81811161088c5761010061082b8284610cc3565b61083790610100610e53565b6108419088610d3c565b61084b9190610e5f565b601f1a60f81b83828151811061086357610863610c97565b60200101906001600160f81b031916908160001a9053508061088481610cf3565b915050610817565b50509392505050565b6060806040519050835180825260208201818101602087015b818310156108c65780518352602092830192016108ae565b50855184518101855292509050808201602086015b818310156108f35780518352602092830192016108db565b508651929092011591909101601f01601f191660405250905092915050565b8282825b6020811061094e578151835261092d602084610d0e565b925061093a602083610d0e565b9150610947602082610cc3565b9050610916565b6000600161095d836020610cc3565b61096990610100610e53565b6109739190610cc3565b925184518416931916929092179092525050505050565b634e487b7160e01b600052604160045260246000fd5b60405161016081016001600160401b03811182821017156109c3576109c361098a565b60405290565b80356001600160a01b03811681146109e057600080fd5b919050565b803563ffffffff811681146109e057600080fd5b803561ffff811681146109e057600080fd5b803560ff811681146109e057600080fd5b600082601f830112610a2d57600080fd5b81356001600160401b0380821115610a4757610a4761098a565b604051601f8301601f19908116603f01168101908282118183101715610a6f57610a6f61098a565b81604052838152866020858801011115610a8857600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160801b03811681146109e057600080fd5b60008060008060808587031215610ad557600080fd5b84356001600160401b0380821115610aec57600080fd5b908601906101608289031215610b0157600080fd5b610b096109a0565b610b12836109c9565b8152610b20602084016109c9565b6020820152610b31604084016109e5565b6040820152610b42606084016109f9565b6060820152610b53608084016109f9565b6080820152610b6460a08401610a0b565b60a0820152610b7560c084016109c9565b60c0820152610b8660e084016109e5565b60e0820152610100610b998185016109c9565b90820152610120610bab848201610a0b565b908201526101408381013583811115610bc357600080fd5b610bcf8b828701610a1c565b828401525050809650505050610be760208601610aa8565b93969395505050506040820135916060013590565b6000602080830181845280855180835260408601915060408160051b87010192508387016000805b83811015610c8957888603603f1901855282518051808852835b81811015610c59578281018a01518982018b01528901610c3e565b81811115610c6957848a838b0101525b50601f01601f191696909601870195509386019391860191600101610c24565b509398975050505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610cd557610cd5610cad565b500390565b600060208284031215610cec57600080fd5b5051919050565b6000600019821415610d0757610d07610cad565b5060010190565b60008219821115610d2157610d21610cad565b500190565b634e487b7160e01b600052601260045260246000fd5b600082610d4b57610d4b610d26565b500490565b6000816000190483118215151615610d6a57610d6a610cad565b500290565b600181815b80851115610daa578160001904821115610d9057610d90610cad565b80851615610d9d57918102915b93841c9390800290610d74565b509250929050565b600082610dc157506001610348565b81610dce57506000610348565b8160018114610de45760028114610dee57610e0a565b6001915050610348565b60ff841115610dff57610dff610cad565b50506001821b610348565b5060208310610133831016604e8410600b8410161715610e2d575081810a610348565b610e378383610d6f565b8060001904821115610e4b57610e4b610cad565b029392505050565b600061041c8383610db2565b600082610e6e57610e6e610d26565b50069056fea2646970667358221220c9d4a8198a40ce15c52f2a56f3aec350e03684edb486ff7f744b7f3253b91f6f64736f6c63430008080033",
  "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063206d9d401461003a575b600080fd5b61004d610048366004610abf565b610063565b60405161005a9190610bfc565b60405180910390f35b6060600061007d856001600160801b03166008600061024c565b60408051600580825260c0820190925291925060009190816020015b60608152602001906001900390816100995790505090506100e66040518060400160405280600e81526020016d0626c6f636b54696d657374616d760941b8152504263ffffffff1661026b565b816000815181106100f9576100f9610c97565b602002602001018190525061013e6040518060400160405280600b81526020016a313637b1b5a73ab6b132b960a91b81525061013361034e565b63ffffffff1661026b565b8160018151811061015157610151610c97565b60200260200101819052506101916040518060400160405280601081526020016f0caf0cac6eae8ca626060a6eed2e8c6d60831b8152508360ff1661026b565b816002815181106101a4576101a4610c97565b60200260200101819052506101da604051806040016040528060098152602001681d1a5b595cd319599d60ba1b8152508661026b565b816003815181106101ed576101ed610c97565b60200260200101819052506102246040518060400160405280600a8152602001691d1a5b595cd51bdd185b60b21b8152508561026b565b8160048151811061023757610237610c97565b60209081029190910101529695505050505050565b91821c91600080610260600180861b610cc3565b909416949350505050565b60606000610278846103da565b90506000610285846103e5565b6040805160038082526080820190925291925060009190816020015b60608152602001906001900390816102a157905050905082816000815181106102cc576102cc610c97565b60200260200101819052506102fc604051806040016040528060048152602001631d5a5b9d60e21b8152506103da565b8160018151811061030f5761030f610c97565b6020026020010181905250818160028151811061032e5761032e610c97565b6020026020010181905250610342816103f8565b93505050505b92915050565b60004661a4b18114156103d35760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561039557600080fd5b505afa1580156103a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cd9190610cda565b91505090565b4391505090565b606061034882610423565b60606103486103f383610473565b610423565b60606000610405836105b0565b905061041c610416825160c06106df565b82610895565b9392505050565b60608082516001148015610452575060808360008151811061044757610447610c97565b016020015160f81c11155b1561045e575081610348565b61041c61046d845160806106df565b84610895565b6040805160208082528183019092526060916000919060208201818036833701905050905082602082015260005b60208110156104e7578181815181106104bc576104bc610c97565b01602001516001600160f81b031916156104d5576104e7565b806104df81610cf3565b9150506104a1565b60006104f4826020610cc3565b6001600160401b0381111561050b5761050b61098a565b6040519080825280601f01601f191660200182016040528015610535576020820181803683370190505b50905060005b81518110156105a757838361054f81610cf3565b94508151811061056157610561610c97565b602001015160f81c60f81b82828151811061057e5761057e610c97565b60200101906001600160f81b031916908160001a9053508061059f81610cf3565b91505061053b565b50949350505050565b60608151600014156105d057505060408051600081526020810190915290565b6000805b8351811015610617578381815181106105ef576105ef610c97565b602002602001015151826106039190610d0e565b91508061060f81610cf3565b9150506105d4565b6000826001600160401b038111156106315761063161098a565b6040519080825280601f01601f19166020018201604052801561065b576020820181803683370190505b50600092509050602081015b85518310156105a757600086848151811061068457610684610c97565b6020026020010151905060006020820190506106a283828451610912565b8785815181106106b4576106b4610c97565b602002602001015151836106c89190610d0e565b9250505082806106d790610cf3565b935050610667565b606080603884101561074957604080516001808252818301909252906020820181803683370190505090506107148385610d0e565b601f1a60f81b8160008151811061072d5761072d610c97565b60200101906001600160f81b031916908160001a90535061041c565b600060015b6107588187610d3c565b1561077e578161076781610cf3565b9250610777905061010082610d50565b905061074e565b610789826001610d0e565b6001600160401b038111156107a0576107a061098a565b6040519080825280601f01601f1916602001820160405280156107ca576020820181803683370190505b5092506107d78583610d0e565b6107e2906037610d0e565b601f1a60f81b836000815181106107fb576107fb610c97565b60200101906001600160f81b031916908160001a905350600190505b81811161088c5761010061082b8284610cc3565b61083790610100610e53565b6108419088610d3c565b61084b9190610e5f565b601f1a60f81b83828151811061086357610863610c97565b60200101906001600160f81b031916908160001a9053508061088481610cf3565b915050610817565b50509392505050565b6060806040519050835180825260208201818101602087015b818310156108c65780518352602092830192016108ae565b50855184518101855292509050808201602086015b818310156108f35780518352602092830192016108db565b508651929092011591909101601f01601f191660405250905092915050565b8282825b6020811061094e578151835261092d602084610d0e565b925061093a602083610d0e565b9150610947602082610cc3565b9050610916565b6000600161095d836020610cc3565b61096990610100610e53565b6109739190610cc3565b925184518416931916929092179092525050505050565b634e487b7160e01b600052604160045260246000fd5b60405161016081016001600160401b03811182821017156109c3576109c361098a565b60405290565b80356001600160a01b03811681146109e057600080fd5b919050565b803563ffffffff811681146109e057600080fd5b803561ffff811681146109e057600080fd5b803560ff811681146109e057600080fd5b600082601f830112610a2d57600080fd5b81356001600160401b0380821115610a4757610a4761098a565b604051601f8301601f19908116603f01168101908282118183101715610a6f57610a6f61098a565b81604052838152866020858801011115610a8857600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160801b03811681146109e057600080fd5b60008060008060808587031215610ad557600080fd5b84356001600160401b0380821115610aec57600080fd5b908601906101608289031215610b0157600080fd5b610b096109a0565b610b12836109c9565b8152610b20602084016109c9565b6020820152610b31604084016109e5565b6040820152610b42606084016109f9565b6060820152610b53608084016109f9565b6080820152610b6460a08401610a0b565b60a0820152610b7560c084016109c9565b60c0820152610b8660e084016109e5565b60e0820152610100610b998185016109c9565b90820152610120610bab848201610a0b565b908201526101408381013583811115610bc357600080fd5b610bcf8b828701610a1c565b828401525050809650505050610be760208601610aa8565b93969395505050506040820135916060013590565b6000602080830181845280855180835260408601915060408160051b87010192508387016000805b83811015610c8957888603603f1901855282518051808852835b81811015610c59578281018a01518982018b01528901610c3e565b81811115610c6957848a838b0101525b50601f01601f191696909601870195509386019391860191600101610c24565b509398975050505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610cd557610cd5610cad565b500390565b600060208284031215610cec57600080fd5b5051919050565b6000600019821415610d0757610d07610cad565b5060010190565b60008219821115610d2157610d21610cad565b500190565b634e487b7160e01b600052601260045260246000fd5b600082610d4b57610d4b610d26565b500490565b6000816000190483118215151615610d6a57610d6a610cad565b500290565b600181815b80851115610daa578160001904821115610d9057610d90610cad565b80851615610d9d57918102915b93841c9390800290610d74565b509250929050565b600082610dc157506001610348565b81610dce57506000610348565b8160018114610de45760028114610dee57610e0a565b6001915050610348565b60ff841115610dff57610dff610cad565b50506001821b610348565b5060208310610133831016604e8410600b8410161715610e2d575081810a610348565b610e378383610d6f565b8060001904821115610e4b57610e4b610cad565b029392505050565b600061041c8383610db2565b600082610e6e57610e6e610d26565b50069056fea2646970667358221220c9d4a8198a40ce15c52f2a56f3aec350e03684edb486ff7f744b7f3253b91f6f64736f6c63430008080033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
