using Nethereum.ABI.FunctionEncoding.Attributes;

namespace Managing.ABI.GmxV2.ExchangeRouter.ContractDefinition
{
    public partial class CreateOrderParams : CreateOrderParamsBase
    {
    }

    public class CreateOrderParamsBase
    {
        [Parameter("tuple", "addresses", 1)] public virtual CreateOrderParamsAddresses Addresses { get; set; }
        [Parameter("tuple", "numbers", 2)] public virtual CreateOrderParamsNumbers Numbers { get; set; }
        [Parameter("uint8", "orderType", 3)] public virtual byte OrderType { get; set; }

        [Parameter("uint8", "decreasePositionSwapType", 4)]
        public virtual byte DecreasePositionSwapType { get; set; }

        [Parameter("bool", "isLong", 5)] public virtual bool IsLong { get; set; }

        [Parameter("bool", "shouldUnwrapNativeToken", 6)]
        public virtual bool ShouldUnwrapNativeToken { get; set; }

        [Parameter("bool", "autoCancel", 7)] public virtual bool AutoCancel { get; set; }

        [Parameter("bytes32", "referralCode", 8)]
        public virtual byte[] ReferralCode { get; set; }
    }
}