@accret/api-client
Version:
A comprehensive SDK for blockchain data access via Moralis, Alchemy, and Shyft APIs
99 lines • 4.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getAccretSupportedChain = getAccretSupportedChain;
exports.getChainIdentifiers = getChainIdentifiers;
const types_1 = require("../types");
const common_evm_utils_1 = require("moralis/common-evm-utils");
const alchemy_sdk_1 = require("alchemy-sdk");
const js_1 = require("@shyft-to/js");
/**
* Gets the supported Accret chain for a given chain identifier.
* @param chain The chain identifier to check.
* @returns The respective Accret chain identifier.
*/
function getAccretSupportedChain({ chain, }) {
if (typeof chain !== "string") {
console.log(`Chain ${chain} is not supported`);
}
if (chain === alchemy_sdk_1.Network.ETH_MAINNET ||
chain === common_evm_utils_1.EvmChain.ETHEREUM.hex) {
return types_1.AccretSupportedChain.ETHEREUM_CHAIN;
}
else if (chain === alchemy_sdk_1.Network.MATIC_MAINNET ||
chain === common_evm_utils_1.EvmChain.POLYGON.hex) {
return types_1.AccretSupportedChain.POLYGON_CHAIN;
}
else if (chain === alchemy_sdk_1.Network.ARB_MAINNET ||
chain === common_evm_utils_1.EvmChain.ARBITRUM.hex) {
return types_1.AccretSupportedChain.ARBITRUM_CHAIN;
}
else if (chain === alchemy_sdk_1.Network.BASE_MAINNET ||
chain === common_evm_utils_1.EvmChain.BASE.hex) {
return types_1.AccretSupportedChain.BASE_CHAIN;
}
else if (chain === alchemy_sdk_1.Network.BNB_MAINNET ||
chain === common_evm_utils_1.EvmChain.BSC.hex) {
return types_1.AccretSupportedChain.BNB_CHAIN;
}
else if (chain === alchemy_sdk_1.Network.AVAX_MAINNET ||
chain === common_evm_utils_1.EvmChain.AVALANCHE.hex) {
return types_1.AccretSupportedChain.AVALANCHE_CHAIN;
}
else if (chain === alchemy_sdk_1.Network.SOLANA_MAINNET ||
js_1.Network.Mainnet ||
chain === "mainnet") {
return types_1.AccretSupportedChain.SOLANA_CHAIN;
}
else {
throw new Error(`Chain ${chain} is not supported`);
}
}
/**
* @description This function retrieves the chain identifiers for a given Accret supported chain.
* @param chain The Accret supported chain for which to get the identifiers.
* @throws An error if the chain is not supported.
* @returns An object of chain identifiers(Alchemy, Moralis, Shyft) for the specified Accret supported chain.
*/
function getChainIdentifiers({ chain, }) {
switch (chain) {
case types_1.AccretSupportedChain.ETHEREUM_CHAIN:
return {
alchemy: alchemy_sdk_1.Network.ETH_MAINNET,
moralis: common_evm_utils_1.EvmChain.ETHEREUM,
};
case types_1.AccretSupportedChain.POLYGON_CHAIN:
return {
alchemy: alchemy_sdk_1.Network.MATIC_MAINNET,
moralis: common_evm_utils_1.EvmChain.POLYGON,
};
case types_1.AccretSupportedChain.ARBITRUM_CHAIN:
return {
alchemy: alchemy_sdk_1.Network.ARB_MAINNET,
moralis: common_evm_utils_1.EvmChain.ARBITRUM,
};
case types_1.AccretSupportedChain.BASE_CHAIN:
return {
alchemy: alchemy_sdk_1.Network.BASE_MAINNET,
moralis: common_evm_utils_1.EvmChain.BASE,
};
case types_1.AccretSupportedChain.BNB_CHAIN:
return {
alchemy: alchemy_sdk_1.Network.BNB_MAINNET,
moralis: common_evm_utils_1.EvmChain.BSC,
};
case types_1.AccretSupportedChain.AVALANCHE_CHAIN:
return {
alchemy: alchemy_sdk_1.Network.AVAX_MAINNET,
moralis: common_evm_utils_1.EvmChain.AVALANCHE,
};
case types_1.AccretSupportedChain.SOLANA_CHAIN:
return {
alchemy: alchemy_sdk_1.Network.SOLANA_MAINNET,
moralis: "mainnet",
shyft: js_1.Network.Mainnet,
};
default:
throw new Error(`Chain ${chain} is not supported`);
}
}
//# sourceMappingURL=supportedChain.js.map