// Copyright (c) 2024-NOW imzhongqi <imzhongqi@gmail.com>
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of
// this software and associated documentation files (the "Software"), to deal in
// the Software without restriction, including without limitation the rights to
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
// the Software, and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

package dex

import (
	"context"
	"strconv"
)

type ChainInfo struct {
	ChainId             int64  `json:"chainId"`
	ChainName           string `json:"chainName"`
	DexTokenApproveAddr string `json:"dexTokenApproveAddress"`
}

// Get Supported Chains
func (d *DexAPI) GetSupportedChains(ctx context.Context, chainId ...int64) (result []ChainInfo, err error) {
	params := map[string]string{}
	if len(chainId) > 0 && chainId[0] != 0 {
		params["chainId"] = strconv.FormatInt(chainId[0], 10)
	}
	err = d.tr.Get(ctx, "/api/v5/dex/aggregator/supported/chain", params, &result)
	return
}
