{
  "_format": "hh-sol-artifact-1",
  "contractName": "ConsiderationInterface",
  "sourceName": "seaport-types/src/interfaces/ConsiderationInterface.sol",
  "abi": [
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "offerer",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "zone",
              "type": "address"
            },
            {
              "components": [
                {
                  "internalType": "enum ItemType",
                  "name": "itemType",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "identifierOrCriteria",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "startAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "endAmount",
                  "type": "uint256"
                }
              ],
              "internalType": "struct OfferItem[]",
              "name": "offer",
              "type": "tuple[]"
            },
            {
              "components": [
                {
                  "internalType": "enum ItemType",
                  "name": "itemType",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "identifierOrCriteria",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "startAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "endAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "address payable",
                  "name": "recipient",
                  "type": "address"
                }
              ],
              "internalType": "struct ConsiderationItem[]",
              "name": "consideration",
              "type": "tuple[]"
            },
            {
              "internalType": "enum OrderType",
              "name": "orderType",
              "type": "uint8"
            },
            {
              "internalType": "uint256",
              "name": "startTime",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "endTime",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "zoneHash",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "salt",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "conduitKey",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "counter",
              "type": "uint256"
            }
          ],
          "internalType": "struct OrderComponents[]",
          "name": "orders",
          "type": "tuple[]"
        }
      ],
      "name": "cancel",
      "outputs": [
        {
          "internalType": "bool",
          "name": "cancelled",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "offerer",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "zone",
                  "type": "address"
                },
                {
                  "components": [
                    {
                      "internalType": "enum ItemType",
                      "name": "itemType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "address",
                      "name": "token",
                      "type": "address"
                    },
                    {
                      "internalType": "uint256",
                      "name": "identifierOrCriteria",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "startAmount",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "endAmount",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct OfferItem[]",
                  "name": "offer",
                  "type": "tuple[]"
                },
                {
                  "components": [
                    {
                      "internalType": "enum ItemType",
                      "name": "itemType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "address",
                      "name": "token",
                      "type": "address"
                    },
                    {
                      "internalType": "uint256",
                      "name": "identifierOrCriteria",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "startAmount",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "endAmount",
                      "type": "uint256"
                    },
                    {
                      "internalType": "address payable",
                      "name": "recipient",
                      "type": "address"
                    }
                  ],
                  "internalType": "struct ConsiderationItem[]",
                  "name": "consideration",
                  "type": "tuple[]"
                },
                {
                  "internalType": "enum OrderType",
                  "name": "orderType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint256",
                  "name": "startTime",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "endTime",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes32",
                  "name": "zoneHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint256",
                  "name": "salt",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes32",
                  "name": "conduitKey",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint256",
                  "name": "totalOriginalConsiderationItems",
                  "type": "uint256"
                }
              ],
              "internalType": "struct OrderParameters",
              "name": "parameters",
              "type": "tuple"
            },
            {
              "internalType": "uint120",
              "name": "numerator",
              "type": "uint120"
            },
            {
              "internalType": "uint120",
              "name": "denominator",
              "type": "uint120"
            },
            {
              "internalType": "bytes",
              "name": "signature",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "extraData",
              "type": "bytes"
            }
          ],
          "internalType": "struct AdvancedOrder",
          "name": "advancedOrder",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "orderIndex",
              "type": "uint256"
            },
            {
              "internalType": "enum Side",
              "name": "side",
              "type": "uint8"
            },
            {
              "internalType": "uint256",
              "name": "index",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "identifier",
              "type": "uint256"
            },
            {
              "internalType": "bytes32[]",
              "name": "criteriaProof",
              "type": "bytes32[]"
            }
          ],
          "internalType": "struct CriteriaResolver[]",
          "name": "criteriaResolvers",
          "type": "tuple[]"
        },
        {
          "internalType": "bytes32",
          "name": "fulfillerConduitKey",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        }
      ],
      "name": "fulfillAdvancedOrder",
      "outputs": [
        {
          "internalType": "bool",
          "name": "fulfilled",
          "type": "bool"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "offerer",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "zone",
                  "type": "address"
                },
                {
                  "components": [
                    {
                      "internalType": "enum ItemType",
                      "name": "itemType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "address",
                      "name": "token",
                      "type": "address"
                    },
                    {
                      "internalType": "uint256",
                      "name": "identifierOrCriteria",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "startAmount",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "endAmount",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct OfferItem[]",
                  "name": "offer",
                  "type": "tuple[]"
                },
                {
                  "components": [
                    {
                      "internalType": "enum ItemType",
                      "name": "itemType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "address",
                      "name": "token",
                      "type": "address"
                    },
                    {
                      "internalType": "uint256",
                      "name": "identifierOrCriteria",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "startAmount",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "endAmount",
                      "type": "uint256"
                    },
                    {
                      "internalType": "address payable",
                      "name": "recipient",
                      "type": "address"
                    }
                  ],
                  "internalType": "struct ConsiderationItem[]",
                  "name": "consideration",
                  "type": "tuple[]"
                },
                {
                  "internalType": "enum OrderType",
                  "name": "orderType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint256",
                  "name": "startTime",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "endTime",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes32",
                  "name": "zoneHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint256",
                  "name": "salt",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes32",
                  "name": "conduitKey",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint256",
                  "name": "totalOriginalConsiderationItems",
                  "type": "uint256"
                }
              ],
              "internalType": "struct OrderParameters",
              "name": "parameters",
              "type": "tuple"
            },
            {
              "internalType": "uint120",
              "name": "numerator",
              "type": "uint120"
            },
            {
              "internalType": "uint120",
              "name": "denominator",
              "type": "uint120"
            },
            {
              "internalType": "bytes",
              "name": "signature",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "extraData",
              "type": "bytes"
            }
          ],
          "internalType": "struct AdvancedOrder[]",
          "name": "advancedOrders",
          "type": "tuple[]"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "orderIndex",
              "type": "uint256"
            },
            {
              "internalType": "enum Side",
              "name": "side",
              "type": "uint8"
            },
            {
              "internalType": "uint256",
              "name": "index",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "identifier",
              "type": "uint256"
            },
            {
              "internalType": "bytes32[]",
              "name": "criteriaProof",
              "type": "bytes32[]"
            }
          ],
          "internalType": "struct CriteriaResolver[]",
          "name": "criteriaResolvers",
          "type": "tuple[]"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "orderIndex",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "itemIndex",
              "type": "uint256"
            }
          ],
          "internalType": "struct FulfillmentComponent[][]",
          "name": "offerFulfillments",
          "type": "tuple[][]"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "orderIndex",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "itemIndex",
              "type": "uint256"
            }
          ],
          "internalType": "struct FulfillmentComponent[][]",
          "name": "considerationFulfillments",
          "type": "tuple[][]"
        },
        {
          "internalType": "bytes32",
          "name": "fulfillerConduitKey",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "maximumFulfilled",
          "type": "uint256"
        }
      ],
      "name": "fulfillAvailableAdvancedOrders",
      "outputs": [
        {
          "internalType": "bool[]",
          "name": "availableOrders",
          "type": "bool[]"
        },
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "enum ItemType",
                  "name": "itemType",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "identifier",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                },
                {
                  "internalType": "address payable",
                  "name": "recipient",
                  "type": "address"
                }
              ],
              "internalType": "struct ReceivedItem",
              "name": "item",
              "type": "tuple"
            },
            {
              "internalType": "address",
              "name": "offerer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "conduitKey",
              "type": "bytes32"
            }
          ],
          "internalType": "struct Execution[]",
          "name": "executions",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "offerer",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "zone",
                  "type": "address"
                },
                {
                  "components": [
                    {
                      "internalType": "enum ItemType",
                      "name": "itemType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "address",
                      "name": "token",
                      "type": "address"
                    },
                    {
                      "internalType": "uint256",
                      "name": "identifierOrCriteria",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "startAmount",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "endAmount",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct OfferItem[]",
                  "name": "offer",
                  "type": "tuple[]"
                },
                {
                  "components": [
                    {
                      "internalType": "enum ItemType",
                      "name": "itemType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "address",
                      "name": "token",
                      "type": "address"
                    },
                    {
                      "internalType": "uint256",
                      "name": "identifierOrCriteria",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "startAmount",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "endAmount",
                      "type": "uint256"
                    },
                    {
                      "internalType": "address payable",
                      "name": "recipient",
                      "type": "address"
                    }
                  ],
                  "internalType": "struct ConsiderationItem[]",
                  "name": "consideration",
                  "type": "tuple[]"
                },
                {
                  "internalType": "enum OrderType",
                  "name": "orderType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint256",
                  "name": "startTime",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "endTime",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes32",
                  "name": "zoneHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint256",
                  "name": "salt",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes32",
                  "name": "conduitKey",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint256",
                  "name": "totalOriginalConsiderationItems",
                  "type": "uint256"
                }
              ],
              "internalType": "struct OrderParameters",
              "name": "parameters",
              "type": "tuple"
            },
            {
              "internalType": "bytes",
              "name": "signature",
              "type": "bytes"
            }
          ],
          "internalType": "struct Order[]",
          "name": "orders",
          "type": "tuple[]"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "orderIndex",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "itemIndex",
              "type": "uint256"
            }
          ],
          "internalType": "struct FulfillmentComponent[][]",
          "name": "offerFulfillments",
          "type": "tuple[][]"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "orderIndex",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "itemIndex",
              "type": "uint256"
            }
          ],
          "internalType": "struct FulfillmentComponent[][]",
          "name": "considerationFulfillments",
          "type": "tuple[][]"
        },
        {
          "internalType": "bytes32",
          "name": "fulfillerConduitKey",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "maximumFulfilled",
          "type": "uint256"
        }
      ],
      "name": "fulfillAvailableOrders",
      "outputs": [
        {
          "internalType": "bool[]",
          "name": "availableOrders",
          "type": "bool[]"
        },
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "enum ItemType",
                  "name": "itemType",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "identifier",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                },
                {
                  "internalType": "address payable",
                  "name": "recipient",
                  "type": "address"
                }
              ],
              "internalType": "struct ReceivedItem",
              "name": "item",
              "type": "tuple"
            },
            {
              "internalType": "address",
              "name": "offerer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "conduitKey",
              "type": "bytes32"
            }
          ],
          "internalType": "struct Execution[]",
          "name": "executions",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "considerationToken",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "considerationIdentifier",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "considerationAmount",
              "type": "uint256"
            },
            {
              "internalType": "address payable",
              "name": "offerer",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "zone",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "offerToken",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "offerIdentifier",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "offerAmount",
              "type": "uint256"
            },
            {
              "internalType": "enum BasicOrderType",
              "name": "basicOrderType",
              "type": "uint8"
            },
            {
              "internalType": "uint256",
              "name": "startTime",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "endTime",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "zoneHash",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "salt",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "offererConduitKey",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "fulfillerConduitKey",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "totalOriginalAdditionalRecipients",
              "type": "uint256"
            },
            {
              "components": [
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                },
                {
                  "internalType": "address payable",
                  "name": "recipient",
                  "type": "address"
                }
              ],
              "internalType": "struct AdditionalRecipient[]",
              "name": "additionalRecipients",
              "type": "tuple[]"
            },
            {
              "internalType": "bytes",
              "name": "signature",
              "type": "bytes"
            }
          ],
          "internalType": "struct BasicOrderParameters",
          "name": "parameters",
          "type": "tuple"
        }
      ],
      "name": "fulfillBasicOrder",
      "outputs": [
        {
          "internalType": "bool",
          "name": "fulfilled",
          "type": "bool"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "considerationToken",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "considerationIdentifier",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "considerationAmount",
              "type": "uint256"
            },
            {
              "internalType": "address payable",
              "name": "offerer",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "zone",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "offerToken",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "offerIdentifier",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "offerAmount",
              "type": "uint256"
            },
            {
              "internalType": "enum BasicOrderType",
              "name": "basicOrderType",
              "type": "uint8"
            },
            {
              "internalType": "uint256",
              "name": "startTime",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "endTime",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "zoneHash",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "salt",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "offererConduitKey",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "fulfillerConduitKey",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "totalOriginalAdditionalRecipients",
              "type": "uint256"
            },
            {
              "components": [
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                },
                {
                  "internalType": "address payable",
                  "name": "recipient",
                  "type": "address"
                }
              ],
              "internalType": "struct AdditionalRecipient[]",
              "name": "additionalRecipients",
              "type": "tuple[]"
            },
            {
              "internalType": "bytes",
              "name": "signature",
              "type": "bytes"
            }
          ],
          "internalType": "struct BasicOrderParameters",
          "name": "parameters",
          "type": "tuple"
        }
      ],
      "name": "fulfillBasicOrder_efficient_6GL6yc",
      "outputs": [
        {
          "internalType": "bool",
          "name": "fulfilled",
          "type": "bool"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "offerer",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "zone",
                  "type": "address"
                },
                {
                  "components": [
                    {
                      "internalType": "enum ItemType",
                      "name": "itemType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "address",
                      "name": "token",
                      "type": "address"
                    },
                    {
                      "internalType": "uint256",
                      "name": "identifierOrCriteria",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "startAmount",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "endAmount",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct OfferItem[]",
                  "name": "offer",
                  "type": "tuple[]"
                },
                {
                  "components": [
                    {
                      "internalType": "enum ItemType",
                      "name": "itemType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "address",
                      "name": "token",
                      "type": "address"
                    },
                    {
                      "internalType": "uint256",
                      "name": "identifierOrCriteria",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "startAmount",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "endAmount",
                      "type": "uint256"
                    },
                    {
                      "internalType": "address payable",
                      "name": "recipient",
                      "type": "address"
                    }
                  ],
                  "internalType": "struct ConsiderationItem[]",
                  "name": "consideration",
                  "type": "tuple[]"
                },
                {
                  "internalType": "enum OrderType",
                  "name": "orderType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint256",
                  "name": "startTime",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "endTime",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes32",
                  "name": "zoneHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint256",
                  "name": "salt",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes32",
                  "name": "conduitKey",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint256",
                  "name": "totalOriginalConsiderationItems",
                  "type": "uint256"
                }
              ],
              "internalType": "struct OrderParameters",
              "name": "parameters",
              "type": "tuple"
            },
            {
              "internalType": "bytes",
              "name": "signature",
              "type": "bytes"
            }
          ],
          "internalType": "struct Order",
          "name": "order",
          "type": "tuple"
        },
        {
          "internalType": "bytes32",
          "name": "fulfillerConduitKey",
          "type": "bytes32"
        }
      ],
      "name": "fulfillOrder",
      "outputs": [
        {
          "internalType": "bool",
          "name": "fulfilled",
          "type": "bool"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "contractOfferer",
          "type": "address"
        }
      ],
      "name": "getContractOffererNonce",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "nonce",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "offerer",
          "type": "address"
        }
      ],
      "name": "getCounter",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "counter",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "offerer",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "zone",
              "type": "address"
            },
            {
              "components": [
                {
                  "internalType": "enum ItemType",
                  "name": "itemType",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "identifierOrCriteria",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "startAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "endAmount",
                  "type": "uint256"
                }
              ],
              "internalType": "struct OfferItem[]",
              "name": "offer",
              "type": "tuple[]"
            },
            {
              "components": [
                {
                  "internalType": "enum ItemType",
                  "name": "itemType",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "identifierOrCriteria",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "startAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "endAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "address payable",
                  "name": "recipient",
                  "type": "address"
                }
              ],
              "internalType": "struct ConsiderationItem[]",
              "name": "consideration",
              "type": "tuple[]"
            },
            {
              "internalType": "enum OrderType",
              "name": "orderType",
              "type": "uint8"
            },
            {
              "internalType": "uint256",
              "name": "startTime",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "endTime",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "zoneHash",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "salt",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "conduitKey",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "counter",
              "type": "uint256"
            }
          ],
          "internalType": "struct OrderComponents",
          "name": "order",
          "type": "tuple"
        }
      ],
      "name": "getOrderHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "orderHash",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "orderHash",
          "type": "bytes32"
        }
      ],
      "name": "getOrderStatus",
      "outputs": [
        {
          "internalType": "bool",
          "name": "isValidated",
          "type": "bool"
        },
        {
          "internalType": "bool",
          "name": "isCancelled",
          "type": "bool"
        },
        {
          "internalType": "uint256",
          "name": "totalFilled",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "totalSize",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "incrementCounter",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "newCounter",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "information",
      "outputs": [
        {
          "internalType": "string",
          "name": "version",
          "type": "string"
        },
        {
          "internalType": "bytes32",
          "name": "domainSeparator",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "conduitController",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "offerer",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "zone",
                  "type": "address"
                },
                {
                  "components": [
                    {
                      "internalType": "enum ItemType",
                      "name": "itemType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "address",
                      "name": "token",
                      "type": "address"
                    },
                    {
                      "internalType": "uint256",
                      "name": "identifierOrCriteria",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "startAmount",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "endAmount",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct OfferItem[]",
                  "name": "offer",
                  "type": "tuple[]"
                },
                {
                  "components": [
                    {
                      "internalType": "enum ItemType",
                      "name": "itemType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "address",
                      "name": "token",
                      "type": "address"
                    },
                    {
                      "internalType": "uint256",
                      "name": "identifierOrCriteria",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "startAmount",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "endAmount",
                      "type": "uint256"
                    },
                    {
                      "internalType": "address payable",
                      "name": "recipient",
                      "type": "address"
                    }
                  ],
                  "internalType": "struct ConsiderationItem[]",
                  "name": "consideration",
                  "type": "tuple[]"
                },
                {
                  "internalType": "enum OrderType",
                  "name": "orderType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint256",
                  "name": "startTime",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "endTime",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes32",
                  "name": "zoneHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint256",
                  "name": "salt",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes32",
                  "name": "conduitKey",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint256",
                  "name": "totalOriginalConsiderationItems",
                  "type": "uint256"
                }
              ],
              "internalType": "struct OrderParameters",
              "name": "parameters",
              "type": "tuple"
            },
            {
              "internalType": "uint120",
              "name": "numerator",
              "type": "uint120"
            },
            {
              "internalType": "uint120",
              "name": "denominator",
              "type": "uint120"
            },
            {
              "internalType": "bytes",
              "name": "signature",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "extraData",
              "type": "bytes"
            }
          ],
          "internalType": "struct AdvancedOrder[]",
          "name": "orders",
          "type": "tuple[]"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "orderIndex",
              "type": "uint256"
            },
            {
              "internalType": "enum Side",
              "name": "side",
              "type": "uint8"
            },
            {
              "internalType": "uint256",
              "name": "index",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "identifier",
              "type": "uint256"
            },
            {
              "internalType": "bytes32[]",
              "name": "criteriaProof",
              "type": "bytes32[]"
            }
          ],
          "internalType": "struct CriteriaResolver[]",
          "name": "criteriaResolvers",
          "type": "tuple[]"
        },
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "uint256",
                  "name": "orderIndex",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "itemIndex",
                  "type": "uint256"
                }
              ],
              "internalType": "struct FulfillmentComponent[]",
              "name": "offerComponents",
              "type": "tuple[]"
            },
            {
              "components": [
                {
                  "internalType": "uint256",
                  "name": "orderIndex",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "itemIndex",
                  "type": "uint256"
                }
              ],
              "internalType": "struct FulfillmentComponent[]",
              "name": "considerationComponents",
              "type": "tuple[]"
            }
          ],
          "internalType": "struct Fulfillment[]",
          "name": "fulfillments",
          "type": "tuple[]"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        }
      ],
      "name": "matchAdvancedOrders",
      "outputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "enum ItemType",
                  "name": "itemType",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "identifier",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                },
                {
                  "internalType": "address payable",
                  "name": "recipient",
                  "type": "address"
                }
              ],
              "internalType": "struct ReceivedItem",
              "name": "item",
              "type": "tuple"
            },
            {
              "internalType": "address",
              "name": "offerer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "conduitKey",
              "type": "bytes32"
            }
          ],
          "internalType": "struct Execution[]",
          "name": "executions",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "offerer",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "zone",
                  "type": "address"
                },
                {
                  "components": [
                    {
                      "internalType": "enum ItemType",
                      "name": "itemType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "address",
                      "name": "token",
                      "type": "address"
                    },
                    {
                      "internalType": "uint256",
                      "name": "identifierOrCriteria",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "startAmount",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "endAmount",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct OfferItem[]",
                  "name": "offer",
                  "type": "tuple[]"
                },
                {
                  "components": [
                    {
                      "internalType": "enum ItemType",
                      "name": "itemType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "address",
                      "name": "token",
                      "type": "address"
                    },
                    {
                      "internalType": "uint256",
                      "name": "identifierOrCriteria",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "startAmount",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "endAmount",
                      "type": "uint256"
                    },
                    {
                      "internalType": "address payable",
                      "name": "recipient",
                      "type": "address"
                    }
                  ],
                  "internalType": "struct ConsiderationItem[]",
                  "name": "consideration",
                  "type": "tuple[]"
                },
                {
                  "internalType": "enum OrderType",
                  "name": "orderType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint256",
                  "name": "startTime",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "endTime",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes32",
                  "name": "zoneHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint256",
                  "name": "salt",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes32",
                  "name": "conduitKey",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint256",
                  "name": "totalOriginalConsiderationItems",
                  "type": "uint256"
                }
              ],
              "internalType": "struct OrderParameters",
              "name": "parameters",
              "type": "tuple"
            },
            {
              "internalType": "bytes",
              "name": "signature",
              "type": "bytes"
            }
          ],
          "internalType": "struct Order[]",
          "name": "orders",
          "type": "tuple[]"
        },
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "uint256",
                  "name": "orderIndex",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "itemIndex",
                  "type": "uint256"
                }
              ],
              "internalType": "struct FulfillmentComponent[]",
              "name": "offerComponents",
              "type": "tuple[]"
            },
            {
              "components": [
                {
                  "internalType": "uint256",
                  "name": "orderIndex",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "itemIndex",
                  "type": "uint256"
                }
              ],
              "internalType": "struct FulfillmentComponent[]",
              "name": "considerationComponents",
              "type": "tuple[]"
            }
          ],
          "internalType": "struct Fulfillment[]",
          "name": "fulfillments",
          "type": "tuple[]"
        }
      ],
      "name": "matchOrders",
      "outputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "enum ItemType",
                  "name": "itemType",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "identifier",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                },
                {
                  "internalType": "address payable",
                  "name": "recipient",
                  "type": "address"
                }
              ],
              "internalType": "struct ReceivedItem",
              "name": "item",
              "type": "tuple"
            },
            {
              "internalType": "address",
              "name": "offerer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "conduitKey",
              "type": "bytes32"
            }
          ],
          "internalType": "struct Execution[]",
          "name": "executions",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "contractName",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "offerer",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "zone",
                  "type": "address"
                },
                {
                  "components": [
                    {
                      "internalType": "enum ItemType",
                      "name": "itemType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "address",
                      "name": "token",
                      "type": "address"
                    },
                    {
                      "internalType": "uint256",
                      "name": "identifierOrCriteria",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "startAmount",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "endAmount",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct OfferItem[]",
                  "name": "offer",
                  "type": "tuple[]"
                },
                {
                  "components": [
                    {
                      "internalType": "enum ItemType",
                      "name": "itemType",
                      "type": "uint8"
                    },
                    {
                      "internalType": "address",
                      "name": "token",
                      "type": "address"
                    },
                    {
                      "internalType": "uint256",
                      "name": "identifierOrCriteria",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "startAmount",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "endAmount",
                      "type": "uint256"
                    },
                    {
                      "internalType": "address payable",
                      "name": "recipient",
                      "type": "address"
                    }
                  ],
                  "internalType": "struct ConsiderationItem[]",
                  "name": "consideration",
                  "type": "tuple[]"
                },
                {
                  "internalType": "enum OrderType",
                  "name": "orderType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint256",
                  "name": "startTime",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "endTime",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes32",
                  "name": "zoneHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint256",
                  "name": "salt",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes32",
                  "name": "conduitKey",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint256",
                  "name": "totalOriginalConsiderationItems",
                  "type": "uint256"
                }
              ],
              "internalType": "struct OrderParameters",
              "name": "parameters",
              "type": "tuple"
            },
            {
              "internalType": "bytes",
              "name": "signature",
              "type": "bytes"
            }
          ],
          "internalType": "struct Order[]",
          "name": "orders",
          "type": "tuple[]"
        }
      ],
      "name": "validate",
      "outputs": [
        {
          "internalType": "bool",
          "name": "validated",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
