{
  "_format": "hh-sol-artifact-1",
  "contractName": "AdminModule",
  "sourceName": "contracts/admin/AdminModule.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "ammFactory_",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "marketHub_",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "permissionController_",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "Unauthorized",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "AMM_FACTORY",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "isPositive",
          "type": "bool"
        },
        {
          "components": [
            {
              "internalType": "AMMId",
              "name": "ammId",
              "type": "uint24"
            },
            {
              "internalType": "string",
              "name": "name",
              "type": "string"
            },
            {
              "internalType": "string",
              "name": "symbol",
              "type": "string"
            },
            {
              "internalType": "address",
              "name": "router",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "market",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "oracleImpliedRateWindow",
              "type": "uint32"
            },
            {
              "internalType": "uint64",
              "name": "feeRate",
              "type": "uint64"
            },
            {
              "internalType": "uint256",
              "name": "totalSupplyCap",
              "type": "uint256"
            },
            {
              "internalType": "MarketAcc",
              "name": "seeder",
              "type": "bytes26"
            },
            {
              "internalType": "address",
              "name": "permissionController",
              "type": "address"
            }
          ],
          "internalType": "struct AMMCreateParams",
          "name": "createParams",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "minAbsRate",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "maxAbsRate",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "cutOffTimestamp",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "initialAbsRate",
              "type": "uint256"
            },
            {
              "internalType": "int256",
              "name": "initialSize",
              "type": "int256"
            },
            {
              "internalType": "uint256",
              "name": "flipLiquidity",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "initialCash",
              "type": "uint256"
            }
          ],
          "internalType": "struct AMMSeedParams",
          "name": "seedParams",
          "type": "tuple"
        }
      ],
      "name": "newAMM",
      "outputs": [
        {
          "internalType": "address",
          "name": "amm",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60e060405234801561000f575f5ffd5b506040516111d63803806111d683398101604081905261002e91610066565b6001600160a01b0390811660805291821660a0521660c0526100a6565b80516001600160a01b0381168114610061575f5ffd5b919050565b5f5f5f60608486031215610078575f5ffd5b6100818461004b565b925061008f6020850161004b565b915061009d6040850161004b565b90509250925092565b60805160a05160c0516110de6100f85f395f818161024d01528181610325015281816103df01528181610442015281816105d301526106ee01525f8181603d015261016c01525f60b701526110de5ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c8063329434081461003857806368811b5e1461007b575b5f5ffd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b61005f6100893660046109e1565b60405163b700961360e01b81523360048201523060248201525f80356001600160e01b0319166044830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b700961390606401602060405180830381865afa158015610104573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101289190610b20565b610144576040516282b42960e81b815260040160405180910390fd5b5f610152846080015161065e565b60405163a2d3bdfb60e01b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a2d3bdfb906101a590889088908890600401610b69565b6020604051808303815f875af11580156101c1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e59190610c9e565b91505f826001600160a01b03166324d4206b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610224573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102489190610cb9565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663caecb595604884901c6040516001600160e01b031960e084901b16815261ffff9091166004820152602401608060405180830381865afa1580156102bc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102e09190610cea565b60208101519091506001600160801b03165f61030465ffffffffffff198516610770565b610312578260600151610318565b82604001515b6001600160801b031690507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639c00e51b8961010001518661036d85876103689190610d7a565b610782565b6040518463ffffffff1660e01b815260040161038b93929190610d8d565b5f604051808303815f87803b1580156103a2575f5ffd5b505af11580156103b4573d5f5f3e3d5ffd5b5050604051630c84d61d60e11b815265ffffffffffff198716600482015262ffffff881660248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169250631909ac3a91506044015f604051808303815f87803b15801561042a575f5ffd5b505af115801561043c573d5f5f3e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639c00e51b858a610100015161047f85610782565b6040518463ffffffff1660e01b815260040161049d93929190610d8d565b5f604051808303815f87803b1580156104b4575f5ffd5b505af11580156104c6573d5f5f3e3d5ffd5b505050506104f46040805160808101909152805f81526020015f815260200160608152602001606081525090565b604080516060808201835281525f60208201819052818301819052825160018082528185019094529192909190816020015b604080516060810182525f80825260208083018290529282015282525f1990920191018161052657905050905060405180606001604052808865ffffffffffff191681526020016105848c6080015161057e90610db1565b5f61079b565b81526020016105968c60c00151610782565b815250815f815181106105ab576105ab610dcb565b60209081029190910101526101008b01516040516373f68a7160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916373f68a719161060e918c91889088908890600401610eef565b60408051808303815f875af1158015610629573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064d9190610fdb565b505050505050505050509392505050565b5f5f826001600160a01b031663303e74df6040518163ffffffff1660e01b815260040160e060405180830381865afa15801561069c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106c0919061100c565b5050604051632f4333d160e21b815262ffffff8416600482015292955050506001600160a01b0386811693507f000000000000000000000000000000000000000000000000000000000000000016915063bd0ccf4490602401602060405180830381865afa158015610734573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107589190610c9e565b6001600160a01b03161461076a575f5ffd5b92915050565b5f62ffffff603083901c81161461076a565b5f5f821261078e575090565b6107966107d5565b919050565b5f6107ce6107a8846107e2565b6107b1846107e2565b6001600160801b031660809190911b6001600160801b0319161790565b9392505050565b6335278d125f526004601cfd5b5f6001607f1b820160801c61078e575090565b6001600160a01b03169052565b801515811461080f575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b60405161014081016001600160401b038111828210171561084957610849610812565b60405290565b62ffffff8116811461080f575f5ffd5b80356107968161084f565b5f82601f830112610879575f5ffd5b81356001600160401b0381111561089257610892610812565b604051601f8201601f19908116603f011681016001600160401b03811182821017156108c0576108c0610812565b6040528181528382016020018510156108d7575f5ffd5b816020850160208301375f918101602001919091529392505050565b6001600160a01b038116811461080f575f5ffd5b8035610796816108f3565b63ffffffff8116811461080f575f5ffd5b803561079681610912565b80356001600160401b0381168114610796575f5ffd5b65ffffffffffff198116811461080f575f5ffd5b803561079681610944565b5f60e08284031215610973575f5ffd5b60405160e081016001600160401b038111828210171561099557610995610812565b604090815283358252602080850135908301528381013590820152606080840135908201526080808401359082015260a0808401359082015260c0928301359281019290925250919050565b5f5f5f61012084860312156109f4575f5ffd5b83356109ff81610802565b925060208401356001600160401b03811115610a19575f5ffd5b84016101408187031215610a2b575f5ffd5b610a33610826565b610a3c8261085f565b815260208201356001600160401b03811115610a56575f5ffd5b610a628882850161086a565b60208301525060408201356001600160401b03811115610a80575f5ffd5b610a8c8882850161086a565b604083015250610a9e60608301610907565b6060820152610aaf60808301610907565b6080820152610ac060a08301610923565b60a0820152610ad160c0830161092e565b60c082015260e08281013590820152610aed6101008301610958565b610100820152610b006101208301610907565b6101208201529250610b1790508560408601610963565b90509250925092565b5f60208284031215610b30575f5ffd5b81516107ce81610802565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b83151581526101206020820152610b896101208201845162ffffff169052565b5f602084015161014080840152610ba4610260840182610b3b565b9050604085015161011f1984830301610160850152610bc38282610b3b565b9150506060850151610bd96101808501826107f5565b506080850151610bed6101a08501826107f5565b5060a085015163ffffffff166101c084015260c08501516001600160401b03166101e084015260e085015161020084015261010085015165ffffffffffff1916610220840152610120850151610c476102408501826107f5565b509050610c966040830184805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c08301525050565b949350505050565b5f60208284031215610cae575f5ffd5b81516107ce816108f3565b5f60208284031215610cc9575f5ffd5b81516107ce81610944565b80516001600160801b0381168114610796575f5ffd5b5f6080828403128015610cfb575f5ffd5b50604051608081016001600160401b0381118282101715610d1e57610d1e610812565b604052610d2a83610cd4565b8152610d3860208401610cd4565b6020820152610d4960408401610cd4565b6040820152610d5a60608401610cd4565b60608201529392505050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561076a5761076a610d66565b65ffffffffffff199384168152919092166020820152604081019190915260600190565b5f600160ff1b8201610dc557610dc5610d66565b505f0390565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b5f8151808452602084019350602083015f5b82811015610e26578151600190810b87526020968701969092019101610e05565b5093949350505050565b8051606080845281519084018190525f9160200190829060808601905b80831015610e785783516001600160401b031682526020938401936001939093019290910190610e4d565b5060208501511515602087015260408501511515604087015280935050505092915050565b5f8151808452602084019350602083015f5b82811015610e26578151805165ffffffffffff19168752602080820151818901526040918201519188019190915260609096019590910190600101610eaf565b62ffffff8616815265ffffffffffff198516602082015260a060408201525f6101208201855160058110610f2557610f25610ddf565b60a0840152602086015160028110610f3f57610f3f610ddf565b60c08401526040860151608060e0850152805191829052602001905f906101408501905b80831015610f865783518252602082019150602084019350600183019250610f63565b506060880151858203609f19016101008701529250610fa58184610df3565b925050508281036060840152610fbb8186610e30565b90508281036080840152610fcf8185610e9d565b98975050505050505050565b5f5f60408385031215610fec575f5ffd5b505080516020909101519092909150565b61ffff8116811461080f575f5ffd5b5f5f5f5f5f5f5f60e0888a031215611022575f5ffd5b875161102d81610802565b602089015190975061103e81610ffd565b604089015190965061104f8161084f565b606089015190955061106081610912565b608089015190945060ff81168114611076575f5ffd5b60a089015190935061108781610ffd565b60c089015190925061109881610912565b809150509295989194975092955056fea26469706673582212204c492b77c272fa687623532dd51c53e237a4f728665528a184b238a0e5c8ee7864736f6c634300081c0033",
  "deployedBytecode": "0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c8063329434081461003857806368811b5e1461007b575b5f5ffd5b61005f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b61005f6100893660046109e1565b60405163b700961360e01b81523360048201523060248201525f80356001600160e01b0319166044830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b700961390606401602060405180830381865afa158015610104573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101289190610b20565b610144576040516282b42960e81b815260040160405180910390fd5b5f610152846080015161065e565b60405163a2d3bdfb60e01b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a2d3bdfb906101a590889088908890600401610b69565b6020604051808303815f875af11580156101c1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e59190610c9e565b91505f826001600160a01b03166324d4206b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610224573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102489190610cb9565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663caecb595604884901c6040516001600160e01b031960e084901b16815261ffff9091166004820152602401608060405180830381865afa1580156102bc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102e09190610cea565b60208101519091506001600160801b03165f61030465ffffffffffff198516610770565b610312578260600151610318565b82604001515b6001600160801b031690507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639c00e51b8961010001518661036d85876103689190610d7a565b610782565b6040518463ffffffff1660e01b815260040161038b93929190610d8d565b5f604051808303815f87803b1580156103a2575f5ffd5b505af11580156103b4573d5f5f3e3d5ffd5b5050604051630c84d61d60e11b815265ffffffffffff198716600482015262ffffff881660248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169250631909ac3a91506044015f604051808303815f87803b15801561042a575f5ffd5b505af115801561043c573d5f5f3e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639c00e51b858a610100015161047f85610782565b6040518463ffffffff1660e01b815260040161049d93929190610d8d565b5f604051808303815f87803b1580156104b4575f5ffd5b505af11580156104c6573d5f5f3e3d5ffd5b505050506104f46040805160808101909152805f81526020015f815260200160608152602001606081525090565b604080516060808201835281525f60208201819052818301819052825160018082528185019094529192909190816020015b604080516060810182525f80825260208083018290529282015282525f1990920191018161052657905050905060405180606001604052808865ffffffffffff191681526020016105848c6080015161057e90610db1565b5f61079b565b81526020016105968c60c00151610782565b815250815f815181106105ab576105ab610dcb565b60209081029190910101526101008b01516040516373f68a7160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916373f68a719161060e918c91889088908890600401610eef565b60408051808303815f875af1158015610629573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064d9190610fdb565b505050505050505050509392505050565b5f5f826001600160a01b031663303e74df6040518163ffffffff1660e01b815260040160e060405180830381865afa15801561069c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106c0919061100c565b5050604051632f4333d160e21b815262ffffff8416600482015292955050506001600160a01b0386811693507f000000000000000000000000000000000000000000000000000000000000000016915063bd0ccf4490602401602060405180830381865afa158015610734573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107589190610c9e565b6001600160a01b03161461076a575f5ffd5b92915050565b5f62ffffff603083901c81161461076a565b5f5f821261078e575090565b6107966107d5565b919050565b5f6107ce6107a8846107e2565b6107b1846107e2565b6001600160801b031660809190911b6001600160801b0319161790565b9392505050565b6335278d125f526004601cfd5b5f6001607f1b820160801c61078e575090565b6001600160a01b03169052565b801515811461080f575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b60405161014081016001600160401b038111828210171561084957610849610812565b60405290565b62ffffff8116811461080f575f5ffd5b80356107968161084f565b5f82601f830112610879575f5ffd5b81356001600160401b0381111561089257610892610812565b604051601f8201601f19908116603f011681016001600160401b03811182821017156108c0576108c0610812565b6040528181528382016020018510156108d7575f5ffd5b816020850160208301375f918101602001919091529392505050565b6001600160a01b038116811461080f575f5ffd5b8035610796816108f3565b63ffffffff8116811461080f575f5ffd5b803561079681610912565b80356001600160401b0381168114610796575f5ffd5b65ffffffffffff198116811461080f575f5ffd5b803561079681610944565b5f60e08284031215610973575f5ffd5b60405160e081016001600160401b038111828210171561099557610995610812565b604090815283358252602080850135908301528381013590820152606080840135908201526080808401359082015260a0808401359082015260c0928301359281019290925250919050565b5f5f5f61012084860312156109f4575f5ffd5b83356109ff81610802565b925060208401356001600160401b03811115610a19575f5ffd5b84016101408187031215610a2b575f5ffd5b610a33610826565b610a3c8261085f565b815260208201356001600160401b03811115610a56575f5ffd5b610a628882850161086a565b60208301525060408201356001600160401b03811115610a80575f5ffd5b610a8c8882850161086a565b604083015250610a9e60608301610907565b6060820152610aaf60808301610907565b6080820152610ac060a08301610923565b60a0820152610ad160c0830161092e565b60c082015260e08281013590820152610aed6101008301610958565b610100820152610b006101208301610907565b6101208201529250610b1790508560408601610963565b90509250925092565b5f60208284031215610b30575f5ffd5b81516107ce81610802565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b83151581526101206020820152610b896101208201845162ffffff169052565b5f602084015161014080840152610ba4610260840182610b3b565b9050604085015161011f1984830301610160850152610bc38282610b3b565b9150506060850151610bd96101808501826107f5565b506080850151610bed6101a08501826107f5565b5060a085015163ffffffff166101c084015260c08501516001600160401b03166101e084015260e085015161020084015261010085015165ffffffffffff1916610220840152610120850151610c476102408501826107f5565b509050610c966040830184805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c08301525050565b949350505050565b5f60208284031215610cae575f5ffd5b81516107ce816108f3565b5f60208284031215610cc9575f5ffd5b81516107ce81610944565b80516001600160801b0381168114610796575f5ffd5b5f6080828403128015610cfb575f5ffd5b50604051608081016001600160401b0381118282101715610d1e57610d1e610812565b604052610d2a83610cd4565b8152610d3860208401610cd4565b6020820152610d4960408401610cd4565b6040820152610d5a60608401610cd4565b60608201529392505050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561076a5761076a610d66565b65ffffffffffff199384168152919092166020820152604081019190915260600190565b5f600160ff1b8201610dc557610dc5610d66565b505f0390565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b5f8151808452602084019350602083015f5b82811015610e26578151600190810b87526020968701969092019101610e05565b5093949350505050565b8051606080845281519084018190525f9160200190829060808601905b80831015610e785783516001600160401b031682526020938401936001939093019290910190610e4d565b5060208501511515602087015260408501511515604087015280935050505092915050565b5f8151808452602084019350602083015f5b82811015610e26578151805165ffffffffffff19168752602080820151818901526040918201519188019190915260609096019590910190600101610eaf565b62ffffff8616815265ffffffffffff198516602082015260a060408201525f6101208201855160058110610f2557610f25610ddf565b60a0840152602086015160028110610f3f57610f3f610ddf565b60c08401526040860151608060e0850152805191829052602001905f906101408501905b80831015610f865783518252602082019150602084019350600183019250610f63565b506060880151858203609f19016101008701529250610fa58184610df3565b925050508281036060840152610fbb8186610e30565b90508281036080840152610fcf8185610e9d565b98975050505050505050565b5f5f60408385031215610fec575f5ffd5b505080516020909101519092909150565b61ffff8116811461080f575f5ffd5b5f5f5f5f5f5f5f60e0888a031215611022575f5ffd5b875161102d81610802565b602089015190975061103e81610ffd565b604089015190965061104f8161084f565b606089015190955061106081610912565b608089015190945060ff81168114611076575f5ffd5b60a089015190935061108781610ffd565b60c089015190925061109881610912565b809150509295989194975092955056fea26469706673582212204c492b77c272fa687623532dd51c53e237a4f728665528a184b238a0e5c8ee7864736f6c634300081c0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
