github.com/InjectiveLabs/sdk-go@v1.53.0/client/chain/markets_assistant_test_support.go (about)

     1  package chain
     2  
     3  import (
     4  	derivativeExchangePB "github.com/InjectiveLabs/sdk-go/exchange/derivative_exchange_rpc/pb"
     5  	spotExchangePB "github.com/InjectiveLabs/sdk-go/exchange/spot_exchange_rpc/pb"
     6  	"github.com/cosmos/cosmos-sdk/x/bank/types"
     7  )
     8  
     9  func createINJTokenMeta() spotExchangePB.TokenMeta {
    10  	return spotExchangePB.TokenMeta{
    11  		Name:      "Injective Protocol",
    12  		Address:   "0xe28b3B32B6c345A34Ff64674606124Dd5Aceca30",
    13  		Symbol:    "INJ",
    14  		Logo:      "https://static.alchemyapi.io/images/assets/7226.png",
    15  		Decimals:  18,
    16  		UpdatedAt: 1681739137644,
    17  	}
    18  }
    19  
    20  func createAPETokenMeta() spotExchangePB.TokenMeta {
    21  	return spotExchangePB.TokenMeta{
    22  		Name:      "APE",
    23  		Address:   "0x0000000000000000000000000000000000000000",
    24  		Symbol:    "APE",
    25  		Logo:      "https://assets.coingecko.com/coins/images/24383/small/apecoin.jpg?1647476455",
    26  		Decimals:  18,
    27  		UpdatedAt: 1681739137646,
    28  	}
    29  }
    30  
    31  func createUSDTTokenMeta() spotExchangePB.TokenMeta {
    32  	return spotExchangePB.TokenMeta{
    33  		Name:      "USDT",
    34  		Address:   "0x0000000000000000000000000000000000000000",
    35  		Symbol:    "USDT",
    36  		Logo:      "https://static.alchemyapi.io/images/assets/825.png",
    37  		Decimals:  6,
    38  		UpdatedAt: 1681739137645,
    39  	}
    40  }
    41  
    42  func createUSDTPerpTokenMeta() derivativeExchangePB.TokenMeta {
    43  	return derivativeExchangePB.TokenMeta{
    44  		Name:      "Tether",
    45  		Address:   "0xdAC17F958D2ee523a2206206994597C13D831ec7",
    46  		Symbol:    "USDTPerp",
    47  		Logo:      "https://static.alchemyapi.io/images/assets/825.png",
    48  		Decimals:  6,
    49  		UpdatedAt: 1683929869866,
    50  	}
    51  }
    52  
    53  func createINJUSDTSpotMarketInfo() *spotExchangePB.SpotMarketInfo {
    54  	injTokenMeta := createINJTokenMeta()
    55  	usdtTokenMeta := createUSDTTokenMeta()
    56  	marketInfo := spotExchangePB.SpotMarketInfo{
    57  		MarketId:            "0x7a57e705bb4e09c88aecfc295569481dbf2fe1d5efe364651fbe72385938e9b0",
    58  		MarketStatus:        "active",
    59  		Ticker:              "INJ/USDT",
    60  		BaseDenom:           "inj",
    61  		BaseTokenMeta:       &injTokenMeta,
    62  		QuoteDenom:          "peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5",
    63  		QuoteTokenMeta:      &usdtTokenMeta,
    64  		MakerFeeRate:        "-0.0001",
    65  		TakerFeeRate:        "0.001",
    66  		ServiceProviderFee:  "0.4",
    67  		MinPriceTickSize:    "0.000000000000001",
    68  		MinQuantityTickSize: "1000000000000000",
    69  		MinNotional:         "1000000",
    70  	}
    71  
    72  	return &marketInfo
    73  }
    74  
    75  func createAPEUSDTSpotMarketInfo() *spotExchangePB.SpotMarketInfo {
    76  	apeTokenMeta := createAPETokenMeta()
    77  	usdtTokenMeta := createUSDTTokenMeta()
    78  	marketInfo := spotExchangePB.SpotMarketInfo{
    79  		MarketId:            "0x8b67e705bb4e09c88aecfc295569481dbf2fe1d5efe364651fbe72385938e000",
    80  		MarketStatus:        "active",
    81  		Ticker:              "APE/USDT",
    82  		BaseDenom:           "peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7",
    83  		BaseTokenMeta:       &apeTokenMeta,
    84  		QuoteDenom:          "factory/peggy0x87aB3B4C8661e07D6372361211B96ed4Dc300000",
    85  		QuoteTokenMeta:      &usdtTokenMeta,
    86  		MakerFeeRate:        "-0.0001",
    87  		TakerFeeRate:        "0.001",
    88  		ServiceProviderFee:  "0.4",
    89  		MinPriceTickSize:    "0.000000000000001",
    90  		MinQuantityTickSize: "1000000000000000",
    91  		MinNotional:         "1000000",
    92  	}
    93  
    94  	return &marketInfo
    95  }
    96  
    97  func createBTCUSDTDerivativeMarketInfo() *derivativeExchangePB.DerivativeMarketInfo {
    98  	usdtPerpTokenMeta := createUSDTPerpTokenMeta()
    99  
   100  	perpetualMarketInfo := derivativeExchangePB.PerpetualMarketInfo{
   101  		HourlyFundingRateCap: "0.0000625",
   102  		HourlyInterestRate:   "0.00000416666",
   103  		NextFundingTimestamp: 1684764000,
   104  		FundingInterval:      3600,
   105  	}
   106  
   107  	perpetualmarketFunding := derivativeExchangePB.PerpetualMarketFunding{
   108  		CumulativeFunding: "6880500093.266083891331674194",
   109  		CumulativePrice:   "-0.952642601240470199",
   110  		LastTimestamp:     1684763442,
   111  	}
   112  
   113  	marketInfo := derivativeExchangePB.DerivativeMarketInfo{
   114  		MarketId:               "0x4ca0f92fc28be0c9761326016b5a1a2177dd6375558365116b5bdda9abc229ce",
   115  		MarketStatus:           "active",
   116  		Ticker:                 "BTC/USDT PERP",
   117  		OracleBase:             "BTC",
   118  		OracleQuote:            "USDT",
   119  		OracleType:             "bandibc",
   120  		OracleScaleFactor:      6,
   121  		InitialMarginRatio:     "0.095",
   122  		MaintenanceMarginRatio: "0.025",
   123  		QuoteDenom:             "peggy0xdAC17F958D2ee523a2206206994597C13D831ec7",
   124  		QuoteTokenMeta:         &usdtPerpTokenMeta,
   125  		MakerFeeRate:           "-0.0001",
   126  		TakerFeeRate:           "0.001",
   127  		ServiceProviderFee:     "0.4",
   128  		IsPerpetual:            true,
   129  		MinPriceTickSize:       "1000000",
   130  		MinQuantityTickSize:    "0.0001",
   131  		PerpetualMarketInfo:    &perpetualMarketInfo,
   132  		PerpetualMarketFunding: &perpetualmarketFunding,
   133  		MinNotional:            "1000000",
   134  	}
   135  
   136  	return &marketInfo
   137  }
   138  
   139  func createSmartDenomMetadata() types.Metadata {
   140  	firstDenomUnit := types.DenomUnit{
   141  		Denom:    "factory/inj105ujajd95znwjvcy3hwcz80pgy8tc6v77spur0/SMART",
   142  		Exponent: 0,
   143  		Aliases:  []string{"microSMART"},
   144  	}
   145  	secondDenomUnit := types.DenomUnit{
   146  		Denom:    "SMART",
   147  		Exponent: 6,
   148  		Aliases:  []string{"SMART"},
   149  	}
   150  	metadata := types.Metadata{
   151  		Description: "SMART",
   152  		DenomUnits:  []*types.DenomUnit{&firstDenomUnit, &secondDenomUnit},
   153  		Base:        "factory/inj105ujajd95znwjvcy3hwcz80pgy8tc6v77spur0/SMART",
   154  		Display:     "SMART",
   155  		Name:        "SMART",
   156  		Symbol:      "SMART",
   157  		URI:         "https://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Flag_of_the_People%27s_Republic_of_China.svg/2560px-Flag_of_the_People%27s_Republic_of_China.svg.png",
   158  		URIHash:     "",
   159  	}
   160  
   161  	return metadata
   162  }