Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: rest of tokens bridged to Sonic #536

Merged
merged 9 commits into from
Jan 30, 2025
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/moody-crabs-deliver.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@hyperlane-xyz/registry': minor
---

Add sSOL, USDStar, USDC, USDT, and SONIC bridged between Solana and Sonic. Rename USD* -> USDStar.
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
solanamainnet:
collateral: 2e6hyJbUpbhqbJzorDZ1m4QVTj5oPhsn2H3KBaMFVXAz
sonicsvm:
synthetic: 5sPRiRLfmohVmtkgiGV6scrzy2C6qEZRGRUiePZf1Fs2
23 changes: 23 additions & 0 deletions deployments/warp_routes/SONIC/solanamainnet-sonicsvm-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# yaml-language-server: $schema=../schema.json
tokens:
- addressOrDenom: 2e6hyJbUpbhqbJzorDZ1m4QVTj5oPhsn2H3KBaMFVXAz
chainName: solanamainnet
coinGeckoId: sonic-svm
collateralAddressOrDenom: SonicxvLud67EceaEzCLRnMTBqzYUUYNr93DBkBdDES
connections:
- token: sealevel|sonicsvm|5sPRiRLfmohVmtkgiGV6scrzy2C6qEZRGRUiePZf1Fs2
decimals: 9
logoURI: /deployments/warp_routes/SONIC/logo.svg
name: Sonic SVM
standard: SealevelHypCollateral
symbol: SONIC
- addressOrDenom: 5sPRiRLfmohVmtkgiGV6scrzy2C6qEZRGRUiePZf1Fs2
chainName: sonicsvm
collateralAddressOrDenom: mrujEYaN1oyQXDHeYNxBYpxWKVkQ2XsGxfznpifu4aL
connections:
- token: sealevel|solanamainnet|2e6hyJbUpbhqbJzorDZ1m4QVTj5oPhsn2H3KBaMFVXAz
decimals: 9
logoURI: /deployments/warp_routes/SONIC/logo.svg
name: Sonic SVM
standard: SealevelHypSynthetic
symbol: SONIC
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
solanamainnet:
collateral: 996EsR8a7MC6odE6j7sjsArmDQVqB96qWu84wHdthahm
sonicsvm:
synthetic: BvTEYSqCcfMwpAriC1vDpNhzR1JWzasRFfCPCdgsYaCd
23 changes: 23 additions & 0 deletions deployments/warp_routes/USDC/solanamainnet-sonicsvm-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# yaml-language-server: $schema=../schema.json
tokens:
- addressOrDenom: 996EsR8a7MC6odE6j7sjsArmDQVqB96qWu84wHdthahm
chainName: solanamainnet
coinGeckoId: usd-coin
collateralAddressOrDenom: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
connections:
- token: sealevel|sonicsvm|BvTEYSqCcfMwpAriC1vDpNhzR1JWzasRFfCPCdgsYaCd
decimals: 6
logoURI: /deployments/warp_routes/USDC/logo.svg
name: USDC
standard: SealevelHypCollateral
symbol: USDC
- addressOrDenom: BvTEYSqCcfMwpAriC1vDpNhzR1JWzasRFfCPCdgsYaCd
chainName: sonicsvm
collateralAddressOrDenom: HbDgpvHVxeNSRCGEUFvapCYmtYfqxexWcCbxtYecruy8
connections:
- token: sealevel|solanamainnet|996EsR8a7MC6odE6j7sjsArmDQVqB96qWu84wHdthahm
decimals: 6
logoURI: /deployments/warp_routes/USDC/logo.svg
name: USDC
standard: SealevelHypSynthetic
symbol: USDC
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
solanamainnet:
collateral: FRPTWpmnNPm4LS2a5NUL1QenUrzGDAuifZBUi1mTWTdt
sonicsvm:
synthetic: 68g96Cq16vKAqyG79BFVeJCgitjK9fQ1NRCRmcPkJtDB
24 changes: 24 additions & 0 deletions deployments/warp_routes/USDStar/solanamainnet-sonicsvm-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# yaml-language-server: $schema=../schema.json
tokens:
- addressOrDenom: FRPTWpmnNPm4LS2a5NUL1QenUrzGDAuifZBUi1mTWTdt
chainName: solanamainnet
# USD* is not yet on Coingecko. As it's a stablecoin, we approximate with USDC's value.
coinGeckoId: usd-coin
collateralAddressOrDenom: BenJy1n3WTx9mTjEvy63e8Q1j4RqUc6E4VBMz3ir4Wo6
connections:
- token: sealevel|sonicsvm|68g96Cq16vKAqyG79BFVeJCgitjK9fQ1NRCRmcPkJtDB
decimals: 6
logoURI: /deployments/warp_routes/USDStar/logo.svg
name: USD Star
standard: SealevelHypCollateral
symbol: USD*
- addressOrDenom: 68g96Cq16vKAqyG79BFVeJCgitjK9fQ1NRCRmcPkJtDB
chainName: sonicsvm
collateralAddressOrDenom: BhaUtuAuuv8B5BiPx4LZyaPhY8CCtJsGNAic24pZzV78
connections:
- token: sealevel|solanamainnet|FRPTWpmnNPm4LS2a5NUL1QenUrzGDAuifZBUi1mTWTdt
decimals: 6
logoURI: /deployments/warp_routes/USDStar/logo.svg
name: USD Star
standard: SealevelHypSynthetic
symbol: USD*
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
solanamainnet:
collateral: CKrNt2y1e2H9728mHRVYyF2owy9eKreepRKpTMj2j8JG
sonicsvm:
synthetic: BGW8geBw12Yyp4rW7Fp97a3CQRA4Czi8PdtuV2Ec3Vdy
23 changes: 23 additions & 0 deletions deployments/warp_routes/USDT/solanamainnet-sonicsvm-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# yaml-language-server: $schema=../schema.json
tokens:
- addressOrDenom: CKrNt2y1e2H9728mHRVYyF2owy9eKreepRKpTMj2j8JG
chainName: solanamainnet
coinGeckoId: tether
collateralAddressOrDenom: Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB
connections:
- token: sealevel|sonicsvm|BGW8geBw12Yyp4rW7Fp97a3CQRA4Czi8PdtuV2Ec3Vdy
decimals: 6
logoURI: /deployments/warp_routes/USDT/logo.svg
name: USDT
standard: SealevelHypCollateral
symbol: USDT
- addressOrDenom: BGW8geBw12Yyp4rW7Fp97a3CQRA4Czi8PdtuV2Ec3Vdy
chainName: sonicsvm
collateralAddressOrDenom: qPzdrTCvxK3bxoh2YoTZtDcGVgRUwm37aQcC3abFgBy
connections:
- token: sealevel|solanamainnet|CKrNt2y1e2H9728mHRVYyF2owy9eKreepRKpTMj2j8JG
decimals: 6
logoURI: /deployments/warp_routes/USDT/logo.svg
name: USDT
standard: SealevelHypSynthetic
symbol: USDT
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
solanamainnet:
collateral: 9PHKQFEDzedHuigSm1ZBojEX4DVF3cincGZwy3k7VHTN
sonicsvm:
synthetic: XYbsJQGzZgPDbt9Swd2ao54nhGSq8Wjq23MoogHvEq6
23 changes: 23 additions & 0 deletions deployments/warp_routes/sSOL/solanamainnet-sonicsvm-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# yaml-language-server: $schema=../schema.json
tokens:
- addressOrDenom: 9PHKQFEDzedHuigSm1ZBojEX4DVF3cincGZwy3k7VHTN
chainName: solanamainnet
coinGeckoId: solayer-staked-sol
collateralAddressOrDenom: sSo14endRuUbvQaJS3dq36Q829a3A6BEfoeeRGJywEh
connections:
- token: sealevel|sonicsvm|XYbsJQGzZgPDbt9Swd2ao54nhGSq8Wjq23MoogHvEq6
decimals: 9
logoURI: /deployments/warp_routes/sSOL/logo.svg
name: Solayer SOL
standard: SealevelHypCollateral
symbol: sSOL
- addressOrDenom: XYbsJQGzZgPDbt9Swd2ao54nhGSq8Wjq23MoogHvEq6
chainName: sonicsvm
collateralAddressOrDenom: 21e27teReDgn7Z3J1ogdpJmFhUi75eYeiCD22zqCuwpd
connections:
- token: sealevel|solanamainnet|9PHKQFEDzedHuigSm1ZBojEX4DVF3cincGZwy3k7VHTN
decimals: 9
logoURI: /deployments/warp_routes/sSOL/logo.svg
name: Solayer SOL
standard: SealevelHypSynthetic
symbol: sSOL
1 change: 1 addition & 0 deletions src/consts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ export const DEFAULT_GITHUB_REGISTRY = 'https://github.com/hyperlane-xyz/hyperla
export const GITHUB_FETCH_CONCURRENCY_LIMIT = 5;

export const CHAIN_FILE_REGEX = /chains\/([a-z0-9]+)\/([a-z]+)\.(yaml|svg)/;
export const WARP_ROUTE_SYMBOL_DIRECTORY_REGEX = /warp_routes\/([a-zA-Z0-9]+)$/;
export const WARP_ROUTE_CONFIG_FILE_REGEX = /warp_routes\/([a-zA-Z0-9]+)\/([a-z0-9-]+)-config.yaml/;
export const WARP_ROUTE_DEPLOY_FILE_REGEX = /warp_routes\/([a-zA-Z0-9]+)\/([a-z0-9-]+)-deploy.yaml/;

Expand Down
33 changes: 25 additions & 8 deletions test/unit/warp-routes.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,31 @@ import { FileSystemRegistry } from '../../src/registry/FileSystemRegistry.js';
import { createWarpRouteConfigId, parseWarpRouteConfigId } from '../../src/registry/warp-utils.js';
import path from 'path';
import fs from 'fs';
import { WARP_ROUTE_SYMBOL_DIRECTORY_REGEX } from '../../src/consts.js';

const BASE_URI = './';

describe('Warp Core Configs', () => {
const localRegistry = new FileSystemRegistry({ uri: BASE_URI });
const chainMetadata = localRegistry.getMetadata();
const multiProvider = new MultiProtocolProvider(chainMetadata);
const routes = localRegistry.getWarpRoutes();

console.log('routes', routes);

it('All warp route symbol directories meet regex requirement', () => {
const warpRoutesPath = path.join(BASE_URI, 'deployments', 'warp_routes');
const symbolDirs = fs
.readdirSync(warpRoutesPath, { withFileTypes: true })
.filter((entry) => entry.isDirectory())
// Convert to a path within the deployments directory, as expected by the regex
.map((entry) => path.join('warp_routes', entry.name));

for (const symbolDir of symbolDirs) {
expect(WARP_ROUTE_SYMBOL_DIRECTORY_REGEX.test(symbolDir), `Symbol directory ${symbolDir} does not meet expected regex`).to.be.true;
}
});

for (const id of Object.keys(routes)) {
it(`WarpCore ${id} is valid`, async () => {
const config = routes[id];
Expand Down Expand Up @@ -129,16 +146,16 @@ describe('Warp Deploy Configs', () => {
// These Ids do not validate due to owner
// Remove after https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/5292
const excludeIds = [
'ECLIP/arbitrum-neutron',
'INJ/inevm-injective',
'TIA/arbitrum-neutron',
'INJ/inevm-injective',
'TIA/arbitrum-neutron',
'TIA/eclipsemainnet-stride',
'TIA/mantapacific-neutron',
'ECLIP/arbitrum-neutron',
'INJ/inevm-injective',
'TIA/arbitrum-neutron',
'INJ/inevm-injective',
'TIA/arbitrum-neutron',
'TIA/eclipsemainnet-stride',
'TIA/mantapacific-neutron',
'stTIA/eclipsemainnet-stride'
];
const configs = Object.keys(warpDeploys).filter(id =>!excludeIds.includes(id));
const configs = Object.keys(warpDeploys).filter(id => !excludeIds.includes(id));
for (const id of configs) {
it(`Deploy config ${id} is valid`, async () => {
WarpRouteDeployConfigSchema.parse(warpDeploys[id]);
Expand Down