{
  "_format": "hh-sol-artifact-1",
  "contractName": "InvokeMock",
  "sourceName": "contracts/mocks/protocol/lib/InvokeMock.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        }
      ],
      "name": "initializeModuleOnSet",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_quantity",
          "type": "uint256"
        }
      ],
      "name": "testInvokeApprove",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_quantity",
          "type": "uint256"
        }
      ],
      "name": "testInvokeTransfer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_weth",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_quantity",
          "type": "uint256"
        }
      ],
      "name": "testInvokeUnwrapWETH",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_weth",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_quantity",
          "type": "uint256"
        }
      ],
      "name": "testInvokeWrapWETH",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_quantity",
          "type": "uint256"
        }
      ],
      "name": "testStrictInvokeTransfer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50610a14806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806317f98a7c14610067578063348a713e146100a557806377d3e702146100e1578063d6409d941461011d578063f40b334414610143578063fe05560f14610179575b600080fd5b6100a36004803603608081101561007d57600080fd5b506001600160a01b038135811691602081013582169160408201351690606001356101af565b005b6100a3600480360360808110156100bb57600080fd5b506001600160a01b038135811691602081013582169160408201351690606001356101c1565b6100a3600480360360808110156100f757600080fd5b506001600160a01b038135811691602081013582169160408201351690606001356101cd565b6100a36004803603602081101561013357600080fd5b50356001600160a01b03166101d9565b6100a36004803603606081101561015957600080fd5b506001600160a01b0381358116916020810135909116906040013561022f565b6100a36004803603606081101561018f57600080fd5b506001600160a01b0381358116916020810135909116906040013561023f565b6101bb8484848461024a565b50505050565b6101bb84848484610447565b6101bb848484846105d0565b806001600160a01b0316630ffe0f1e6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561021457600080fd5b505af1158015610228573d6000803e3d6000fd5b5050505050565b61023a838383610683565b505050565b61023a83838361085d565b80156101bb57604080516001600160a01b038085166024808401919091526044808401869052845180850382018152606494850186526020810180516001600160e01b031663a9059cbb60e01b17815295516347b7819960e11b8152898516600482019081526000948201859052606093820193845282519682019690965281519196948b1695638f6f0332958b959489949293909260849091019190808383895b838110156103045781810151838201526020016102ec565b50505050905090810190601f1680156103315780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561035257600080fd5b505af1158015610366573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561038f57600080fd5b81019080805160405193929190846401000000008211156103af57600080fd5b9083019060208201858111156103c457600080fd5b82516401000000008111828201881017156103de57600080fd5b82525081516020918201929091019080838360005b8381101561040b5781810151838201526020016103f3565b50505050905090810190601f1680156104385780820380516001836020036101000a031916815260200191505b50604052505050505050505050565b80156101bb576000836001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156104a557600080fd5b505afa1580156104b9573d6000803e3d6000fd5b505050506040513d60208110156104cf57600080fd5b505190506104df8585858561024a565b6000846001600160a01b03166370a08231876040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561053757600080fd5b505afa15801561054b573d6000803e3d6000fd5b505050506040513d602081101561056157600080fd5b50519050610575828463ffffffff6108fe16565b81146105c8576040805162461bcd60e51b815260206004820152601d60248201527f496e76616c696420706f7374207472616e736665722062616c616e6365000000604482015290519081900360640190fd5b505050505050565b604080516001600160a01b038085166024808401919091526044808401869052845180850382018152606494850186526020810180516001600160e01b031663095ea7b360e01b17815295516347b7819960e11b8152898516600482019081526000948201859052606093820193845282519682019690965281519196948b1695638f6f0332958b95948994929390926084909101919080838389838110156103045781810151838201526020016102ec565b604080516004808252602480830184526020830180516001600160e01b0316630d0e30db60e41b17815293516347b7819960e11b81526001600160a01b03878116938201938452918101869052606060448201908152845160648301528451949592891694638f6f03329489948994899492936084909101919080838360005b8381101561071b578181015183820152602001610703565b50505050905090810190601f1680156107485780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561076957600080fd5b505af115801561077d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156107a657600080fd5b81019080805160405193929190846401000000008211156107c657600080fd5b9083019060208201858111156107db57600080fd5b82516401000000008111828201881017156107f557600080fd5b82525081516020918201929091019080838360005b8381101561082257818101518382015260200161080a565b50505050905090810190601f16801561084f5780820380516001836020036101000a031916815260200191505b506040525050505050505050565b604080516024808201849052825180830382018152604492830184526020810180516001600160e01b0316632e1a7d4d60e01b17815293516347b7819960e11b81526001600160a01b0387811660048301908152600094830185905260609583019586528351606484015283519396918a1695638f6f0332958a9590948994608490910191808383898381101561071b578181015183820152602001610703565b600061094083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610947565b9392505050565b600081848411156109d65760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099b578181015183820152602001610983565b50505050905090810190601f1680156109c85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fea2646970667358221220c8b2a71141ee1457d509dacc60271848352ad0283316cb00a1a06493f14a02fb64736f6c634300060a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c806317f98a7c14610067578063348a713e146100a557806377d3e702146100e1578063d6409d941461011d578063f40b334414610143578063fe05560f14610179575b600080fd5b6100a36004803603608081101561007d57600080fd5b506001600160a01b038135811691602081013582169160408201351690606001356101af565b005b6100a3600480360360808110156100bb57600080fd5b506001600160a01b038135811691602081013582169160408201351690606001356101c1565b6100a3600480360360808110156100f757600080fd5b506001600160a01b038135811691602081013582169160408201351690606001356101cd565b6100a36004803603602081101561013357600080fd5b50356001600160a01b03166101d9565b6100a36004803603606081101561015957600080fd5b506001600160a01b0381358116916020810135909116906040013561022f565b6100a36004803603606081101561018f57600080fd5b506001600160a01b0381358116916020810135909116906040013561023f565b6101bb8484848461024a565b50505050565b6101bb84848484610447565b6101bb848484846105d0565b806001600160a01b0316630ffe0f1e6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561021457600080fd5b505af1158015610228573d6000803e3d6000fd5b5050505050565b61023a838383610683565b505050565b61023a83838361085d565b80156101bb57604080516001600160a01b038085166024808401919091526044808401869052845180850382018152606494850186526020810180516001600160e01b031663a9059cbb60e01b17815295516347b7819960e11b8152898516600482019081526000948201859052606093820193845282519682019690965281519196948b1695638f6f0332958b959489949293909260849091019190808383895b838110156103045781810151838201526020016102ec565b50505050905090810190601f1680156103315780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561035257600080fd5b505af1158015610366573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561038f57600080fd5b81019080805160405193929190846401000000008211156103af57600080fd5b9083019060208201858111156103c457600080fd5b82516401000000008111828201881017156103de57600080fd5b82525081516020918201929091019080838360005b8381101561040b5781810151838201526020016103f3565b50505050905090810190601f1680156104385780820380516001836020036101000a031916815260200191505b50604052505050505050505050565b80156101bb576000836001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156104a557600080fd5b505afa1580156104b9573d6000803e3d6000fd5b505050506040513d60208110156104cf57600080fd5b505190506104df8585858561024a565b6000846001600160a01b03166370a08231876040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561053757600080fd5b505afa15801561054b573d6000803e3d6000fd5b505050506040513d602081101561056157600080fd5b50519050610575828463ffffffff6108fe16565b81146105c8576040805162461bcd60e51b815260206004820152601d60248201527f496e76616c696420706f7374207472616e736665722062616c616e6365000000604482015290519081900360640190fd5b505050505050565b604080516001600160a01b038085166024808401919091526044808401869052845180850382018152606494850186526020810180516001600160e01b031663095ea7b360e01b17815295516347b7819960e11b8152898516600482019081526000948201859052606093820193845282519682019690965281519196948b1695638f6f0332958b95948994929390926084909101919080838389838110156103045781810151838201526020016102ec565b604080516004808252602480830184526020830180516001600160e01b0316630d0e30db60e41b17815293516347b7819960e11b81526001600160a01b03878116938201938452918101869052606060448201908152845160648301528451949592891694638f6f03329489948994899492936084909101919080838360005b8381101561071b578181015183820152602001610703565b50505050905090810190601f1680156107485780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b15801561076957600080fd5b505af115801561077d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156107a657600080fd5b81019080805160405193929190846401000000008211156107c657600080fd5b9083019060208201858111156107db57600080fd5b82516401000000008111828201881017156107f557600080fd5b82525081516020918201929091019080838360005b8381101561082257818101518382015260200161080a565b50505050905090810190601f16801561084f5780820380516001836020036101000a031916815260200191505b506040525050505050505050565b604080516024808201849052825180830382018152604492830184526020810180516001600160e01b0316632e1a7d4d60e01b17815293516347b7819960e11b81526001600160a01b0387811660048301908152600094830185905260609583019586528351606484015283519396918a1695638f6f0332958a9590948994608490910191808383898381101561071b578181015183820152602001610703565b600061094083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610947565b9392505050565b600081848411156109d65760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099b578181015183820152602001610983565b50505050905090810190601f1680156109c85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fea2646970667358221220c8b2a71141ee1457d509dacc60271848352ad0283316cb00a1a06493f14a02fb64736f6c634300060a0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
