Skip to content

Commit

Permalink
hotfix: added Injective assets (ATOM and INJ) on EVM assets page (#759)
Browse files Browse the repository at this point in the history
* feat: added ATOM and INJ on EVM assets page

* fix: fetch token data from cbridge API
  • Loading branch information
impelcrypto committed May 3, 2023
1 parent 8929d2a commit 2619bf9
Show file tree
Hide file tree
Showing 6 changed files with 36 additions and 11 deletions.
2 changes: 2 additions & 0 deletions src/c-bridge/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ export enum EvmChain {
Astar = 592,
Shiden = 336,
Polygon = 137,
Injective = 999999997, // chain ID used in Cbridge API
}

export const astarSupportChains = [
Expand All @@ -23,6 +24,7 @@ export const astarSupportChains = [
EvmChain.Astar,
EvmChain.Shiden,
EvmChain.Polygon,
EvmChain.Injective,
];

export const shidenSupportChains = [EvmChain.Astar, EvmChain.Shiden];
Expand Down
18 changes: 17 additions & 1 deletion src/c-bridge/utils/cbridgeAPI/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ const pushPooledToken = ({
// Ref: https://cbridge-docs.celer.network/developer/api-reference/gateway-gettransferconfigs
// Memo: filter/cast the `chains` and `tokens` interface to convenient for bridge page in Astar Portal
export const getTransferConfigs = async (portalNetworkIdx: endpointKey) => {
const { Ethereum, BSC, Astar, Shiden, Polygon } = EvmChain;
const { Ethereum, BSC, Astar, Shiden, Polygon, Injective } = EvmChain;

try {
const url = cBridgeEndpoint.Configs;
Expand All @@ -109,6 +109,7 @@ export const getTransferConfigs = async (portalNetworkIdx: endpointKey) => {
const polygonToAstar: CbridgeToken[] = [];
const polygonToShiden: CbridgeToken[] = [];
const shidenToAstar: CbridgeToken[] = [];
const injectiveToAstar: CbridgeToken[] = [];

const pools = [
{
Expand Down Expand Up @@ -146,6 +147,11 @@ export const getTransferConfigs = async (portalNetworkIdx: endpointKey) => {
chainA: Shiden,
chainB: Astar,
},
{
tokens: injectiveToAstar,
chainA: Injective,
chainB: Astar,
},
];

// Memo: Making array for `Canonical (mint&burn)` bridge configuration
Expand All @@ -157,6 +163,12 @@ export const getTransferConfigs = async (portalNetworkIdx: endpointKey) => {
pushCanonicalToken({ tokens: polygonToAstar, srcChain: Polygon, destChain: Astar, token });
pushCanonicalToken({ tokens: polygonToShiden, srcChain: Polygon, destChain: Shiden, token });
pushCanonicalToken({ tokens: shidenToAstar, srcChain: Shiden, destChain: Astar, token });
pushCanonicalToken({
tokens: injectiveToAstar,
srcChain: Injective,
destChain: Astar,
token,
});
});

// Memo: Making array for `Pool Based` bridge configuration
Expand Down Expand Up @@ -194,6 +206,7 @@ export const getTransferConfigs = async (portalNetworkIdx: endpointKey) => {
[Ethereum]: ethToAstar,
[BSC]: bscToAstar,
[Polygon]: polygonToAstar,
[Injective]: injectiveToAstar,
[Shiden]: shidenToAstar,
},
[Shiden]: {
Expand All @@ -214,6 +227,9 @@ export const getTransferConfigs = async (portalNetworkIdx: endpointKey) => {
[Astar]: polygonToAstar,
[Shiden]: polygonToShiden,
},
[Injective]: {
[Astar]: injectiveToAstar,
},
},
};
} catch (error: any) {
Expand Down
5 changes: 1 addition & 4 deletions src/modules/token/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ export interface Erc20Token {
isWrappedToken?: boolean;
isXC20?: boolean;
wrapUrl?: string | null;
bridgeUrl?: string | null;
userBalance?: string;
userBalanceUsd?: string;
isCbridgeToken?: boolean;
Expand All @@ -50,7 +51,3 @@ export const tokenImageMap = {
ARSW: 'https://assets.coingecko.com/coins/images/26048/small/arsw.png?1655440190',
LAY: 'https://assets.coingecko.com/coins/images/25795/small/WKBrkX4y_400x400.png?1653920060',
};

export const wrappedTokenMap = {
WASTR: 'ASTR',
};
12 changes: 11 additions & 1 deletion src/modules/token/utils/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { isXc20Token } from 'src/config/web3/utils';
import { CbridgeCurrency } from 'src/c-bridge';
import { endpointKey, providerEndpoints } from 'src/config/chainEndpoints';
import { LOCAL_STORAGE } from 'src/config/localStorage';
Expand Down Expand Up @@ -117,9 +118,18 @@ export const castCbridgeToErc20 = ({
token: CbridgeCurrency;
srcChainId: number;
}): Erc20Token => {
const isXc20Asset =
token.bridgeMethod === 'canonical' &&
isXc20Token(token.canonicalConfig?.canonical_token_contract_addr as string);

const address =
isXc20Asset && token.canonicalConfig?.canonical_token_contract_addr
? token.canonicalConfig.canonical_token_contract_addr
: token.address;

return {
srcChainId,
address: token.address,
address,
decimal: token.decimal,
symbol: token.symbol,
name: token.name,
Expand Down
2 changes: 1 addition & 1 deletion tests/fixtures.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ export const test = base.extend<{
];

if (process.env.HEADLESS) {
args.push(`--headless=new`,);
args.push('--headless=new');
}

const context = await chromium.launchPersistentContext('', {
Expand Down
8 changes: 4 additions & 4 deletions tests/polkadot_wallet/packageInfo.d.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
export declare const packageInfo: {
name: string;
path: string;
type: string;
version: string;
name: string;
path: string;
type: string;
version: string;
};

0 comments on commit 2619bf9

Please sign in to comment.