-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add covalent api service code and tests
- Loading branch information
Showing
31 changed files
with
12,478 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,21 +1,62 @@ | ||
# If you prefer the allow list template instead of the deny list, see community template: | ||
# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore | ||
# | ||
# Binaries for programs and plugins | ||
# Binaries and objects # | ||
####################### | ||
*.exe | ||
*.exe~ | ||
*.dll | ||
*.so | ||
*.dylib | ||
|
||
# Test binary, built with `go test -c` | ||
*.test | ||
|
||
# Output of the go coverage tool, specifically when used with LiteIDE | ||
*.out | ||
*.o | ||
*.a | ||
*.obj | ||
*.swp | ||
*.lock | ||
*.DS_Store | ||
*.vscode | ||
# Compiled Object files, Static and Dynamic libs (Shared Objects) # | ||
*.o | ||
*.a | ||
*.so | ||
|
||
# Folders to ignore # | ||
##################### | ||
/vendor/ | ||
/node_modules/ | ||
|
||
# Dependency directories (remove the line below if you're using Go modules) # | ||
/Godeps/ | ||
|
||
# Output of the Go coverage tool # | ||
coverage.txt | ||
|
||
# External tool configuration files # | ||
.idea/ | ||
*.swp | ||
*.swo | ||
*.tmp | ||
*.swp | ||
*.swo | ||
.vscode/ | ||
|
||
# Project-local glide cache, RE: https://github.com/Masterminds/glide/issues/736 # | ||
.glide/ | ||
|
||
# Go build directory # | ||
bin/ | ||
|
||
# Go Module files # | ||
go.sum | ||
go.mod | ||
|
||
# Log files # | ||
*.log | ||
|
||
# Microsoft Office temporary files # | ||
~$* | ||
|
||
# Dependency directories (remove the comment below to include it) | ||
# vendor/ | ||
# JetBrains IDEs # | ||
.idea/ | ||
|
||
# Go workspace file | ||
go.work | ||
# Vscode # | ||
.vscode/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,225 @@ | ||
package chains | ||
|
||
type Chain string | ||
|
||
const ( | ||
BtcMainnet Chain = "btc-mainnet" | ||
EthMainnet Chain = "eth-mainnet" | ||
MaticMainnet Chain = "matic-mainnet" | ||
BscMainnet Chain = "bsc-mainnet" | ||
AvalancheMainnet Chain = "avalanche-mainnet" | ||
OptimismMainnet Chain = "optimism-mainnet" | ||
FantomMainnet Chain = "fantom-mainnet" | ||
MoonbeamMainnet Chain = "moonbeam-mainnet" | ||
MoonbeamMoonriver Chain = "moonbeam-moonriver" | ||
RskMainnet Chain = "rsk-mainnet" | ||
ArbitrumMainnet Chain = "arbitrum-mainnet" | ||
PalmMainnet Chain = "palm-mainnet" | ||
KlaytnMainnet Chain = "klaytn-mainnet" | ||
HecoMainnet Chain = "heco-mainnet" | ||
NervosGodwokenMainnet Chain = "nervos-godwoken-mainnet" | ||
AxieMainnet Chain = "axie-mainnet" | ||
EvmosMainnet Chain = "evmos-mainnet" | ||
AstarMainnet Chain = "astar-mainnet" | ||
IotexMainnet Chain = "iotex-mainnet" | ||
HarmonyMainnet Chain = "harmony-mainnet" | ||
CronosMainnet Chain = "cronos-mainnet" | ||
AuroraMainnet Chain = "aurora-mainnet" | ||
EmeraldParatimeMainnet Chain = "emerald-paratime-mainnet" | ||
BobaMainnet Chain = "boba-mainnet" | ||
EthGoerli Chain = "eth-goerli" | ||
MaticMumbai Chain = "matic-mumbai" | ||
AvalancheTestnet Chain = "avalanche-testnet" | ||
BscTestnet Chain = "bsc-testnet" | ||
MoonbeamMoonbaseAlpha Chain = "moonbeam-moonbase-alpha" | ||
RskTestnet Chain = "rsk-testnet" | ||
ArbitrumGoerli Chain = "arbitrum-goerli" | ||
FantomTestnet Chain = "fantom-testnet" | ||
PalmTestnet Chain = "palm-testnet" | ||
HecoTestnet Chain = "heco-testnet" | ||
NervosGodwokenTestnet Chain = "nervos-godwoken-testnet" | ||
EvmosTestnet Chain = "evmos-testnet" | ||
IotexTestnet Chain = "iotex-testnet" | ||
HarmonyTestnet Chain = "harmony-testnet" | ||
AuroraTestnet Chain = "aurora-testnet" | ||
ScrollL2Testnet Chain = "scroll-l2-testnet" | ||
ScrollSepoliaTestnet Chain = "scroll-sepolia-testnet" | ||
CovalentInternalNetworkV1 Chain = "covalent-internal-network-v1" | ||
DefiKingdomsMainnet Chain = "defi-kingdoms-mainnet" | ||
SwimmerMainnet Chain = "swimmer-mainnet" | ||
BobaAvalancheMainnet Chain = "boba-avalanche-mainnet" | ||
BobaBobabeamMainnet Chain = "boba-bobabeam-mainnet" | ||
BobaBnbMainnet Chain = "boba-bnb-mainnet" | ||
BobaRinkebyTestnet Chain = "boba-rinkeby-testnet" | ||
BobaBobabaseTestnet Chain = "boba-bobabase-testnet" | ||
BobaBnbTestnet Chain = "boba-bnb-testnet" | ||
BobaAvalancheTestnet Chain = "boba-avalanche-testnet" | ||
KlaytnTestnet Chain = "klaytn-testnet" | ||
GatherMainnet Chain = "gather-mainnet" | ||
GatherTestnet Chain = "gather-testnet" | ||
SkaleCalypso Chain = "skale-calypso" | ||
SkaleMainnet Chain = "skale-mainnet" | ||
SkaleRazor Chain = "skale-razor" | ||
AvalancheDexalotMainnet Chain = "avalanche-dexalot-mainnet" | ||
SkaleOmnus Chain = "skale-omnus" | ||
AvalancheDexalotTestnet Chain = "avalanche-dexalot-testnet" | ||
AstarShibuya Chain = "astar-shibuya" | ||
CronosTestnet Chain = "cronos-testnet" | ||
DefiKingdomsTestnet Chain = "defi-kingdoms-testnet" | ||
MetisMainnet Chain = "metis-mainnet" | ||
MetisStardust Chain = "metis-stardust" | ||
MilkomedaA1Mainnet Chain = "milkomeda-a1-mainnet" | ||
MilkomedaA1Devnet Chain = "milkomeda-a1-devnet" | ||
MilkomedaC1Mainnet Chain = "milkomeda-c1-mainnet" | ||
MilkomedaC1Devnet Chain = "milkomeda-c1-devnet" | ||
SwimmerTestnet Chain = "swimmer-testnet" | ||
SolanaMainnet Chain = "solana-mainnet" | ||
SkaleEuropa Chain = "skale-europa" | ||
MeterMainnet Chain = "meter-mainnet" | ||
MeterTestnet Chain = "meter-testnet" | ||
SkaleExorde Chain = "skale-exorde" | ||
BobaGoerli Chain = "boba-goerli" | ||
NeonTestnet Chain = "neon-testnet" | ||
SkaleStagingUum Chain = "skale-staging-uum" | ||
SkaleStagingLcc Chain = "skale-staging-lcc" | ||
ArbitrumNovaMainnet Chain = "arbitrum-nova-mainnet" | ||
CantoMainnet Chain = "canto-mainnet" | ||
BittorrentMainnet Chain = "bittorrent-mainnet" | ||
BittorrentTestnet Chain = "bittorrent-testnet" | ||
FlarenetworksFlareMainnet Chain = "flarenetworks-flare-mainnet" | ||
FlarenetworksFlareTestnet Chain = "flarenetworks-flare-testnet" | ||
FlarenetworksCanaryMainnet Chain = "flarenetworks-canary-mainnet" | ||
FlarenetworksCanaryTestnet Chain = "flarenetworks-canary-testnet" | ||
KccMainnet Chain = "kcc-mainnet" | ||
KccTestnet Chain = "kcc-testnet" | ||
PolygonZkevmTestnet Chain = "polygon-zkevm-testnet" | ||
LineaTestnet Chain = "linea-testnet" | ||
BaseTestnet Chain = "base-testnet" | ||
MantleTestnet Chain = "mantle-testnet" | ||
ScrollAlphaTestnet Chain = "scroll-alpha-testnet" | ||
OasysMainnet Chain = "oasys-mainnet" | ||
OasysTestnet Chain = "oasys-testnet" | ||
FindoraMainnet Chain = "findora-mainnet" | ||
FindoraForgeTestnet Chain = "findora-forge-testnet" | ||
SxMainnet Chain = "sx-mainnet" | ||
OasisSapphireMainnet Chain = "oasis-sapphire-mainnet" | ||
OasisSapphireTestnet Chain = "oasis-sapphire-testnet" | ||
OptimismGoerli Chain = "optimism-goerli" | ||
PolygonZkevmMainnet Chain = "polygon-zkevm-mainnet" | ||
HorizenYumaTestnet Chain = "horizen-yuma-testnet" | ||
ClvParachain Chain = "clv-parachain" | ||
EnergiMainnet Chain = "energi-mainnet" | ||
EnergiTestnet Chain = "energi-testnet" | ||
HorizenGobiTestnet Chain = "horizen-gobi-testnet" | ||
EthSepolia Chain = "eth-sepolia" | ||
SkaleNebula Chain = "skale-nebula" | ||
SkaleBattleground Chain = "skale-battleground" | ||
AvalancheMeldTestnet Chain = "avalanche-meld-testnet" | ||
GunzillaTestnet Chain = "gunzilla-testnet" | ||
UltronMainnet Chain = "ultron-mainnet" | ||
UltronTestnet Chain = "ultron-testnet" | ||
ZoraMainnet Chain = "zora-mainnet" | ||
ZoraGoerliTestnet Chain = "zora-goerli-testnet" | ||
NeonMainnet Chain = "neon-mainnet" | ||
AvalancheShrapnelMainnet Chain = "avalanche-shrapnel-mainnet" | ||
BaseMainnet Chain = "base-mainnet" | ||
MantleMainnet Chain = "mantle-mainnet" | ||
AvalancheLocoLegendsMainnet Chain = "avalanche-loco-legends-mainnet" | ||
LineaMainnet Chain = "linea-mainnet" | ||
HorizenEonMainnet Chain = "horizen-eon-mainnet" | ||
AvalancheNumbers Chain = "avalanche-numbers" | ||
AvalancheDos Chain = "avalanche-dos" | ||
AvalancheStepNetwork Chain = "avalanche-step-network" | ||
AvalancheXplus Chain = "avalanche-xplus" | ||
AvalancheXanachain Chain = "avalanche-xanachain" | ||
AvalancheMeldMainnet Chain = "avalanche-meld-mainnet" | ||
OpsidePublicZkevm Chain = "opside-public-zkevm" | ||
OpsideLawChain Chain = "opside-law-chain" | ||
AvalancheShrapnelTestnet Chain = "avalanche-shrapnel-testnet" | ||
AvalancheLocoLegendsTestnet Chain = "avalanche-loco-legends-testnet" | ||
OpsideCbZkevm Chain = "opside-cb-zkevm" | ||
OpsidePreAlphaTestnet Chain = "opside-pre-alpha-testnet" | ||
OpsideEra7 Chain = "opside-era7" | ||
OpsideXthrill Chain = "opside-xthrill" | ||
ZksyncMainnet Chain = "zksync-mainnet" | ||
MetisTestnet Chain = "metis-testnet" | ||
ZksyncTestnet Chain = "zksync-testnet" | ||
AvalancheBlitzTestnet Chain = "avalanche-blitz-testnet" | ||
AvalancheDChainTestnet Chain = "avalanche-d-chain-testnet" | ||
AvalancheGreenDotTestnet Chain = "avalanche-green-dot-testnet" | ||
AvalancheMintaraTestnet Chain = "avalanche-mintara-testnet" | ||
AvalancheBeamTestnet Chain = "avalanche-beam-testnet" | ||
BnbMetaApesMainnet Chain = "bnb-meta-apes-mainnet" | ||
BnbAntimatterMainnet Chain = "bnb-antimatter-mainnet" | ||
BnbAntimatterTestnet Chain = "bnb-antimatter-testnet" | ||
BnbOpbnbTestnet Chain = "bnb-opbnb-testnet" | ||
OpsideDebox Chain = "opside-debox" | ||
OpsideJackbot Chain = "opside-jackbot" | ||
OpsideOdxZkevmTestnet Chain = "opside-odx-zkevm-testnet" | ||
OpsideReadonContentTestnet Chain = "opside-readon-content-testnet" | ||
OpsideRelation Chain = "opside-relation" | ||
OpsideSoquestZkevm Chain = "opside-soquest-zkevm" | ||
OpsideVip3 Chain = "opside-vip3" | ||
OpsideZkmeta Chain = "opside-zkmeta" | ||
AvalanchePulsarTestnet Chain = "avalanche-pulsar-testnet" | ||
AvalancheUptn Chain = "avalanche-uptn" | ||
BnbFncyMainnet Chain = "bnb-fncy-mainnet" | ||
ZetachainTestnet Chain = "zetachain-testnet" | ||
KintoTestnet Chain = "kinto-testnet" | ||
ModeTestnet Chain = "mode-testnet" | ||
LootMainnet Chain = "loot-mainnet" | ||
BnbFncyTestnet Chain = "bnb-fncy-testnet" | ||
MantaTestnet Chain = "manta-testnet" | ||
PgnMainnet Chain = "pgn-mainnet" | ||
PgnTestnet Chain = "pgn-testnet" | ||
GnosisMainnet Chain = "gnosis-mainnet" | ||
GnosisTestnet Chain = "gnosis-testnet" | ||
RolluxMainnet Chain = "rollux-mainnet" | ||
RolluxTestnet Chain = "rollux-testnet" | ||
TaikoJolnirTestnet Chain = "taiko-jolnir-testnet" | ||
OptimismSepolia Chain = "optimism-sepolia" | ||
BnbOpbnbMainnet Chain = "bnb-opbnb-mainnet" | ||
TelosMainnet Chain = "telos-mainnet" | ||
TelosTestnet Chain = "telos-testnet" | ||
AvalancheHubbleExchangeTestnet Chain = "avalanche-hubble-exchange-testnet" | ||
AvalancheMihoTestnet Chain = "avalanche-miho-testnet" | ||
AvalancheBulletinTestnet Chain = "avalanche-bulletin-testnet" | ||
AvalancheKiwiTestnet Chain = "avalanche-kiwi-testnet" | ||
AvalancheHeroTestnet Chain = "avalanche-hero-testnet" | ||
AvalancheAvacloudTestnet Chain = "avalanche-avacloud-testnet" | ||
AvalancheThirdwebTestnet Chain = "avalanche-thirdweb-testnet" | ||
AvalancheMondrianTestnet Chain = "avalanche-mondrian-testnet" | ||
AvalancheConduitTestnet Chain = "avalanche-conduit-testnet" | ||
AvalancheNmacTestnet Chain = "avalanche-nmac-testnet" | ||
AvalancheOrderlyTestnet Chain = "avalanche-orderly-testnet" | ||
AvalancheAmplifyTestnet Chain = "avalanche-amplify-testnet" | ||
AvalancheMiraiTestnet Chain = "avalanche-mirai-testnet" | ||
AvalancheWagmiTestnet Chain = "avalanche-wagmi-testnet" | ||
AvalanchePlaya3ullTestnet Chain = "avalanche-playa3ull-testnet" | ||
AvalancheBeamMainnet Chain = "avalanche-beam-mainnet" | ||
ScrollMainnet Chain = "scroll-mainnet" | ||
EthHolesky Chain = "eth-holesky" | ||
TomochainMainnet Chain = "tomochain-mainnet" | ||
TomochainTestnet Chain = "tomochain-testnet" | ||
AvalancheJono11Testnet Chain = "avalanche-jono11-testnet" | ||
BaseSepoliaTestnet Chain = "base-sepolia-testnet" | ||
XaiTestnet Chain = "xai-testnet" | ||
ArbitrumSepolia Chain = "arbitrum-sepolia" | ||
LumozPublicZksyncV2 Chain = "lumoz-public-zksync-v2" | ||
LumozDecibling Chain = "lumoz-decibling" | ||
LumozStarkSport Chain = "lumoz-stark-sport" | ||
AvalancheLt0Testnet Chain = "avalanche-lt0-testnet" | ||
AvalancheLt1Testnet Chain = "avalanche-lt1-testnet" | ||
AvalancheLt2Testnet Chain = "avalanche-lt2-testnet" | ||
AvalancheLt3Testnet Chain = "avalanche-lt3-testnet" | ||
AvalancheLt4Testnet Chain = "avalanche-lt4-testnet" | ||
AvalancheLt5Testnet Chain = "avalanche-lt5-testnet" | ||
SyndrTestnet Chain = "syndr-testnet" | ||
CrossfiEvmTestnet Chain = "crossfi-evm-testnet" | ||
CeloMainnet Chain = "celo-mainnet" | ||
TaikoKatlaTestnet Chain = "taiko-katla-testnet" | ||
MovementMevmTestnet Chain = "movement-mevm-testnet" | ||
ZoraSepoliaTestnet Chain = "zora-sepolia-testnet" | ||
MerlinMainnet Chain = "merlin-mainnet" | ||
MerlinTestnet Chain = "merlin-testnet" | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
package covalentclient | ||
|
||
import ( | ||
"github.com/covalenthq/covalent-api-sdk-go/services" | ||
"github.com/covalenthq/covalent-api-sdk-go/utils" | ||
) | ||
|
||
type CovalentClientSettings struct { | ||
// Toggle to analyze the execution of each api request. | ||
Debug *bool `json:"debug,omitempty"` | ||
// The number of concurrent requests allowed. | ||
ThreadCount *int `json:"thread_count,omitempty"` | ||
} | ||
|
||
type CovalentClientType struct { | ||
SecurityService services.SecurityService | ||
BalanceService services.BalanceService | ||
BaseService services.BaseService | ||
NftService services.NftService | ||
PricingService services.PricingService | ||
TransactionService services.TransactionService | ||
XykService services.XykService | ||
Debug bool | ||
ThreadCount int | ||
} | ||
|
||
var defaultDebug bool = false | ||
var defaultThreadCount int = 3 | ||
|
||
func CovalentClient(apiKey string, settings ...CovalentClientSettings) *CovalentClientType { | ||
client := &CovalentClientType{} | ||
validator := utils.NewApiKeyValidator(apiKey) | ||
isValidKey := validator.IsValidApiKey() | ||
|
||
if len(settings) == 0 { | ||
client.Debug = defaultDebug | ||
client.ThreadCount = defaultThreadCount | ||
} else { | ||
// Settings were provided, apply them | ||
setting := settings[0] // Assuming only one settings struct is passed | ||
|
||
if setting.Debug == nil { | ||
client.Debug = defaultDebug | ||
} else { | ||
client.Debug = *setting.Debug | ||
} | ||
|
||
if setting.ThreadCount == nil { | ||
client.ThreadCount = defaultThreadCount | ||
} else { | ||
client.ThreadCount = *setting.ThreadCount | ||
} | ||
} | ||
|
||
client.SecurityService = services.NewSecurityServiceImpl(apiKey, client.Debug, client.ThreadCount, isValidKey) | ||
client.BalanceService = services.NewBalanceServiceImpl(apiKey, client.Debug, client.ThreadCount, isValidKey) | ||
client.BaseService = services.NewBaseServiceImpl(apiKey, client.Debug, client.ThreadCount, isValidKey) | ||
client.NftService = services.NewNftServiceImpl(apiKey, client.Debug, client.ThreadCount, isValidKey) | ||
client.PricingService = services.NewPricingServiceImpl(apiKey, client.Debug, client.ThreadCount, isValidKey) | ||
client.TransactionService = services.NewTransactionServiceImpl(apiKey, client.Debug, client.ThreadCount, isValidKey) | ||
client.XykService = services.NewXykServiceImpl(apiKey, client.Debug, client.ThreadCount, isValidKey) | ||
|
||
return client | ||
|
||
} |
Oops, something went wrong.