@hyperlane-xyz/registry 6.10.0 → 6.12.0-http.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chainAddresses.d.ts +23 -0
- package/dist/chainAddresses.d.ts-e +636 -0
- package/dist/chainAddresses.js +23 -0
- package/dist/chainAddresses.js-e +636 -0
- package/dist/chainMetadata.d.ts-e +2 -0
- package/dist/chainMetadata.js +72 -2
- package/dist/chainMetadata.js-e +1247 -0
- package/dist/chains/abstracttestnet/logo.svg +1 -1
- package/dist/chains/alephzeroevmmainnet/logo.svg +1 -1
- package/dist/chains/alephzeroevmtestnet/logo.svg +1 -1
- package/dist/chains/alfajores/addresses.d.ts-e +21 -0
- package/dist/chains/alfajores/addresses.js-e +21 -0
- package/dist/chains/alfajores/addresses.json-e +21 -0
- package/dist/chains/alfajores/addresses.yaml-e +19 -0
- package/dist/chains/alfajores/index.d.ts-e +2 -0
- package/dist/chains/alfajores/index.js-e +2 -0
- package/dist/chains/alfajores/logo.svg +1 -1
- package/dist/chains/alfajores/logo.svg-e +1 -0
- package/dist/chains/alfajores/metadata.d.ts-e +2 -0
- package/dist/chains/alfajores/metadata.js-e +37 -0
- package/dist/chains/alfajores/metadata.json-e +37 -0
- package/dist/chains/alfajores/metadata.yaml-e +26 -0
- package/dist/chains/ancient8/addresses.d.ts-e +19 -0
- package/dist/chains/ancient8/addresses.js-e +19 -0
- package/dist/chains/ancient8/addresses.json-e +19 -0
- package/dist/chains/ancient8/addresses.yaml-e +17 -0
- package/dist/chains/ancient8/index.d.ts-e +2 -0
- package/dist/chains/ancient8/index.js-e +2 -0
- package/dist/chains/ancient8/logo.svg +1 -1
- package/dist/chains/ancient8/logo.svg-e +1 -0
- package/dist/chains/ancient8/metadata.d.ts-e +2 -0
- package/dist/chains/ancient8/metadata.js-e +33 -0
- package/dist/chains/ancient8/metadata.json-e +33 -0
- package/dist/chains/ancient8/metadata.yaml-e +24 -0
- package/dist/chains/apechain/logo.svg +1 -1
- package/dist/chains/appchain/logo.svg +1 -1
- package/dist/chains/arbitrum/addresses.d.ts-e +26 -0
- package/dist/chains/arbitrum/addresses.js-e +26 -0
- package/dist/chains/arbitrum/addresses.json-e +26 -0
- package/dist/chains/arbitrum/addresses.yaml-e +24 -0
- package/dist/chains/arbitrum/index.d.ts-e +2 -0
- package/dist/chains/arbitrum/index.js-e +2 -0
- package/dist/chains/arbitrum/logo.svg +1 -1
- package/dist/chains/arbitrum/logo.svg-e +1 -0
- package/dist/chains/arbitrum/metadata.d.ts-e +2 -0
- package/dist/chains/arbitrum/metadata.js-e +42 -0
- package/dist/chains/arbitrum/metadata.json-e +42 -0
- package/dist/chains/arbitrum/metadata.yaml-e +32 -0
- package/dist/chains/arbitrumnova/logo.svg +1 -1
- package/dist/chains/arbitrumsepolia/logo.svg +1 -1
- package/dist/chains/arcadiatestnet2/logo.svg +1 -1
- package/dist/chains/argochaintestnet/logo.svg +1 -1
- package/dist/chains/artelatestnet/logo.svg +1 -1
- package/dist/chains/arthera/logo.svg +1 -1
- package/dist/chains/artheratestnet/logo.svg +1 -1
- package/dist/chains/astar/logo.svg +1 -1
- package/dist/chains/astarzkevm/logo.svg +1 -1
- package/dist/chains/aurora/logo.svg +1 -1
- package/dist/chains/auroratestnet/logo.svg +1 -1
- package/dist/chains/avalanche/addresses.d.ts-e +26 -0
- package/dist/chains/avalanche/addresses.js-e +26 -0
- package/dist/chains/avalanche/addresses.json-e +26 -0
- package/dist/chains/avalanche/addresses.yaml-e +24 -0
- package/dist/chains/avalanche/index.d.ts-e +2 -0
- package/dist/chains/avalanche/index.js-e +2 -0
- package/dist/chains/avalanche/logo.svg +1 -1
- package/dist/chains/avalanche/logo.svg-e +1 -0
- package/dist/chains/avalanche/metadata.d.ts-e +2 -0
- package/dist/chains/avalanche/metadata.js-e +39 -0
- package/dist/chains/avalanche/metadata.json-e +39 -0
- package/dist/chains/avalanche/metadata.yaml-e +27 -0
- package/dist/chains/b3/logo.svg +1 -1
- package/dist/chains/base/addresses.d.ts-e +25 -0
- package/dist/chains/base/addresses.js-e +25 -0
- package/dist/chains/base/addresses.json-e +25 -0
- package/dist/chains/base/addresses.yaml-e +23 -0
- package/dist/chains/base/index.d.ts-e +2 -0
- package/dist/chains/base/index.js-e +2 -0
- package/dist/chains/base/logo.svg-e +1 -0
- package/dist/chains/base/metadata.d.ts-e +2 -0
- package/dist/chains/base/metadata.js-e +38 -0
- package/dist/chains/base/metadata.json-e +38 -0
- package/dist/chains/base/metadata.yaml-e +25 -0
- package/dist/chains/berabartio/logo.svg +1 -1
- package/dist/chains/bitlayer/logo.svg +1 -1
- package/dist/chains/blast/addresses.d.ts-e +22 -0
- package/dist/chains/blast/addresses.js-e +22 -0
- package/dist/chains/blast/addresses.json-e +22 -0
- package/dist/chains/blast/addresses.yaml-e +20 -0
- package/dist/chains/blast/index.d.ts-e +2 -0
- package/dist/chains/blast/index.js-e +2 -0
- package/dist/chains/blast/logo.svg +1 -5
- package/dist/chains/blast/logo.svg-e +1 -0
- package/dist/chains/blast/metadata.d.ts-e +2 -0
- package/dist/chains/blast/metadata.js-e +32 -0
- package/dist/chains/blast/metadata.json-e +32 -0
- package/dist/chains/blast/metadata.yaml-e +23 -0
- package/dist/chains/blastsepolia/logo.svg +1 -4
- package/dist/chains/boba/logo.svg +1 -1
- package/dist/chains/bobabnb/logo.svg +1 -1
- package/dist/chains/bobabnbtestnet/logo.svg +1 -1
- package/dist/chains/bsc/addresses.d.ts-e +26 -0
- package/dist/chains/bsc/addresses.js-e +26 -0
- package/dist/chains/bsc/addresses.json-e +26 -0
- package/dist/chains/bsc/addresses.yaml-e +24 -0
- package/dist/chains/bsc/index.d.ts-e +2 -0
- package/dist/chains/bsc/index.js-e +2 -0
- package/dist/chains/bsc/logo.svg +1 -1
- package/dist/chains/bsc/logo.svg-e +1 -0
- package/dist/chains/bsc/metadata.d.ts-e +2 -0
- package/dist/chains/bsc/metadata.js-e +39 -0
- package/dist/chains/bsc/metadata.json-e +39 -0
- package/dist/chains/bsc/metadata.yaml-e +26 -0
- package/dist/chains/bsctestnet/addresses.d.ts-e +20 -0
- package/dist/chains/bsctestnet/addresses.js-e +20 -0
- package/dist/chains/bsctestnet/addresses.json-e +20 -0
- package/dist/chains/bsctestnet/addresses.yaml-e +18 -0
- package/dist/chains/bsctestnet/index.d.ts-e +2 -0
- package/dist/chains/bsctestnet/index.js-e +2 -0
- package/dist/chains/bsctestnet/logo.svg +1 -1
- package/dist/chains/bsctestnet/logo.svg-e +1 -0
- package/dist/chains/bsctestnet/metadata.d.ts-e +2 -0
- package/dist/chains/bsctestnet/metadata.js-e +34 -0
- package/dist/chains/bsctestnet/metadata.json-e +34 -0
- package/dist/chains/bsctestnet/metadata.yaml-e +23 -0
- package/dist/chains/bsquared/logo.svg +1 -1
- package/dist/chains/camptestnet/logo.svg +1 -1
- package/dist/chains/canto/logo.svg +1 -49
- package/dist/chains/cantotestnet/logo.svg +1 -49
- package/dist/chains/carbon/logo.svg +1 -1
- package/dist/chains/celo/addresses.d.ts-e +26 -0
- package/dist/chains/celo/addresses.js-e +26 -0
- package/dist/chains/celo/addresses.json-e +26 -0
- package/dist/chains/celo/addresses.yaml-e +24 -0
- package/dist/chains/celo/index.d.ts-e +2 -0
- package/dist/chains/celo/index.js-e +2 -0
- package/dist/chains/celo/logo.svg +1 -1
- package/dist/chains/celo/logo.svg-e +1 -0
- package/dist/chains/celo/metadata.d.ts-e +2 -0
- package/dist/chains/celo/metadata.js-e +37 -0
- package/dist/chains/celo/metadata.json-e +37 -0
- package/dist/chains/celo/metadata.yaml-e +26 -0
- package/dist/chains/cheesechain/logo.svg +1 -1
- package/dist/chains/chiado/index.d.ts +1 -0
- package/dist/chains/chiado/index.d.ts-e +1 -0
- package/dist/chains/chiado/index.js +1 -0
- package/dist/chains/chiado/index.js-e +1 -0
- package/dist/chains/chiado/logo.svg +1 -0
- package/dist/chains/chiado/logo.svg-e +1 -0
- package/dist/chains/chiado/metadata.d.ts +2 -0
- package/dist/chains/chiado/metadata.d.ts-e +2 -0
- package/dist/chains/chiado/metadata.js +31 -0
- package/dist/chains/chiado/metadata.js-e +31 -0
- package/dist/chains/chiado/metadata.json +31 -0
- package/dist/chains/chiado/metadata.json-e +31 -0
- package/dist/chains/chiado/metadata.yaml +22 -0
- package/dist/chains/chiado/metadata.yaml-e +22 -0
- package/dist/chains/chilizmainnet/logo.svg +1 -1
- package/dist/chains/citreatestnet/logo.svg +1 -1
- package/dist/chains/clique/logo.svg +1 -1
- package/dist/chains/conflux/logo.svg +1 -1
- package/dist/chains/connextsepolia/logo.svg +1 -1
- package/dist/chains/conwai/logo.svg +1 -1
- package/dist/chains/coredao/logo.svg +1 -1
- package/dist/chains/corn/logo.svg +1 -1
- package/dist/chains/cosmoshub/logo.svg +1 -1
- package/dist/chains/cronos/logo.svg +1 -1
- package/dist/chains/cronoszkevm/logo.svg +1 -1
- package/dist/chains/cyber/logo.svg +1 -1
- package/dist/chains/deepbrainchaintestnet/logo.svg +1 -1
- package/dist/chains/degenchain/logo.svg +1 -1
- package/dist/chains/deprecatedalephzeroevm/logo.svg +1 -1
- package/dist/chains/deprecatedchiliz/logo.svg +1 -1
- package/dist/chains/deprecatedflow/logo.svg +1 -1
- package/dist/chains/deprecatedimmutablezkevm/logo.svg +1 -1
- package/dist/chains/deprecatedmetall2/logo.svg +1 -1
- package/dist/chains/deprecatedpolynomial/logo.svg +1 -1
- package/dist/chains/deprecatedrari/logo.svg +1 -1
- package/dist/chains/deprecatedrootstock/logo.svg +1 -1
- package/dist/chains/deprecatedsuperposition/logo.svg +1 -1
- package/dist/chains/dodotestnet/logo.svg +1 -1
- package/dist/chains/dogechain/logo.svg +1 -1
- package/dist/chains/duckchain/logo.svg +1 -1
- package/dist/chains/ebi/logo.svg +1 -1
- package/dist/chains/echos/logo.svg +1 -1
- package/dist/chains/eclipsemainnet/logo.svg +1 -1
- package/dist/chains/eclipsetestnet/index.d.ts-e +1 -0
- package/dist/chains/eclipsetestnet/index.js-e +1 -0
- package/dist/chains/eclipsetestnet/logo.svg +1 -1
- package/dist/chains/eclipsetestnet/logo.svg-e +3 -0
- package/dist/chains/eclipsetestnet/metadata.d.ts-e +2 -0
- package/dist/chains/eclipsetestnet/metadata.js-e +23 -0
- package/dist/chains/eclipsetestnet/metadata.json-e +23 -0
- package/dist/chains/eclipsetestnet/metadata.yaml-e +17 -0
- package/dist/chains/ecotestnet/logo.svg +1 -1
- package/dist/chains/endurance/logo.svg +1 -1
- package/dist/chains/ethereum/addresses.d.ts-e +26 -0
- package/dist/chains/ethereum/addresses.js-e +26 -0
- package/dist/chains/ethereum/addresses.json-e +26 -0
- package/dist/chains/ethereum/addresses.yaml-e +24 -0
- package/dist/chains/ethereum/index.d.ts-e +2 -0
- package/dist/chains/ethereum/index.js-e +2 -0
- package/dist/chains/ethereum/logo.svg-e +1 -0
- package/dist/chains/ethereum/metadata.d.ts-e +2 -0
- package/dist/chains/ethereum/metadata.js-e +40 -0
- package/dist/chains/ethereum/metadata.json-e +40 -0
- package/dist/chains/ethereum/metadata.yaml-e +27 -0
- package/dist/chains/euphoriatestnet/logo.svg +1 -1
- package/dist/chains/everclear/logo.svg +1 -1
- package/dist/chains/evmos/logo.svg +1 -1
- package/dist/chains/fantom/logo.svg +1 -1
- package/dist/chains/fhenixtestnet/logo.svg +1 -1
- package/dist/chains/filecoin/logo.svg +1 -1
- package/dist/chains/flame/logo.svg +1 -1
- package/dist/chains/flare/logo.svg +1 -1
- package/dist/chains/flowmainnet/logo.svg +1 -1
- package/dist/chains/form/logo.svg +1 -1
- package/dist/chains/forma/logo.svg +1 -1
- package/dist/chains/formtestnet/logo.svg +1 -1
- package/dist/chains/fractal/logo.svg +1 -1
- package/dist/chains/fraxtal/logo.svg +1 -20
- package/dist/chains/fraxtaltestnet/logo.svg +1 -20
- package/dist/chains/fuji/addresses.d.ts-e +23 -0
- package/dist/chains/fuji/addresses.js-e +23 -0
- package/dist/chains/fuji/addresses.json-e +23 -0
- package/dist/chains/fuji/addresses.yaml-e +21 -0
- package/dist/chains/fuji/index.d.ts-e +2 -0
- package/dist/chains/fuji/index.js-e +2 -0
- package/dist/chains/fuji/logo.svg +1 -1
- package/dist/chains/fuji/logo.svg-e +1 -0
- package/dist/chains/fuji/metadata.d.ts-e +2 -0
- package/dist/chains/fuji/metadata.js-e +34 -0
- package/dist/chains/fuji/metadata.json-e +34 -0
- package/dist/chains/fuji/metadata.yaml-e +24 -0
- package/dist/chains/funki/logo.svg +1 -1
- package/dist/chains/fusemainnet/logo.svg +1 -13
- package/dist/chains/galadrieldevnet/logo.svg +1 -1
- package/dist/chains/gnosis/addresses.d.ts-e +26 -0
- package/dist/chains/gnosis/addresses.js-e +26 -0
- package/dist/chains/gnosis/addresses.json-e +26 -0
- package/dist/chains/gnosis/addresses.yaml-e +24 -0
- package/dist/chains/gnosis/index.d.ts-e +2 -0
- package/dist/chains/gnosis/index.js-e +2 -0
- package/dist/chains/gnosis/logo.svg +1 -1
- package/dist/chains/gnosis/logo.svg-e +1 -0
- package/dist/chains/gnosis/metadata.d.ts-e +2 -0
- package/dist/chains/gnosis/metadata.js-e +36 -0
- package/dist/chains/gnosis/metadata.json-e +36 -0
- package/dist/chains/gnosis/metadata.yaml-e +26 -0
- package/dist/chains/gnosischiadotestnet/logo.svg +1 -1
- package/dist/chains/gravity/logo.svg +1 -1
- package/dist/chains/ham/logo.svg +1 -3
- package/dist/chains/harmony/logo.svg +1 -1
- package/dist/chains/harmonytestnet/logo.svg +1 -1
- package/dist/chains/heneztestnet/logo.svg +1 -1
- package/dist/chains/holesky/addresses.d.ts-e +18 -0
- package/dist/chains/holesky/addresses.js-e +18 -0
- package/dist/chains/holesky/addresses.json-e +18 -0
- package/dist/chains/holesky/addresses.yaml-e +16 -0
- package/dist/chains/holesky/index.d.ts-e +2 -0
- package/dist/chains/holesky/index.js-e +2 -0
- package/dist/chains/holesky/logo.svg-e +1 -0
- package/dist/chains/holesky/metadata.d.ts-e +2 -0
- package/dist/chains/holesky/metadata.js-e +31 -0
- package/dist/chains/holesky/metadata.json-e +31 -0
- package/dist/chains/holesky/metadata.yaml-e +22 -0
- package/dist/chains/humanitytestnet/logo.svg +1 -1
- package/dist/chains/hyperliquidevmtestnet/logo.svg +1 -1
- package/dist/chains/immutablezkevmmainnet/logo.svg +1 -1
- package/dist/chains/inclusivelayertestnet/logo.svg +1 -1
- package/dist/chains/inevm/addresses.d.ts-e +23 -0
- package/dist/chains/inevm/addresses.js-e +23 -0
- package/dist/chains/inevm/addresses.json-e +23 -0
- package/dist/chains/inevm/addresses.yaml-e +21 -0
- package/dist/chains/inevm/index.d.ts-e +2 -0
- package/dist/chains/inevm/index.js-e +2 -0
- package/dist/chains/inevm/logo.svg +1 -1
- package/dist/chains/inevm/logo.svg-e +1 -0
- package/dist/chains/inevm/metadata.d.ts-e +2 -0
- package/dist/chains/inevm/metadata.js-e +32 -0
- package/dist/chains/inevm/metadata.json-e +32 -0
- package/dist/chains/inevm/metadata.yaml-e +23 -0
- package/dist/chains/injective/index.d.ts-e +1 -0
- package/dist/chains/injective/index.js-e +1 -0
- package/dist/chains/injective/logo.svg +1 -1
- package/dist/chains/injective/logo.svg-e +1 -0
- package/dist/chains/injective/metadata.d.ts-e +2 -0
- package/dist/chains/injective/metadata.js-e +37 -0
- package/dist/chains/injective/metadata.json-e +37 -0
- package/dist/chains/injective/metadata.yaml-e +25 -0
- package/dist/chains/ink/logo.svg +1 -1
- package/dist/chains/inksepolia/logo.svg +1 -1
- package/dist/chains/kaia/logo.svg +1 -1
- package/dist/chains/kalychain/logo.svg +1 -1
- package/dist/chains/kava/logo.svg +1 -1
- package/dist/chains/kinto/logo.svg +1 -1
- package/dist/chains/koitestnet/logo.svg +1 -1
- package/dist/chains/kroma/logo.svg +1 -1
- package/dist/chains/linea/logo.svg +1 -11
- package/dist/chains/lineasepolia/logo.svg +1 -11
- package/dist/chains/lisk/logo.svg +1 -1
- package/dist/chains/lisksepolia/logo.svg +1 -1
- package/dist/chains/lukso/logo.svg +1 -1
- package/dist/chains/luksotestnet/logo.svg +1 -1
- package/dist/chains/lumia/logo.svg +1 -1
- package/dist/chains/lumiaprism/logo.svg +1 -1
- package/dist/chains/mantapacific/addresses.d.ts-e +24 -0
- package/dist/chains/mantapacific/addresses.js-e +24 -0
- package/dist/chains/mantapacific/addresses.json-e +24 -0
- package/dist/chains/mantapacific/addresses.yaml-e +22 -0
- package/dist/chains/mantapacific/index.d.ts-e +2 -0
- package/dist/chains/mantapacific/index.js-e +2 -0
- package/dist/chains/mantapacific/logo.svg +1 -1
- package/dist/chains/mantapacific/logo.svg-e +1 -0
- package/dist/chains/mantapacific/metadata.d.ts-e +2 -0
- package/dist/chains/mantapacific/metadata.js-e +34 -0
- package/dist/chains/mantapacific/metadata.json-e +34 -0
- package/dist/chains/mantapacific/metadata.yaml-e +25 -0
- package/dist/chains/mantapacifictestnet/logo.svg +1 -1
- package/dist/chains/mantle/logo.svg +1 -1
- package/dist/chains/mantlesepolia/logo.svg +1 -1
- package/dist/chains/merlin/logo.svg +1 -1
- package/dist/chains/metal/logo.svg +1 -1
- package/dist/chains/metall2testnet/logo.svg +1 -1
- package/dist/chains/metertestnet/logo.svg +1 -23
- package/dist/chains/metertestnet/metadata.js +1 -1
- package/dist/chains/metertestnet/metadata.json +1 -1
- package/dist/chains/metertestnet/metadata.yaml +1 -1
- package/dist/chains/metis/logo.svg +1 -1
- package/dist/chains/mevmdevnet/logo.svg +1 -1
- package/dist/chains/mint/logo.svg +1 -1
- package/dist/chains/mintsepoliatest/logo.svg +1 -5
- package/dist/chains/mitosistestnet/logo.svg +1 -1
- package/dist/chains/mode/addresses.d.ts-e +18 -0
- package/dist/chains/mode/addresses.js-e +18 -0
- package/dist/chains/mode/addresses.json-e +18 -0
- package/dist/chains/mode/addresses.yaml-e +16 -0
- package/dist/chains/mode/index.d.ts-e +2 -0
- package/dist/chains/mode/index.js-e +2 -0
- package/dist/chains/mode/logo.svg +1 -1
- package/dist/chains/mode/logo.svg-e +1 -0
- package/dist/chains/mode/metadata.d.ts-e +2 -0
- package/dist/chains/mode/metadata.js-e +32 -0
- package/dist/chains/mode/metadata.json-e +32 -0
- package/dist/chains/mode/metadata.yaml-e +22 -0
- package/dist/chains/modetestnet/logo.svg +1 -1
- package/dist/chains/molten/logo.svg +1 -1
- package/dist/chains/moonbase/logo.svg +1 -20
- package/dist/chains/moonbeam/addresses.d.ts-e +23 -0
- package/dist/chains/moonbeam/addresses.js-e +23 -0
- package/dist/chains/moonbeam/addresses.json-e +23 -0
- package/dist/chains/moonbeam/addresses.yaml-e +21 -0
- package/dist/chains/moonbeam/index.d.ts-e +2 -0
- package/dist/chains/moonbeam/index.js-e +2 -0
- package/dist/chains/moonbeam/logo.svg +1 -1
- package/dist/chains/moonbeam/logo.svg-e +1 -0
- package/dist/chains/moonbeam/metadata.d.ts-e +2 -0
- package/dist/chains/moonbeam/metadata.js-e +31 -0
- package/dist/chains/moonbeam/metadata.json-e +31 -0
- package/dist/chains/moonbeam/metadata.yaml-e +22 -0
- package/dist/chains/moonriver/logo.svg +1 -1
- package/dist/chains/morph/logo.svg +1 -1
- package/dist/chains/nautilus/index.d.ts-e +1 -0
- package/dist/chains/nautilus/index.js-e +1 -0
- package/dist/chains/nautilus/logo.svg +1 -1
- package/dist/chains/nautilus/logo.svg-e +1 -0
- package/dist/chains/nautilus/metadata.d.ts-e +2 -0
- package/dist/chains/nautilus/metadata.js-e +22 -0
- package/dist/chains/nautilus/metadata.json-e +22 -0
- package/dist/chains/nautilus/metadata.yaml-e +16 -0
- package/dist/chains/neoxt4/logo.svg +1 -1
- package/dist/chains/neutron/index.d.ts-e +1 -0
- package/dist/chains/neutron/index.js-e +1 -0
- package/dist/chains/neutron/logo.svg +1 -1
- package/dist/chains/neutron/logo.svg-e +1 -0
- package/dist/chains/neutron/metadata.d.ts-e +2 -0
- package/dist/chains/neutron/metadata.js-e +48 -0
- package/dist/chains/neutron/metadata.json-e +48 -0
- package/dist/chains/neutron/metadata.yaml-e +32 -0
- package/dist/chains/odysseytestnet/logo.svg +1 -1
- package/dist/chains/oortmainnet/logo.svg +1 -1
- package/dist/chains/opbnb/logo.svg +1 -1
- package/dist/chains/opbnbtestnet/logo.svg +1 -1
- package/dist/chains/opengradienttestnet/logo.svg +1 -1
- package/dist/chains/optimism/addresses.d.ts-e +23 -0
- package/dist/chains/optimism/addresses.js-e +23 -0
- package/dist/chains/optimism/addresses.json-e +23 -0
- package/dist/chains/optimism/addresses.yaml-e +21 -0
- package/dist/chains/optimism/index.d.ts-e +2 -0
- package/dist/chains/optimism/index.js-e +2 -0
- package/dist/chains/optimism/logo.svg +1 -1
- package/dist/chains/optimism/logo.svg-e +1 -0
- package/dist/chains/optimism/metadata.d.ts-e +2 -0
- package/dist/chains/optimism/metadata.js-e +32 -0
- package/dist/chains/optimism/metadata.json-e +32 -0
- package/dist/chains/optimism/metadata.yaml-e +23 -0
- package/dist/chains/optimismsepolia/logo.svg +1 -1
- package/dist/chains/orderly/logo.svg +1 -1
- package/dist/chains/osmosis/logo.svg +1 -1
- package/dist/chains/piccadilly/logo.svg +1 -1
- package/dist/chains/plumetestnet/addresses.d.ts-e +22 -0
- package/dist/chains/plumetestnet/addresses.js-e +22 -0
- package/dist/chains/plumetestnet/addresses.json-e +22 -0
- package/dist/chains/plumetestnet/addresses.yaml-e +20 -0
- package/dist/chains/plumetestnet/index.d.ts-e +2 -0
- package/dist/chains/plumetestnet/index.js-e +2 -0
- package/dist/chains/plumetestnet/logo.svg +1 -1
- package/dist/chains/plumetestnet/logo.svg-e +24 -0
- package/dist/chains/plumetestnet/metadata.d.ts-e +2 -0
- package/dist/chains/plumetestnet/metadata.js-e +31 -0
- package/dist/chains/plumetestnet/metadata.json-e +31 -0
- package/dist/chains/plumetestnet/metadata.yaml-e +22 -0
- package/dist/chains/polygon/addresses.d.ts-e +26 -0
- package/dist/chains/polygon/addresses.js-e +26 -0
- package/dist/chains/polygon/addresses.json-e +26 -0
- package/dist/chains/polygon/addresses.yaml-e +24 -0
- package/dist/chains/polygon/index.d.ts-e +2 -0
- package/dist/chains/polygon/index.js-e +2 -0
- package/dist/chains/polygon/logo.svg +1 -1
- package/dist/chains/polygon/logo.svg-e +1 -0
- package/dist/chains/polygon/metadata.d.ts-e +2 -0
- package/dist/chains/polygon/metadata.js-e +38 -0
- package/dist/chains/polygon/metadata.json-e +38 -0
- package/dist/chains/polygon/metadata.yaml-e +25 -0
- package/dist/chains/polygonamoy/logo.svg +1 -1
- package/dist/chains/polygonzkevm/addresses.d.ts-e +21 -0
- package/dist/chains/polygonzkevm/addresses.js-e +21 -0
- package/dist/chains/polygonzkevm/addresses.json-e +21 -0
- package/dist/chains/polygonzkevm/addresses.yaml-e +19 -0
- package/dist/chains/polygonzkevm/index.d.ts-e +2 -0
- package/dist/chains/polygonzkevm/index.js-e +2 -0
- package/dist/chains/polygonzkevm/logo.svg +1 -1
- package/dist/chains/polygonzkevm/logo.svg-e +1 -0
- package/dist/chains/polygonzkevm/metadata.d.ts-e +2 -0
- package/dist/chains/polygonzkevm/metadata.js-e +36 -0
- package/dist/chains/polygonzkevm/metadata.json-e +36 -0
- package/dist/chains/polygonzkevm/metadata.yaml-e +25 -0
- package/dist/chains/polynomialfi/logo.svg +1 -1
- package/dist/chains/prom/logo.svg +1 -1
- package/dist/chains/proofofplay/logo.svg +1 -1
- package/dist/chains/proteustestnet/index.d.ts +1 -0
- package/dist/chains/proteustestnet/index.d.ts-e +1 -0
- package/dist/chains/proteustestnet/index.js +1 -0
- package/dist/chains/proteustestnet/index.js-e +1 -0
- package/dist/chains/proteustestnet/logo.svg +1 -0
- package/dist/chains/proteustestnet/logo.svg-e +1 -0
- package/dist/chains/proteustestnet/metadata.d.ts +2 -0
- package/dist/chains/proteustestnet/metadata.d.ts-e +2 -0
- package/dist/chains/proteustestnet/metadata.js +23 -0
- package/dist/chains/proteustestnet/metadata.js-e +23 -0
- package/dist/chains/proteustestnet/metadata.json +23 -0
- package/dist/chains/proteustestnet/metadata.json-e +23 -0
- package/dist/chains/proteustestnet/metadata.yaml +17 -0
- package/dist/chains/proteustestnet/metadata.yaml-e +17 -0
- package/dist/chains/pulsechain/logo.svg +1 -1
- package/dist/chains/rarichain/logo.svg +1 -1
- package/dist/chains/reactivekopli/logo.svg +1 -1
- package/dist/chains/real/logo.svg +1 -1
- package/dist/chains/real/metadata.js +1 -1
- package/dist/chains/real/metadata.json +1 -1
- package/dist/chains/real/metadata.yaml +2 -1
- package/dist/chains/redstone/addresses.d.ts-e +18 -0
- package/dist/chains/redstone/addresses.js-e +18 -0
- package/dist/chains/redstone/addresses.json-e +18 -0
- package/dist/chains/redstone/addresses.yaml-e +16 -0
- package/dist/chains/redstone/index.d.ts-e +2 -0
- package/dist/chains/redstone/index.js-e +2 -0
- package/dist/chains/redstone/logo.svg +1 -42
- package/dist/chains/redstone/logo.svg-e +42 -0
- package/dist/chains/redstone/metadata.d.ts-e +2 -0
- package/dist/chains/redstone/metadata.js-e +31 -0
- package/dist/chains/redstone/metadata.json-e +31 -0
- package/dist/chains/redstone/metadata.yaml-e +22 -0
- package/dist/chains/rivalz/logo.svg +1 -1
- package/dist/chains/ronin/logo.svg +1 -1
- package/dist/chains/rootstockmainnet/logo.svg +1 -1
- package/dist/chains/rootstocktestnet/logo.svg +1 -1
- package/dist/chains/saakuru/logo.svg +1 -1
- package/dist/chains/sanko/logo.svg +1 -1
- package/dist/chains/schema.json-e +284 -0
- package/dist/chains/scroll/addresses.d.ts-e +21 -0
- package/dist/chains/scroll/addresses.js-e +21 -0
- package/dist/chains/scroll/addresses.json-e +21 -0
- package/dist/chains/scroll/addresses.yaml-e +19 -0
- package/dist/chains/scroll/index.d.ts-e +2 -0
- package/dist/chains/scroll/index.js-e +2 -0
- package/dist/chains/scroll/logo.svg +1 -1
- package/dist/chains/scroll/logo.svg-e +1 -0
- package/dist/chains/scroll/metadata.d.ts-e +2 -0
- package/dist/chains/scroll/metadata.js-e +32 -0
- package/dist/chains/scroll/metadata.json-e +32 -0
- package/dist/chains/scroll/metadata.yaml-e +23 -0
- package/dist/chains/scrollsepolia/addresses.d.ts-e +21 -0
- package/dist/chains/scrollsepolia/addresses.js-e +21 -0
- package/dist/chains/scrollsepolia/addresses.json-e +21 -0
- package/dist/chains/scrollsepolia/addresses.yaml-e +19 -0
- package/dist/chains/scrollsepolia/index.d.ts-e +2 -0
- package/dist/chains/scrollsepolia/index.js-e +2 -0
- package/dist/chains/scrollsepolia/logo.svg +1 -1
- package/dist/chains/scrollsepolia/logo.svg-e +1 -0
- package/dist/chains/scrollsepolia/metadata.d.ts-e +2 -0
- package/dist/chains/scrollsepolia/metadata.js-e +31 -0
- package/dist/chains/scrollsepolia/metadata.json-e +31 -0
- package/dist/chains/scrollsepolia/metadata.yaml-e +22 -0
- package/dist/chains/sei/logo.svg +1 -3
- package/dist/chains/sepolia/addresses.d.ts-e +23 -0
- package/dist/chains/sepolia/addresses.js-e +23 -0
- package/dist/chains/sepolia/addresses.json-e +23 -0
- package/dist/chains/sepolia/addresses.yaml-e +21 -0
- package/dist/chains/sepolia/index.d.ts-e +2 -0
- package/dist/chains/sepolia/index.js-e +2 -0
- package/dist/chains/sepolia/logo.svg-e +1 -0
- package/dist/chains/sepolia/metadata.d.ts-e +2 -0
- package/dist/chains/sepolia/metadata.js-e +37 -0
- package/dist/chains/sepolia/metadata.json-e +37 -0
- package/dist/chains/sepolia/metadata.yaml-e +24 -0
- package/dist/chains/shibarium/logo.svg +1 -1
- package/dist/chains/sketchpad/addresses.d.ts-e +23 -0
- package/dist/chains/sketchpad/addresses.js-e +23 -0
- package/dist/chains/sketchpad/addresses.json-e +23 -0
- package/dist/chains/sketchpad/addresses.yaml-e +21 -0
- package/dist/chains/sketchpad/index.d.ts-e +2 -0
- package/dist/chains/sketchpad/index.js-e +2 -0
- package/dist/chains/sketchpad/logo.svg +1 -1
- package/dist/chains/sketchpad/logo.svg-e +17 -0
- package/dist/chains/sketchpad/metadata.d.ts-e +2 -0
- package/dist/chains/sketchpad/metadata.js-e +27 -0
- package/dist/chains/sketchpad/metadata.json-e +27 -0
- package/dist/chains/sketchpad/metadata.yaml-e +19 -0
- package/dist/chains/smartbch/logo.svg +1 -1
- package/dist/chains/snaxchain/logo.svg +1 -1
- package/dist/chains/solana/index.d.ts +1 -0
- package/dist/chains/solana/index.d.ts-e +1 -0
- package/dist/chains/solana/index.js +1 -0
- package/dist/chains/solana/index.js-e +1 -0
- package/dist/chains/solana/logo.svg +1 -0
- package/dist/chains/solana/logo.svg-e +1 -0
- package/dist/chains/solana/metadata.d.ts +2 -0
- package/dist/chains/solana/metadata.d.ts-e +2 -0
- package/dist/chains/solana/metadata.js +30 -0
- package/dist/chains/solana/metadata.js-e +30 -0
- package/dist/chains/solana/metadata.json +30 -0
- package/dist/chains/solana/metadata.json-e +30 -0
- package/dist/chains/solana/metadata.yaml +21 -0
- package/dist/chains/solana/metadata.yaml-e +21 -0
- package/dist/chains/solanadevnet/index.d.ts-e +1 -0
- package/dist/chains/solanadevnet/index.js-e +1 -0
- package/dist/chains/solanadevnet/logo.svg +1 -1
- package/dist/chains/solanadevnet/logo.svg-e +1 -0
- package/dist/chains/solanadevnet/metadata.d.ts-e +2 -0
- package/dist/chains/solanadevnet/metadata.js-e +32 -0
- package/dist/chains/solanadevnet/metadata.json-e +32 -0
- package/dist/chains/solanadevnet/metadata.yaml-e +23 -0
- package/dist/chains/solanamainnet/logo.svg +1 -1
- package/dist/chains/solanatestnet/index.d.ts-e +1 -0
- package/dist/chains/solanatestnet/index.js-e +1 -0
- package/dist/chains/solanatestnet/logo.svg +1 -1
- package/dist/chains/solanatestnet/logo.svg-e +1 -0
- package/dist/chains/solanatestnet/metadata.d.ts-e +2 -0
- package/dist/chains/solanatestnet/metadata.js-e +32 -0
- package/dist/chains/solanatestnet/metadata.json-e +32 -0
- package/dist/chains/solanatestnet/metadata.yaml-e +23 -0
- package/dist/chains/solotestnet/addresses.d.ts +16 -0
- package/dist/chains/solotestnet/addresses.js +16 -0
- package/dist/chains/solotestnet/addresses.json +16 -0
- package/dist/chains/solotestnet/addresses.yaml +14 -0
- package/dist/chains/solotestnet/index.d.ts +2 -0
- package/dist/chains/solotestnet/index.js +2 -0
- package/dist/chains/solotestnet/logo.svg +8 -0
- package/dist/chains/solotestnet/metadata.d.ts +2 -0
- package/dist/chains/solotestnet/metadata.js +30 -0
- package/dist/chains/solotestnet/metadata.json +30 -0
- package/dist/chains/solotestnet/metadata.yaml +21 -0
- package/dist/chains/soneium/logo.svg +1 -1
- package/dist/chains/soneiumtestnet/logo.svg +1 -1
- package/dist/chains/sonic/logo.svg +1 -1
- package/dist/chains/sonictestnet/logo.svg +1 -1
- package/dist/chains/soon/addresses.d.ts +7 -0
- package/dist/chains/soon/addresses.js +7 -0
- package/dist/chains/soon/addresses.json +7 -0
- package/dist/chains/soon/addresses.yaml +5 -0
- package/dist/chains/soon/index.d.ts +2 -0
- package/dist/chains/soon/index.js +2 -0
- package/dist/chains/soon/logo.svg +1 -0
- package/dist/chains/soon/metadata.d.ts +2 -0
- package/dist/chains/soon/metadata.js +36 -0
- package/dist/chains/soon/metadata.json +36 -0
- package/dist/chains/soon/metadata.yaml +26 -0
- package/dist/chains/sophonsepolia/logo.svg +1 -10
- package/dist/chains/storyodysseytestnet/logo.svg +1 -1
- package/dist/chains/storytestnet/logo.svg +1 -1
- package/dist/chains/stride/logo.svg +1 -1
- package/dist/chains/stridetestnet/logo.svg +1 -1
- package/dist/chains/suavetoliman/logo.svg +1 -1
- package/dist/chains/superpositionmainnet/logo.svg +1 -1
- package/dist/chains/superpositiontestnet/logo.svg +1 -1
- package/dist/chains/superseed/logo.svg +1 -1
- package/dist/chains/superseedtestnet/logo.svg +1 -8
- package/dist/chains/swell/logo.svg +1 -1
- package/dist/chains/taiko/logo.svg +1 -1
- package/dist/chains/taikohekla/logo.svg +1 -1
- package/dist/chains/tangle/logo.svg +1 -1
- package/dist/chains/tangletestnet/logo.svg +1 -1
- package/dist/chains/telos/logo.svg +1 -1
- package/dist/chains/tenet/logo.svg +1 -1
- package/dist/chains/treasure/logo.svg +1 -1
- package/dist/chains/treasuretopaz/logo.svg +1 -1
- package/dist/chains/u2utestnet/logo.svg +1 -1
- package/dist/chains/u2utestnet/metadata.js +4 -0
- package/dist/chains/u2utestnet/metadata.json +4 -0
- package/dist/chains/u2utestnet/metadata.yaml +3 -0
- package/dist/chains/unichain/logo.svg +1 -1
- package/dist/chains/unichaintestnet/logo.svg +1 -1
- package/dist/chains/vana/logo.svg +1 -1
- package/dist/chains/viction/addresses.d.ts-e +26 -0
- package/dist/chains/viction/addresses.js-e +26 -0
- package/dist/chains/viction/addresses.json-e +26 -0
- package/dist/chains/viction/addresses.yaml-e +24 -0
- package/dist/chains/viction/index.d.ts-e +2 -0
- package/dist/chains/viction/index.js-e +2 -0
- package/dist/chains/viction/logo.svg +1 -1
- package/dist/chains/viction/logo.svg-e +1 -0
- package/dist/chains/viction/metadata.d.ts-e +2 -0
- package/dist/chains/viction/metadata.js-e +34 -0
- package/dist/chains/viction/metadata.json-e +34 -0
- package/dist/chains/viction/metadata.yaml-e +23 -0
- package/dist/chains/wanchaintestnet/logo.svg +1 -6
- package/dist/chains/worldchain/logo.svg +1 -1
- package/dist/chains/xai/logo.svg +1 -1
- package/dist/chains/xlayer/logo.svg +1 -1
- package/dist/chains/zeronetwork/logo.svg +1 -1
- package/dist/chains/zetachain/addresses.d.ts-e +18 -0
- package/dist/chains/zetachain/addresses.js-e +18 -0
- package/dist/chains/zetachain/addresses.json-e +18 -0
- package/dist/chains/zetachain/addresses.yaml-e +16 -0
- package/dist/chains/zetachain/index.d.ts-e +2 -0
- package/dist/chains/zetachain/index.js-e +2 -0
- package/dist/chains/zetachain/logo.svg +1 -4
- package/dist/chains/zetachain/logo.svg-e +4 -0
- package/dist/chains/zetachain/metadata.d.ts-e +2 -0
- package/dist/chains/zetachain/metadata.js-e +37 -0
- package/dist/chains/zetachain/metadata.json-e +37 -0
- package/dist/chains/zetachain/metadata.yaml-e +24 -0
- package/dist/chains/zircuit/logo.svg +1 -1
- package/dist/chains/zklink/logo.svg +1 -1
- package/dist/chains/zksync/logo.svg +1 -1
- package/dist/chains/zksyncsepolia/logo.svg +1 -4
- package/dist/chains/zoramainnet/logo.svg +1 -1
- package/dist/chains/zoratestnet/logo.svg +1 -1
- package/dist/consts.d.ts-e +3 -0
- package/dist/consts.js-e +3 -0
- package/dist/core/chains.d.ts +42 -0
- package/dist/core/chains.d.ts-e +42 -0
- package/dist/core/chains.js +73 -0
- package/dist/core/chains.js-e +73 -0
- package/dist/coreChainAddresses.d.ts +519 -0
- package/dist/coreChainAddresses.d.ts-e +519 -0
- package/dist/coreChainAddresses.js +519 -0
- package/dist/coreChainAddresses.js-e +519 -0
- package/dist/coreChainMetadata.d.ts +2 -0
- package/dist/coreChainMetadata.d.ts-e +2 -0
- package/dist/coreChainMetadata.js +982 -0
- package/dist/coreChainMetadata.js-e +982 -0
- package/dist/deployments/warp_routes/PNDR/bsc-ethereum-lumiaprism-config.js +54 -0
- package/dist/deployments/warp_routes/PNDR/bsc-ethereum-lumiaprism-config.json +54 -0
- package/dist/deployments/warp_routes/PNDR/bsc-ethereum-lumiaprism-config.yaml +31 -0
- package/dist/deployments/warp_routes/USDC/arbitrum-ethereum-optimism-polygon-prom-config.js +1 -0
- package/dist/deployments/warp_routes/USDC/arbitrum-ethereum-optimism-polygon-prom-config.json +1 -0
- package/dist/deployments/warp_routes/USDC/arbitrum-ethereum-optimism-polygon-prom-config.yaml +1 -0
- package/dist/deployments/warp_routes/USDC/bsc-polygon-prom-config.js +2 -0
- package/dist/deployments/warp_routes/USDC/bsc-polygon-prom-config.json +2 -0
- package/dist/deployments/warp_routes/USDC/bsc-polygon-prom-config.yaml +2 -0
- package/dist/deployments/warp_routes/USDT/bsc-polygon-prom-config.js +2 -0
- package/dist/deployments/warp_routes/USDT/bsc-polygon-prom-config.json +2 -0
- package/dist/deployments/warp_routes/USDT/bsc-polygon-prom-config.yaml +2 -0
- package/dist/deployments/warp_routes/tETH/eclipsemainnet-ethereum-config.d.ts +2 -0
- package/dist/index-fs.d.ts-e +1 -0
- package/dist/index-fs.js-e +2 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts-e +77 -0
- package/dist/index.js +4 -0
- package/dist/index.js-e +77 -0
- package/dist/registry/BaseRegistry.d.ts-e +44 -0
- package/dist/registry/BaseRegistry.js-e +44 -0
- package/dist/registry/FileSystemRegistry.d.ts-e +34 -0
- package/dist/registry/FileSystemRegistry.js-e +125 -0
- package/dist/registry/GithubRegistry.d.ts-e +46 -0
- package/dist/registry/GithubRegistry.js-e +129 -0
- package/dist/registry/HttpClientRegistry.d.ts +25 -0
- package/dist/registry/HttpClientRegistry.js +74 -0
- package/dist/registry/HttpRegistry.d.ts +9 -0
- package/dist/registry/HttpRegistry.js +129 -0
- package/dist/registry/HttpServer.d.ts +7 -0
- package/dist/registry/HttpServer.js +50 -0
- package/dist/registry/IRegistry.d.ts-e +41 -0
- package/dist/registry/IRegistry.js-e +7 -0
- package/dist/registry/MergedRegistry.d.ts-e +43 -0
- package/dist/registry/MergedRegistry.js-e +88 -0
- package/dist/registry/PartialRegistry.d.ts-e +30 -0
- package/dist/registry/PartialRegistry.js-e +50 -0
- package/dist/registry/SynchronousRegistry.d.ts-e +34 -0
- package/dist/registry/SynchronousRegistry.js-e +41 -0
- package/dist/registry/warp-utils.d.ts-e +3 -0
- package/dist/registry/warp-utils.js-e +22 -0
- package/dist/types.d.ts-e +4 -0
- package/dist/types.js-e +2 -0
- package/dist/utils.d.ts-e +4 -0
- package/dist/utils.js-e +46 -0
- package/dist/warpRouteConfigs.js +93 -34
- package/package.json +5 -2
- /package/dist/deployments/warp_routes/{USDC/ethereum-ancient8-config.d.ts → PNDR/bsc-ethereum-lumiaprism-config.d.ts} +0 -0
- /package/dist/deployments/warp_routes/USDC/{ethereum-eclipsemainnet-solanamainnet-config.d.ts → ancient8-ethereum-config.d.ts} +0 -0
- /package/dist/deployments/warp_routes/USDC/{ethereum-ancient8-config.js → ancient8-ethereum-config.js} +0 -0
- /package/dist/deployments/warp_routes/USDC/{ethereum-ancient8-config.json → ancient8-ethereum-config.json} +0 -0
- /package/dist/deployments/warp_routes/USDC/{ethereum-ancient8-config.yaml → ancient8-ethereum-config.yaml} +0 -0
- /package/dist/deployments/warp_routes/{tETH/ethereum-eclipsemainnet-config.d.ts → USDC/eclipsemainnet-ethereum-solanamainnet-config.d.ts} +0 -0
- /package/dist/deployments/warp_routes/USDC/{ethereum-eclipsemainnet-solanamainnet-config.js → eclipsemainnet-ethereum-solanamainnet-config.js} +0 -0
- /package/dist/deployments/warp_routes/USDC/{ethereum-eclipsemainnet-solanamainnet-config.json → eclipsemainnet-ethereum-solanamainnet-config.json} +0 -0
- /package/dist/deployments/warp_routes/USDC/{ethereum-eclipsemainnet-solanamainnet-config.yaml → eclipsemainnet-ethereum-solanamainnet-config.yaml} +0 -0
- /package/dist/deployments/warp_routes/tETH/{ethereum-eclipsemainnet-config.js → eclipsemainnet-ethereum-config.js} +0 -0
- /package/dist/deployments/warp_routes/tETH/{ethereum-eclipsemainnet-config.json → eclipsemainnet-ethereum-config.json} +0 -0
- /package/dist/deployments/warp_routes/tETH/{ethereum-eclipsemainnet-config.yaml → eclipsemainnet-ethereum-config.yaml} +0 -0
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { parse as yamlParse } from 'yaml';
|
|
4
|
+
import { SCHEMA_REF } from '../consts.js';
|
|
5
|
+
import { ChainAddressesSchema } from '../types.js';
|
|
6
|
+
import { toYamlString } from '../utils.js';
|
|
7
|
+
import { CHAIN_FILE_REGEX } from './BaseRegistry.js';
|
|
8
|
+
import { RegistryType, } from './IRegistry.js';
|
|
9
|
+
import { SynchronousRegistry } from './SynchronousRegistry.js';
|
|
10
|
+
import { warpConfigToWarpAddresses } from './warp-utils.js';
|
|
11
|
+
/**
|
|
12
|
+
* A registry that uses a local file system path as its data source.
|
|
13
|
+
* Requires file system access so it cannot be used in the browser.
|
|
14
|
+
*/
|
|
15
|
+
export class FileSystemRegistry extends SynchronousRegistry {
|
|
16
|
+
type = RegistryType.FileSystem;
|
|
17
|
+
constructor(options) {
|
|
18
|
+
super(options);
|
|
19
|
+
}
|
|
20
|
+
listRegistryContent() {
|
|
21
|
+
if (this.listContentCache)
|
|
22
|
+
return this.listContentCache;
|
|
23
|
+
const chainFileList = this.listFiles(path.join(this.uri, this.getChainsPath()));
|
|
24
|
+
const chains = {};
|
|
25
|
+
for (const chainFilePath of chainFileList) {
|
|
26
|
+
const matches = chainFilePath.match(CHAIN_FILE_REGEX);
|
|
27
|
+
if (!matches)
|
|
28
|
+
continue;
|
|
29
|
+
const [_, chainName, fileName] = matches;
|
|
30
|
+
chains[chainName] ??= {};
|
|
31
|
+
// @ts-ignore allow dynamic key assignment
|
|
32
|
+
chains[chainName][fileName] = chainFilePath;
|
|
33
|
+
}
|
|
34
|
+
// TODO add handling for deployment artifact files here too
|
|
35
|
+
return (this.listContentCache = { chains, deployments: {} });
|
|
36
|
+
}
|
|
37
|
+
getMetadata() {
|
|
38
|
+
if (this.metadataCache)
|
|
39
|
+
return this.metadataCache;
|
|
40
|
+
const chainMetadata = {};
|
|
41
|
+
const repoContents = this.listRegistryContent();
|
|
42
|
+
for (const [chainName, chainFiles] of Object.entries(repoContents.chains)) {
|
|
43
|
+
if (!chainFiles.metadata)
|
|
44
|
+
continue;
|
|
45
|
+
const data = fs.readFileSync(chainFiles.metadata, 'utf8');
|
|
46
|
+
chainMetadata[chainName] = yamlParse(data);
|
|
47
|
+
}
|
|
48
|
+
return (this.metadataCache = chainMetadata);
|
|
49
|
+
}
|
|
50
|
+
getAddresses() {
|
|
51
|
+
if (this.addressCache)
|
|
52
|
+
return this.addressCache;
|
|
53
|
+
const chainAddresses = {};
|
|
54
|
+
const repoContents = this.listRegistryContent();
|
|
55
|
+
for (const [chainName, chainFiles] of Object.entries(repoContents.chains)) {
|
|
56
|
+
if (!chainFiles.addresses)
|
|
57
|
+
continue;
|
|
58
|
+
const data = fs.readFileSync(chainFiles.addresses, 'utf8');
|
|
59
|
+
chainAddresses[chainName] = ChainAddressesSchema.parse(yamlParse(data));
|
|
60
|
+
}
|
|
61
|
+
return (this.addressCache = chainAddresses);
|
|
62
|
+
}
|
|
63
|
+
removeChain(chainName) {
|
|
64
|
+
const chainFiles = this.listRegistryContent().chains[chainName];
|
|
65
|
+
super.removeChain(chainName);
|
|
66
|
+
this.removeFiles(Object.values(chainFiles));
|
|
67
|
+
}
|
|
68
|
+
listFiles(dirPath) {
|
|
69
|
+
if (!fs.existsSync(dirPath))
|
|
70
|
+
return [];
|
|
71
|
+
const entries = fs.readdirSync(dirPath, { withFileTypes: true });
|
|
72
|
+
const filePaths = entries.map((entry) => {
|
|
73
|
+
const fullPath = path.join(dirPath, entry.name);
|
|
74
|
+
return entry.isDirectory() ? this.listFiles(fullPath) : fullPath;
|
|
75
|
+
});
|
|
76
|
+
return filePaths.flat();
|
|
77
|
+
}
|
|
78
|
+
addWarpRoute(config) {
|
|
79
|
+
let { configPath, addressesPath } = this.getWarpArtifactsPaths(config);
|
|
80
|
+
configPath = path.join(this.uri, configPath);
|
|
81
|
+
this.createFile({ filePath: configPath, data: toYamlString(config, SCHEMA_REF) });
|
|
82
|
+
addressesPath = path.join(this.uri, addressesPath);
|
|
83
|
+
const addresses = warpConfigToWarpAddresses(config);
|
|
84
|
+
this.createFile({ filePath: addressesPath, data: toYamlString(addresses) });
|
|
85
|
+
}
|
|
86
|
+
createOrUpdateChain(chain) {
|
|
87
|
+
if (!chain.metadata && !chain.addresses)
|
|
88
|
+
throw new Error(`Chain ${chain.chainName} must have metadata or addresses, preferably both`);
|
|
89
|
+
const currentChains = this.listRegistryContent();
|
|
90
|
+
if (!currentChains.chains[chain.chainName]) {
|
|
91
|
+
this.logger.debug(`Chain ${chain.chainName} not found in registry, adding it now`);
|
|
92
|
+
}
|
|
93
|
+
if (chain.metadata) {
|
|
94
|
+
this.createChainFile(chain.chainName, 'metadata', chain.metadata, this.getMetadata(), SCHEMA_REF);
|
|
95
|
+
}
|
|
96
|
+
if (chain.addresses) {
|
|
97
|
+
this.createChainFile(chain.chainName, 'addresses', chain.addresses, this.getAddresses());
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
createChainFile(chainName, fileName, data, cache, prefix) {
|
|
101
|
+
const filePath = path.join(this.uri, this.getChainsPath(), chainName, `${fileName}.yaml`);
|
|
102
|
+
const currentChains = this.listRegistryContent().chains;
|
|
103
|
+
currentChains[chainName] ||= {};
|
|
104
|
+
currentChains[chainName][fileName] = filePath;
|
|
105
|
+
cache[chainName] = data;
|
|
106
|
+
this.createFile({ filePath, data: toYamlString(data, prefix) });
|
|
107
|
+
}
|
|
108
|
+
createFile(file) {
|
|
109
|
+
const dirPath = path.dirname(file.filePath);
|
|
110
|
+
if (!fs.existsSync(dirPath))
|
|
111
|
+
fs.mkdirSync(dirPath, {
|
|
112
|
+
recursive: true,
|
|
113
|
+
});
|
|
114
|
+
fs.writeFileSync(file.filePath, file.data);
|
|
115
|
+
}
|
|
116
|
+
removeFiles(filePaths) {
|
|
117
|
+
for (const filePath of filePaths) {
|
|
118
|
+
fs.unlinkSync(filePath);
|
|
119
|
+
}
|
|
120
|
+
const parentDir = path.dirname(filePaths[0]);
|
|
121
|
+
if (fs.readdirSync(parentDir).length === 0) {
|
|
122
|
+
fs.rmdirSync(parentDir);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { Logger } from 'pino';
|
|
2
|
+
import type { ChainMap, ChainMetadata, ChainName, WarpCoreConfig } from '@hyperlane-xyz/sdk';
|
|
3
|
+
import { ChainAddresses } from '../types.js';
|
|
4
|
+
import { BaseRegistry } from './BaseRegistry.js';
|
|
5
|
+
import { RegistryType, type ChainFiles, type IRegistry, type RegistryContent } from './IRegistry.js';
|
|
6
|
+
export interface GithubRegistryOptions {
|
|
7
|
+
uri?: string;
|
|
8
|
+
branch?: string;
|
|
9
|
+
authToken?: string;
|
|
10
|
+
logger?: Logger;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* A registry that uses a github repository as its data source.
|
|
14
|
+
* Reads are performed via the github API and github's raw content URLs.
|
|
15
|
+
* Writes are not yet supported (TODO)
|
|
16
|
+
*/
|
|
17
|
+
export declare class GithubRegistry extends BaseRegistry implements IRegistry {
|
|
18
|
+
readonly type = RegistryType.Github;
|
|
19
|
+
readonly url: URL;
|
|
20
|
+
readonly branch: string;
|
|
21
|
+
readonly repoOwner: string;
|
|
22
|
+
readonly repoName: string;
|
|
23
|
+
constructor(options?: GithubRegistryOptions);
|
|
24
|
+
listRegistryContent(): Promise<RegistryContent>;
|
|
25
|
+
getChains(): Promise<Array<ChainName>>;
|
|
26
|
+
getMetadata(): Promise<ChainMap<ChainMetadata>>;
|
|
27
|
+
getChainMetadata(chainName: ChainName): Promise<ChainMetadata | null>;
|
|
28
|
+
getAddresses(): Promise<ChainMap<ChainAddresses>>;
|
|
29
|
+
getChainAddresses(chainName: ChainName): Promise<ChainAddresses | null>;
|
|
30
|
+
addChain(_chains: {
|
|
31
|
+
chainName: ChainName;
|
|
32
|
+
metadata?: ChainMetadata;
|
|
33
|
+
addresses?: ChainAddresses;
|
|
34
|
+
}): Promise<void>;
|
|
35
|
+
updateChain(_chains: {
|
|
36
|
+
chainName: ChainName;
|
|
37
|
+
metadata?: ChainMetadata;
|
|
38
|
+
addresses?: ChainAddresses;
|
|
39
|
+
}): Promise<void>;
|
|
40
|
+
removeChain(_chains: ChainName): Promise<void>;
|
|
41
|
+
addWarpRoute(_config: WarpCoreConfig): Promise<void>;
|
|
42
|
+
protected getRawContentUrl(path: string): string;
|
|
43
|
+
protected fetchChainFiles<T>(fileName: keyof ChainFiles, chainNames?: ChainName[]): Promise<ChainMap<T>>;
|
|
44
|
+
protected fetchSingleChainFile<T>(fileName: keyof ChainFiles, chainName: ChainName): Promise<T | null>;
|
|
45
|
+
protected fetch(url: string): Promise<Response>;
|
|
46
|
+
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { parse as yamlParse } from 'yaml';
|
|
2
|
+
import { DEFAULT_GITHUB_REGISTRY, GITHUB_FETCH_CONCURRENCY_LIMIT } from '../consts.js';
|
|
3
|
+
import { concurrentMap } from '../utils.js';
|
|
4
|
+
import { BaseRegistry, CHAIN_FILE_REGEX } from './BaseRegistry.js';
|
|
5
|
+
import { RegistryType, } from './IRegistry.js';
|
|
6
|
+
/**
|
|
7
|
+
* A registry that uses a github repository as its data source.
|
|
8
|
+
* Reads are performed via the github API and github's raw content URLs.
|
|
9
|
+
* Writes are not yet supported (TODO)
|
|
10
|
+
*/
|
|
11
|
+
export class GithubRegistry extends BaseRegistry {
|
|
12
|
+
type = RegistryType.Github;
|
|
13
|
+
url;
|
|
14
|
+
branch;
|
|
15
|
+
repoOwner;
|
|
16
|
+
repoName;
|
|
17
|
+
constructor(options = {}) {
|
|
18
|
+
super({ uri: options.uri ?? DEFAULT_GITHUB_REGISTRY, logger: options.logger });
|
|
19
|
+
this.url = new URL(this.uri);
|
|
20
|
+
this.branch = options.branch ?? 'main';
|
|
21
|
+
const pathSegments = this.url.pathname.split('/');
|
|
22
|
+
if (pathSegments.length < 2)
|
|
23
|
+
throw new Error('Invalid github url');
|
|
24
|
+
this.repoOwner = pathSegments.at(-2);
|
|
25
|
+
this.repoName = pathSegments.at(-1);
|
|
26
|
+
}
|
|
27
|
+
async listRegistryContent() {
|
|
28
|
+
if (this.listContentCache)
|
|
29
|
+
return this.listContentCache;
|
|
30
|
+
// This uses the tree API instead of the simpler directory list API because it
|
|
31
|
+
// allows us to get a full view of all files in one request.
|
|
32
|
+
const apiUrl = `https://api.github.com/repos/${this.repoOwner}/${this.repoName}/git/trees/${this.branch}?recursive=true`;
|
|
33
|
+
const response = await this.fetch(apiUrl);
|
|
34
|
+
const result = await response.json();
|
|
35
|
+
const tree = result.tree;
|
|
36
|
+
const chainPath = this.getChainsPath();
|
|
37
|
+
const chains = {};
|
|
38
|
+
for (const node of tree) {
|
|
39
|
+
if (CHAIN_FILE_REGEX.test(node.path)) {
|
|
40
|
+
const [_, chainName, fileName, extension] = node.path.match(CHAIN_FILE_REGEX);
|
|
41
|
+
chains[chainName] ??= {};
|
|
42
|
+
// @ts-ignore allow dynamic key assignment
|
|
43
|
+
chains[chainName][fileName] = this.getRawContentUrl(`${chainPath}/${chainName}/${fileName}.${extension}`);
|
|
44
|
+
}
|
|
45
|
+
// TODO add handling for deployment artifact files here too
|
|
46
|
+
}
|
|
47
|
+
return (this.listContentCache = { chains, deployments: {} });
|
|
48
|
+
}
|
|
49
|
+
async getChains() {
|
|
50
|
+
const repoContents = await this.listRegistryContent();
|
|
51
|
+
return Object.keys(repoContents.chains);
|
|
52
|
+
}
|
|
53
|
+
async getMetadata() {
|
|
54
|
+
if (this.metadataCache && this.isMetadataCacheFull)
|
|
55
|
+
return this.metadataCache;
|
|
56
|
+
const chainMetadata = await this.fetchChainFiles('metadata');
|
|
57
|
+
this.isMetadataCacheFull = true;
|
|
58
|
+
return (this.metadataCache = chainMetadata);
|
|
59
|
+
}
|
|
60
|
+
async getChainMetadata(chainName) {
|
|
61
|
+
if (this.metadataCache?.[chainName])
|
|
62
|
+
return this.metadataCache[chainName];
|
|
63
|
+
const data = await this.fetchSingleChainFile('metadata', chainName);
|
|
64
|
+
if (!data)
|
|
65
|
+
return null;
|
|
66
|
+
this.metadataCache = { ...this.metadataCache, [chainName]: data };
|
|
67
|
+
return data;
|
|
68
|
+
}
|
|
69
|
+
async getAddresses() {
|
|
70
|
+
if (this.addressCache && this.isAddressCacheFull)
|
|
71
|
+
return this.addressCache;
|
|
72
|
+
const chainAddresses = await this.fetchChainFiles('addresses');
|
|
73
|
+
this.isAddressCacheFull = true;
|
|
74
|
+
return (this.addressCache = chainAddresses);
|
|
75
|
+
}
|
|
76
|
+
async getChainAddresses(chainName) {
|
|
77
|
+
if (this.addressCache?.[chainName])
|
|
78
|
+
return this.addressCache[chainName];
|
|
79
|
+
const data = await this.fetchSingleChainFile('addresses', chainName);
|
|
80
|
+
if (!data)
|
|
81
|
+
return null;
|
|
82
|
+
this.addressCache = { ...this.addressCache, [chainName]: data };
|
|
83
|
+
return data;
|
|
84
|
+
}
|
|
85
|
+
async addChain(_chains) {
|
|
86
|
+
throw new Error('TODO: Implement');
|
|
87
|
+
}
|
|
88
|
+
async updateChain(_chains) {
|
|
89
|
+
throw new Error('TODO: Implement');
|
|
90
|
+
}
|
|
91
|
+
async removeChain(_chains) {
|
|
92
|
+
throw new Error('TODO: Implement');
|
|
93
|
+
}
|
|
94
|
+
async addWarpRoute(_config) {
|
|
95
|
+
throw new Error('TODO: Implement');
|
|
96
|
+
}
|
|
97
|
+
getRawContentUrl(path) {
|
|
98
|
+
return `https://raw.githubusercontent.com/${this.repoOwner}/${this.repoName}/${this.branch}/${path}`;
|
|
99
|
+
}
|
|
100
|
+
// Fetches all files of a particular type in parallel
|
|
101
|
+
// Defaults to all known chains if chainNames is not provided
|
|
102
|
+
async fetchChainFiles(fileName, chainNames) {
|
|
103
|
+
const repoContents = await this.listRegistryContent();
|
|
104
|
+
chainNames ||= Object.keys(repoContents.chains);
|
|
105
|
+
const fileUrls = chainNames.reduce((acc, chainName) => {
|
|
106
|
+
const fileUrl = repoContents.chains[chainName][fileName];
|
|
107
|
+
if (fileUrl)
|
|
108
|
+
acc[chainName] = fileUrl;
|
|
109
|
+
return acc;
|
|
110
|
+
}, {});
|
|
111
|
+
const results = await concurrentMap(GITHUB_FETCH_CONCURRENCY_LIMIT, Object.entries(fileUrls), async ([chainName, fileUrl]) => {
|
|
112
|
+
const response = await this.fetch(fileUrl);
|
|
113
|
+
const data = await response.text();
|
|
114
|
+
return [chainName, yamlParse(data)];
|
|
115
|
+
});
|
|
116
|
+
return Object.fromEntries(results);
|
|
117
|
+
}
|
|
118
|
+
async fetchSingleChainFile(fileName, chainName) {
|
|
119
|
+
const results = await this.fetchChainFiles(fileName, [chainName]);
|
|
120
|
+
return results[chainName] ?? null;
|
|
121
|
+
}
|
|
122
|
+
async fetch(url) {
|
|
123
|
+
this.logger.debug(`Fetching from github: ${url}`);
|
|
124
|
+
const response = await fetch(url);
|
|
125
|
+
if (!response.ok)
|
|
126
|
+
throw new Error(`Failed to fetch from github: ${response.status} ${response.statusText}`);
|
|
127
|
+
return response;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ChainMap, ChainMetadata, ChainName, WarpCoreConfig } from '@hyperlane-xyz/sdk';
|
|
2
|
+
import { ChainAddresses, MaybePromise, WarpRouteConfigMap } from '../types.js';
|
|
3
|
+
import { IRegistry, RegistryContent, RegistryType, UpdateChainParams, WarpRouteFilterParams } from './IRegistry.js';
|
|
4
|
+
export declare class HttpClientRegistry implements IRegistry {
|
|
5
|
+
private baseUrl;
|
|
6
|
+
constructor(baseUrl?: string);
|
|
7
|
+
getChainMetadata(chainName: ChainName): MaybePromise<ChainMetadata>;
|
|
8
|
+
updateChain(update: UpdateChainParams): MaybePromise<void>;
|
|
9
|
+
get type(): RegistryType;
|
|
10
|
+
get uri(): string;
|
|
11
|
+
getUri(itemPath?: string): string;
|
|
12
|
+
listRegistryContent(): MaybePromise<RegistryContent>;
|
|
13
|
+
getChains(): MaybePromise<Array<ChainName>>;
|
|
14
|
+
getMetadata(): MaybePromise<ChainMap<ChainMetadata>>;
|
|
15
|
+
getAddresses(): MaybePromise<ChainMap<ChainAddresses>>;
|
|
16
|
+
getChainAddresses(chainName: ChainName): MaybePromise<ChainAddresses | null>;
|
|
17
|
+
getChainLogoUri(chainName: ChainName): Promise<string | null>;
|
|
18
|
+
addChain(chain: UpdateChainParams): MaybePromise<void>;
|
|
19
|
+
removeChain(chain: ChainName): MaybePromise<void>;
|
|
20
|
+
getWarpRoute(routeId: string): MaybePromise<WarpCoreConfig | null>;
|
|
21
|
+
getWarpRoutes(filter?: WarpRouteFilterParams): MaybePromise<WarpRouteConfigMap>;
|
|
22
|
+
addWarpRoute(config: WarpCoreConfig): MaybePromise<void>;
|
|
23
|
+
merge(otherRegistry: IRegistry): IRegistry;
|
|
24
|
+
private fetchJson;
|
|
25
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
export class HttpClientRegistry {
|
|
2
|
+
baseUrl;
|
|
3
|
+
constructor(baseUrl = 'http://localhost:3000/api') {
|
|
4
|
+
this.baseUrl = baseUrl;
|
|
5
|
+
}
|
|
6
|
+
getChainMetadata(chainName) {
|
|
7
|
+
return this.fetchJson(`/metadata/${chainName}`);
|
|
8
|
+
}
|
|
9
|
+
updateChain(update) {
|
|
10
|
+
return this.fetchJson(`/metadata/${update.chainName}`, {
|
|
11
|
+
method: 'POST',
|
|
12
|
+
body: JSON.stringify(update.metadata),
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
get type() {
|
|
16
|
+
throw new Error('Method not implemented.');
|
|
17
|
+
}
|
|
18
|
+
get uri() {
|
|
19
|
+
throw new Error('Method not implemented.');
|
|
20
|
+
}
|
|
21
|
+
getUri(itemPath) {
|
|
22
|
+
throw new Error('Method not implemented.');
|
|
23
|
+
}
|
|
24
|
+
listRegistryContent() {
|
|
25
|
+
throw new Error('Method not implemented.');
|
|
26
|
+
}
|
|
27
|
+
getChains() {
|
|
28
|
+
throw new Error('Method not implemented.');
|
|
29
|
+
}
|
|
30
|
+
getMetadata() {
|
|
31
|
+
throw new Error('Method not implemented.');
|
|
32
|
+
}
|
|
33
|
+
getAddresses() {
|
|
34
|
+
throw new Error('Method not implemented.');
|
|
35
|
+
}
|
|
36
|
+
getChainAddresses(chainName) {
|
|
37
|
+
throw new Error('Method not implemented.');
|
|
38
|
+
}
|
|
39
|
+
getChainLogoUri(chainName) {
|
|
40
|
+
throw new Error('Method not implemented.');
|
|
41
|
+
}
|
|
42
|
+
addChain(chain) {
|
|
43
|
+
throw new Error('Method not implemented.');
|
|
44
|
+
}
|
|
45
|
+
removeChain(chain) {
|
|
46
|
+
throw new Error('Method not implemented.');
|
|
47
|
+
}
|
|
48
|
+
getWarpRoute(routeId) {
|
|
49
|
+
throw new Error('Method not implemented.');
|
|
50
|
+
}
|
|
51
|
+
getWarpRoutes(filter) {
|
|
52
|
+
throw new Error('Method not implemented.');
|
|
53
|
+
}
|
|
54
|
+
addWarpRoute(config) {
|
|
55
|
+
throw new Error('Method not implemented.');
|
|
56
|
+
}
|
|
57
|
+
merge(otherRegistry) {
|
|
58
|
+
throw new Error('Method not implemented.');
|
|
59
|
+
}
|
|
60
|
+
async fetchJson(endpoint, options = {}) {
|
|
61
|
+
const response = await fetch(`${this.baseUrl}${endpoint}`, {
|
|
62
|
+
...options,
|
|
63
|
+
headers: {
|
|
64
|
+
'Content-Type': 'application/json',
|
|
65
|
+
...options.headers,
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
if (!response.ok) {
|
|
69
|
+
const error = await response.json();
|
|
70
|
+
throw new Error(error.error || 'Request failed');
|
|
71
|
+
}
|
|
72
|
+
return response.json();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Express } from 'express';
|
|
2
|
+
import { IRegistry } from './IRegistry.js';
|
|
3
|
+
export declare class HttpRegistry {
|
|
4
|
+
app: Express;
|
|
5
|
+
registry: IRegistry;
|
|
6
|
+
constructor(registry: IRegistry);
|
|
7
|
+
serve(registry: IRegistry): void;
|
|
8
|
+
start(port?: string | number): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import express, { Router } from 'express';
|
|
2
|
+
export class HttpRegistry {
|
|
3
|
+
app;
|
|
4
|
+
registry;
|
|
5
|
+
constructor(registry) {
|
|
6
|
+
this.registry = registry;
|
|
7
|
+
this.app = express();
|
|
8
|
+
const router = Router();
|
|
9
|
+
this.app.use(express.json());
|
|
10
|
+
// Get all registry content
|
|
11
|
+
router.get('/content', async (req, res) => {
|
|
12
|
+
try {
|
|
13
|
+
const content = await registry.listRegistryContent();
|
|
14
|
+
res.json(content);
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
const errorMessage = error instanceof Error ? error.message : 'An unknown error occurred';
|
|
18
|
+
res.status(500).json({ error: errorMessage });
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
// Get all chains
|
|
22
|
+
router.get('/chains', async (req, res) => {
|
|
23
|
+
try {
|
|
24
|
+
const chains = await registry.getChains();
|
|
25
|
+
res.json(chains);
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
const errorMessage = error instanceof Error ? error.message : 'An unknown error occurred';
|
|
29
|
+
res.status(500).json({ error: errorMessage });
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
// Get chain metadata
|
|
33
|
+
router.get('/metadata/:chain', async (req, res) => {
|
|
34
|
+
try {
|
|
35
|
+
const chainName = req.params.chain;
|
|
36
|
+
const metadata = await registry.getChainMetadata(chainName);
|
|
37
|
+
if (!metadata) {
|
|
38
|
+
return res.status(404).json({ error: 'Chain metadata not found' });
|
|
39
|
+
}
|
|
40
|
+
return res.json(metadata);
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
const errorMessage = error instanceof Error ? error.message : 'An unknown error occurred';
|
|
44
|
+
return res.status(500).json({ error: errorMessage });
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
// Get chain addresses
|
|
48
|
+
router.get('/addresses/:chain', async (req, res) => {
|
|
49
|
+
try {
|
|
50
|
+
const chainName = req.params.chain;
|
|
51
|
+
const addresses = await registry.getChainAddresses(chainName);
|
|
52
|
+
if (!addresses) {
|
|
53
|
+
return res.status(404).json({ error: 'Chain addresses not found' });
|
|
54
|
+
}
|
|
55
|
+
return res.json(addresses);
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
const errorMessage = error instanceof Error ? error.message : 'An unknown error occurred';
|
|
59
|
+
return res.status(500).json({ error: errorMessage });
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
// Get chain logo URI
|
|
63
|
+
router.get('/logo/:chain', async (req, res) => {
|
|
64
|
+
try {
|
|
65
|
+
const chainName = req.params.chain;
|
|
66
|
+
const logoUri = await registry.getChainLogoUri(chainName);
|
|
67
|
+
if (!logoUri) {
|
|
68
|
+
return res.status(404).json({ error: 'Chain logo not found' });
|
|
69
|
+
}
|
|
70
|
+
return res.json({ logoUri });
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
const errorMessage = error instanceof Error ? error.message : 'An unknown error occurred';
|
|
74
|
+
return res.status(500).json({ error: errorMessage });
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
// Get warp route
|
|
78
|
+
router.get('/warp-route/:id', async (req, res) => {
|
|
79
|
+
try {
|
|
80
|
+
const routeId = req.params.id;
|
|
81
|
+
const route = await registry.getWarpRoute(routeId);
|
|
82
|
+
if (!route) {
|
|
83
|
+
return res.status(404).json({ error: 'Warp route not found' });
|
|
84
|
+
}
|
|
85
|
+
return res.json(route);
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
const errorMessage = error instanceof Error ? error.message : 'An unknown error occurred';
|
|
89
|
+
return res.status(500).json({ error: errorMessage });
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
// Get filtered warp routes
|
|
93
|
+
router.get('/warp-routes', async (req, res) => {
|
|
94
|
+
try {
|
|
95
|
+
const filter = {
|
|
96
|
+
symbol: req.query.symbol,
|
|
97
|
+
chainName: req.query.chainName,
|
|
98
|
+
};
|
|
99
|
+
const routes = await registry.getWarpRoutes(filter);
|
|
100
|
+
return res.json(routes);
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
const errorMessage = error instanceof Error ? error.message : 'An unknown error occurred';
|
|
104
|
+
return res.status(500).json({ error: errorMessage });
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
// Add warp route
|
|
108
|
+
router.post('/warp-route', async (req, res) => {
|
|
109
|
+
try {
|
|
110
|
+
const config = req.body;
|
|
111
|
+
await registry.addWarpRoute(config);
|
|
112
|
+
return res.status(201).json({ message: 'Warp route added successfully' });
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
const errorMessage = error instanceof Error ? error.message : 'An unknown error occurred';
|
|
116
|
+
return res.status(500).json({ error: errorMessage });
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
this.app.use('/api', router);
|
|
120
|
+
}
|
|
121
|
+
serve(registry) {
|
|
122
|
+
this.registry = registry;
|
|
123
|
+
}
|
|
124
|
+
start(port = process.env.PORT || 3000) {
|
|
125
|
+
this.app.listen(port, () => {
|
|
126
|
+
console.log(`Server running on port ${port}`);
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import express, { Router } from 'express';
|
|
2
|
+
export class HttpServer {
|
|
3
|
+
app;
|
|
4
|
+
constructor(registry) {
|
|
5
|
+
this.app = express();
|
|
6
|
+
const router = Router();
|
|
7
|
+
this.app.use(express.json());
|
|
8
|
+
// Get chain metadata
|
|
9
|
+
router.get('/metadata/:chain', async (req, res) => {
|
|
10
|
+
try {
|
|
11
|
+
const chainName = req.params.chain;
|
|
12
|
+
const metadata = await registry.getChainMetadata(chainName);
|
|
13
|
+
if (!metadata) {
|
|
14
|
+
return res.status(404).json({ error: 'Chain metadata not found' });
|
|
15
|
+
}
|
|
16
|
+
return res.json(metadata);
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
const errorMessage = error instanceof Error ? error.message : 'An unknown error occurred';
|
|
20
|
+
return res.status(500).json({ error: errorMessage });
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
router.post('/metadata/:chain', async (req, res) => {
|
|
24
|
+
try {
|
|
25
|
+
const chainName = req.params.chain;
|
|
26
|
+
const metadata = req.body;
|
|
27
|
+
await registry.updateChain({
|
|
28
|
+
chainName,
|
|
29
|
+
metadata,
|
|
30
|
+
});
|
|
31
|
+
return res.status(200).json({ message: 'Chain metadata updated successfully' });
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
const errorMessage = error instanceof Error ? error.message : 'An unknown error occurred';
|
|
35
|
+
return res.status(500).json({ error: errorMessage });
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
start(port = process.env.PORT || 3000) {
|
|
40
|
+
return new Promise((resolve, reject) => {
|
|
41
|
+
const server = this.app.listen(port, () => {
|
|
42
|
+
process.stdout.write(`Server running on port ${port}\n`);
|
|
43
|
+
resolve();
|
|
44
|
+
});
|
|
45
|
+
server.on('error', (error) => {
|
|
46
|
+
reject(error);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { ChainMap, ChainMetadata, ChainName, WarpCoreConfig } from '@hyperlane-xyz/sdk';
|
|
2
|
+
import type { ChainAddresses, MaybePromise } from '../types.js';
|
|
3
|
+
export interface ChainFiles {
|
|
4
|
+
metadata?: string;
|
|
5
|
+
addresses?: string;
|
|
6
|
+
logo?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface RegistryContent {
|
|
9
|
+
chains: ChainMap<ChainFiles>;
|
|
10
|
+
deployments: {};
|
|
11
|
+
}
|
|
12
|
+
export declare enum RegistryType {
|
|
13
|
+
Github = "github",
|
|
14
|
+
FileSystem = "filesystem",
|
|
15
|
+
Merged = "merged",
|
|
16
|
+
Partial = "partial"
|
|
17
|
+
}
|
|
18
|
+
export interface IRegistry {
|
|
19
|
+
type: RegistryType;
|
|
20
|
+
uri: string;
|
|
21
|
+
listRegistryContent(): MaybePromise<RegistryContent>;
|
|
22
|
+
getChains(): MaybePromise<Array<ChainName>>;
|
|
23
|
+
getMetadata(): MaybePromise<ChainMap<ChainMetadata>>;
|
|
24
|
+
getChainMetadata(chainName: ChainName): MaybePromise<ChainMetadata | null>;
|
|
25
|
+
getAddresses(): MaybePromise<ChainMap<ChainAddresses>>;
|
|
26
|
+
getChainAddresses(chainName: ChainName): MaybePromise<ChainAddresses | null>;
|
|
27
|
+
getChainLogoUri(chainName: ChainName): Promise<string | null>;
|
|
28
|
+
addChain(chain: {
|
|
29
|
+
chainName: ChainName;
|
|
30
|
+
metadata?: ChainMetadata;
|
|
31
|
+
addresses?: ChainAddresses;
|
|
32
|
+
}): MaybePromise<void>;
|
|
33
|
+
updateChain(chain: {
|
|
34
|
+
chainName: ChainName;
|
|
35
|
+
metadata?: ChainMetadata;
|
|
36
|
+
addresses?: ChainAddresses;
|
|
37
|
+
}): MaybePromise<void>;
|
|
38
|
+
removeChain(chain: ChainName): MaybePromise<void>;
|
|
39
|
+
addWarpRoute(config: WarpCoreConfig): MaybePromise<void>;
|
|
40
|
+
merge(otherRegistry: IRegistry): IRegistry;
|
|
41
|
+
}
|