@hyperlane-xyz/sdk
Version:
The official SDK for the Hyperlane Network
35 lines • 1.6 kB
JavaScript
import { isStarknetFeeToken } from '../../utils/starknet.js';
import { StarknetHypCollateralAdapter, StarknetHypFeeAdapter, StarknetHypNativeAdapter, StarknetHypSyntheticAdapter, } from './StarknetTokenAdapter.js';
import { hasChainMetadata, } from './hypTokenAdapterUtils.js';
import { TokenStandard } from '../TokenStandard.js';
export function createStarknetHypAdapter(multiProvider, token) {
const { standard, chainName, addressOrDenom } = token;
if (!standard || !hasChainMetadata(multiProvider, chainName)) {
return undefined;
}
if (isStarknetFeeToken(chainName, addressOrDenom) &&
(standard === TokenStandard.StarknetHypNative ||
standard === TokenStandard.StarknetHypSynthetic ||
standard === TokenStandard.StarknetHypCollateral)) {
return new StarknetHypFeeAdapter(chainName, multiProvider, {
warpRouter: addressOrDenom,
});
}
switch (standard) {
case TokenStandard.StarknetHypNative:
return new StarknetHypNativeAdapter(chainName, multiProvider, {
warpRouter: addressOrDenom,
});
case TokenStandard.StarknetHypSynthetic:
return new StarknetHypSyntheticAdapter(chainName, multiProvider, {
warpRouter: addressOrDenom,
});
case TokenStandard.StarknetHypCollateral:
return new StarknetHypCollateralAdapter(chainName, multiProvider, {
warpRouter: addressOrDenom,
});
default:
return undefined;
}
}
//# sourceMappingURL=starknetHyp.js.map