From 7f28ca2b1b188b8937eea93eac470c77e727630b Mon Sep 17 00:00:00 2001 From: Kieran O'Neill Date: Wed, 13 Aug 2025 12:17:23 +0200 Subject: [PATCH] feat(chains): adds the gnosis and chiados chains --- packages/chains/src/chains/ChiadoTestnet.ts | 35 +++++++++++++++++++++ packages/chains/src/chains/GnosisChain.ts | 35 +++++++++++++++++++++ packages/chains/src/chains/index.ts | 4 +++ packages/chains/src/constants/GnosisURIs.ts | 3 ++ packages/chains/src/constants/index.ts | 1 + 5 files changed, 78 insertions(+) create mode 100644 packages/chains/src/chains/ChiadoTestnet.ts create mode 100644 packages/chains/src/chains/GnosisChain.ts create mode 100644 packages/chains/src/constants/GnosisURIs.ts diff --git a/packages/chains/src/chains/ChiadoTestnet.ts b/packages/chains/src/chains/ChiadoTestnet.ts new file mode 100644 index 0000000..2223df9 --- /dev/null +++ b/packages/chains/src/chains/ChiadoTestnet.ts @@ -0,0 +1,35 @@ +// constants +import { GNOSIS_CHAIN_LOGO_URI, GNOSIS_CURRENCY_ICON_URI } from '@/constants'; + +// decorators +import { EVMChain } from '@/decorators'; + +// enums +import { CAIP002Namespace } from '@/enums'; + +// types +import type { Transports } from '@/types'; + +export default class ChiadoTestnet extends EVMChain { + // public static variables + public static readonly displayName = 'Chiado Testnet'; + public static readonly iconURI = GNOSIS_CHAIN_LOGO_URI; + public static readonly namespace = CAIP002Namespace.EIP155; + public static readonly nativeCurrency = { + decimals: 18, + iconURI: GNOSIS_CURRENCY_ICON_URI, + name: 'Testnet xDai', + symbol: 'xDAI', + }; + public static readonly transports: Transports = { + https: { + default: 0, + rpcURLs: ['https://rpc.chiadochain.net'], + }, + websockets: { + default: 0, + rpcURLs: ['wss://rpc.chiadochain.net/wss'], + }, + }; + public static readonly testnet = true; +} diff --git a/packages/chains/src/chains/GnosisChain.ts b/packages/chains/src/chains/GnosisChain.ts new file mode 100644 index 0000000..4f5e0eb --- /dev/null +++ b/packages/chains/src/chains/GnosisChain.ts @@ -0,0 +1,35 @@ +// constants +import { GNOSIS_CHAIN_LOGO_URI, GNOSIS_CURRENCY_ICON_URI } from '@/constants'; + +// decorators +import { EVMChain } from '@/decorators'; + +// enums +import { CAIP002Namespace } from '@/enums'; + +// types +import type { Transports } from '@/types'; + +export default class GnosisChain extends EVMChain { + // public static variables + public static readonly displayName = 'Gnosis Chain'; + public static readonly iconURI = GNOSIS_CHAIN_LOGO_URI; + public static readonly namespace = CAIP002Namespace.EIP155; + public static readonly nativeCurrency = { + decimals: 18, + iconURI: GNOSIS_CURRENCY_ICON_URI, + name: 'xDai', + symbol: 'xDAI', + }; + public static readonly transports: Transports = { + https: { + default: 0, + rpcURLs: ['https://rpc.gnosischain.com'], + }, + websockets: { + default: 0, + rpcURLs: ['wss://rpc.gnosischain.com/wss'], + }, + }; + public static readonly testnet = false; +} diff --git a/packages/chains/src/chains/index.ts b/packages/chains/src/chains/index.ts index 9809788..e0aa9d6 100644 --- a/packages/chains/src/chains/index.ts +++ b/packages/chains/src/chains/index.ts @@ -2,5 +2,9 @@ export { default as Algorand } from './Algorand'; export { default as AlgorandBetanet } from './AlgorandBetanet'; export { default as AlgorandFNet } from './AlgorandFNet'; export { default as AlgorandTestnet } from './AlgorandTestnet'; +export { default as ChiadoTestnet } from './ChiadoTestnet'; +export { default as Ethereum } from './Ethereum'; +export { default as EthereumSepolia } from './EthereumSepolia'; +export { default as GnosisChain } from './GnosisChain'; export { default as Voi } from './Voi'; export { default as VoiTestnet } from './VoiTestnet'; diff --git a/packages/chains/src/constants/GnosisURIs.ts b/packages/chains/src/constants/GnosisURIs.ts new file mode 100644 index 0000000..22a4f7d --- /dev/null +++ b/packages/chains/src/constants/GnosisURIs.ts @@ -0,0 +1,3 @@ +export const GNOSIS_CHAIN_LOGO_URI = `data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwYXRoIGQ9Ik0gLTAuNSwtMC41IEMgMTcwLjE2NywtMC41IDM0MC44MzMsLTAuNSA1MTEuNSwtMC41QyA1MTEuNSwxNzAuMTY3IDUxMS41LDM0MC44MzMgNTExLjUsNTExLjVDIDM0MC44MzMsNTExLjUgMTcwLjE2Nyw1MTEuNSAtMC41LDUxMS41QyAtMC41LDM0MC44MzMgLTAuNSwxNzAuMTY3IC0wLjUsLTAuNSBaIiBmaWxsPSIjMTMzNjI5Ii8+CiAgPHBhdGggZD0iTSAyNDQuNSwxMjcuNSBDIDI5MS4xNTMsMTI0LjgzNyAzMjguODIsMTQxLjY3IDM1Ny41LDE3OEMgMzI0LjMzMywyMTIuNSAyOTAuNSwyNDYuMzMzIDI1NiwyNzkuNUMgMjIxLjU0LDI0Ni4wNCAxODcuMzczLDIxMi4yMDcgMTUzLjUsMTc4QyAxNzYuODIzLDE0OC42NjkgMjA3LjE1NiwxMzEuODM2IDI0NC41LDEyNy41IFoiIGZpbGw9IiNmMGViZGUiLz4KICA8cGF0aCBkPSJNIDI0Mi41LDE0NS41IEMgMjc3Ljk1NiwxNDIuMzE1IDMwOC4yODksMTUyLjk4MSAzMzMuNSwxNzcuNUMgMzA4LjE0LDIwMy42OTMgMjgyLjMwNywyMjkuMzYgMjU2LDI1NC41QyAyMjkuNjkzLDIyOS4zNiAyMDMuODYsMjAzLjY5MyAxNzguNSwxNzcuNUMgMTkwLjkyNCwxNjQuMjggMjA1LjkyNCwxNTUuMTE0IDIyMy41LDE1MEMgMjI5LjkyOSwxNDguMzA4IDIzNi4yNjMsMTQ2LjgwOCAyNDIuNSwxNDUuNSBaIiBmaWxsPSIjMTMzNjI5Ii8+CiAgPHBhdGggZD0iTSAxNDUuNSwxODkuNSBDIDE1My40MjQsMTk1Ljc1NSAxNjAuNzU4LDIwMi43NTUgMTY3LjUsMjEwLjVDIDE1MS42NiwyMzMuMDggMTUyLjk5NCwyNTQuNTggMTcxLjUsMjc1QyAxOTEuNzUyLDI4OS43NjggMjEyLjQxOCwyOTAuMjY4IDIzMy41LDI3Ni41QyAyNDEuMTUyLDI4My42NTIgMjQ4LjY1MiwyOTAuOTg1IDI1NiwyOTguNUMgMjYzLjM0OCwyOTAuOTg1IDI3MC44NDgsMjgzLjY1MiAyNzguNSwyNzYuNUMgMjkzLjU3MSwyODcuMjU4IDMwOS45MDQsMjg5LjQyNSAzMjcuNSwyODNDIDM0NC45NDMsMjc0LjM1NCAzNTQuMjc3LDI2MC4xODcgMzU1LjUsMjQwLjVDIDM1NC45ODEsMjI5LjI2OSAzNTEuMzE0LDIxOS4yNjkgMzQ0LjUsMjEwLjVDIDM1MS4xNjcsMjAzLjE2NyAzNTguMTY3LDE5Ni4xNjcgMzY1LjUsMTg5LjVDIDM4NC4zODQsMjIxLjUyOSAzODguODg0LDI1NS41MjkgMzc5LDI5MS41QyAzNjcuNjUyLDMyOC4xNzYgMzQ0LjgxOCwzNTUuMDA5IDMxMC41LDM3MkMgMjYwLjM1MywzOTIuNTUgMjE0LjAyLDM4Ni4yMTYgMTcxLjUsMzUzQyAxMzEuMzI3LDMxNC40ODUgMTE4LjgyNywyNjguMzE5IDEzNCwyMTQuNUMgMTM3LjMsMjA1LjkwMSAxNDEuMTMzLDE5Ny41NjggMTQ1LjUsMTg5LjUgWiIgZmlsbD0iI2YwZWJkZSIvPgogIDxwYXRoIGQ9Ik0gMzM0LjUsMjE5LjUgQyAzMzkuNzg4LDIyNS4xNzkgMzQyLjQ1NSwyMzIuMDEzIDM0Mi41LDI0MEMgMzM5LjM2NywyNjQuNzk4IDMyNS4zNjcsMjc1Ljc5OCAzMDAuNSwyNzNDIDI5NS42MDksMjcxLjg4OCAyOTEuMjc1LDI2OS43MjEgMjg3LjUsMjY2LjVDIDMwMy41MjEsMjUxLjE0NiAzMTkuMTg4LDIzNS40NzkgMzM0LjUsMjE5LjUgWiIgZmlsbD0iI2YwZWJkZSIvPgogIDxwYXRoIGQ9Ik0gMTc2LjUsMjE5LjUgQyAxOTIuMTMyLDIzNC42MzIgMjA3LjYzMiwyNDkuOTY1IDIyMywyNjUuNUMgMjIzLjY4OCwyNjYuMzMyIDIyMy41MjEsMjY2Ljk5OCAyMjIuNSwyNjcuNUMgMjA5LjY1MiwyNzUuMzIxIDE5Ni42NTIsMjc1LjQ4NyAxODMuNSwyNjhDIDE2Ny42ODcsMjUzLjcgMTY1LjM1MywyMzcuNTMzIDE3Ni41LDIxOS41IFoiIGZpbGw9IiNmMGViZGUiLz4KPC9zdmc+Cg==`; +export const GNOSIS_CURRENCY_ICON_URI = + 'data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwYXRoIGQ9Im0gNjguNzU2MDQsLTAuNSBjIDMuMjk3ODI0LDAgNi41OTU4OTYsMCA5Ljg5MzcyLDAgMTYuMDA4MDM5LDIuNjEwMDU1NCAzMC44NDg2Miw4Ljc2Mzg4OTQgNDQuNTIxNzQsMTguNDYxNTM5IDQ0LjE5NTQ5LDQ0LjM5NDA5MyA4OC43MTcyMyw4OC4yOTE0NTEgMTMzLjU2NTIyLDEzMS42OTIzMTEgMjAuNjExMDksMjEuMzMzNDEgNDEuMjI0NjYsNDIuNjY2NTggNjEuODM1NzUsNjQgMTcuODQzMzIsMzEuNTcwOTUgMTUuNzgwNDgsNjEuOTI5ODUgLTYuMTgzNTgsOTEuMDc2OTIgLTE5LjExNDY2LDE5LjQzNjMxIC0zOC40OTE1MSwzOC4zMDg5MyAtNTguMTI1Niw1Ni42MTUzOSAtNDMuMTk4MjEsNDQuMjIxNTQgLTg2Ljg5NTU1LDg4LjEyMDYyIC0xMzEuMDkxNzksMTMxLjY5MjMxIC0xMy42NzMxMiw5LjY5ODQ2IC0yOC41MTM3MDEsMTUuODUyMzEgLTQ0LjUyMTc0LDE4LjQ2MTU0IC0zLjI5NzgyNCwwIC02LjU5NTg5NiwwIC05Ljg5MzcyLDAgLTM0LjQ0MzI1NSwtNi4zNzI5MyAtNTcuNTI4NzE3LC0yNi4wNjUyMyAtNjkuMjU2MDQwMDIsLTU5LjA3NjkzIDAsLTExLjQ4OCAwLC0yMi45NzM1MyAwLC0zNC40NjE1NCA0LjYyMzg1NDgyLC0xMC4wMDg2MSA5Ljk4MjkzNjYyLC0xOS44NTQ3NiAxNi4wNzcyOTUwMiwtMjkuNTM4NDYgMzkuNTc0ODgsLTM5LjM4NDYxIDc5LjE0OTc2LC03OC43NjkyMyAxMTguNzI0NjM1LC0xMTguMTUzODUgNC45NDY4NiwtOS44NDYxNSA0Ljk0Njg2LC0xOS42OTIzIDAsLTI5LjUzODQ2IEMgOTQuNzI3MDU1LDIwMS4zNDYxNiA1NS4xNTIxNzUsMTYxLjk2MTU0IDE1LjU3NzI5NSwxMjIuNTc2OTMgOS40ODI5MzY2LDExMi44OTM0OCA0LjEyMzg1NDgsMTAzLjA0NzMyIC0wLjUwMDAwMDAyLDkzLjAzODQ2MyBjIDAsLTExLjQ4NzI2MiAwLC0yMi45NzQyNzcgMCwtMzQuNDYxNTM5IEMgMTEuMjI3MzIzLDI1LjU2NDQ5MyAzNC4zMTI3ODUsNS44NzIyODMyIDY4Ljc1NjA0LC0wLjUgWiIvPgogIDxwYXRoIGQ9Im0gNDMyLjM1MDI1LC0wLjUgYyAzLjI5NzA4LDAgNi41OTY2NCwwIDkuODkzNzIsMCAzMy42OTgwMSw2LjA5MTEyNjIgNTYuNzg1MDEsMjQuOTYyOTMgNjkuMjU2MDQsNTYuNjE1Mzg2IDAsMTIuMzA3NjkyIDAsMjQuNjE1Mzg0IDAsMzYuOTIzMDc3IC02LjA1MjQ4LDE5LjM1NTU2NyAtMTcuNTk1OTgsMzQuOTQ1MjI3IC0zNC42MjgwMiw0Ni43NjkyMjcgQyA0MzYuMDcyNzYsMTU4LjM1Njg2IDQwMS44NTc4LDE1MC4xNTE4MiAzNzQuMjI0NjQsMTE1LjE5MjMxIDM2MC4xNTgyNSw4OC44NzcyMzIgMzU5Ljc0NTE5LDYyLjYyMDczOSAzNzIuOTg3OTMsMzYuNDIzMDc4IDM4Ny4yOTE3OCwxNS4zNTg2MDkgNDA3LjA3OTIyLDMuMDUwOTI2OCA0MzIuMzUwMjUsLTAuNSBaIi8+CiAgPHBhdGggZD0ibSAzNzIuOTg3OTMsMzYuNDIzMDc4IGMgLTEzLjI0Mjc0LDI2LjE5NzY2MSAtMTIuODI5NjgsNTIuNDU0MTU0IDEuMjM2NzEsNzguNzY5MjMyIDI3LjYzMzE2LDM0Ljk1OTUxIDYxLjg0ODEyLDQzLjE2NDU1IDEwMi42NDczNSwyNC42MTUzOCAtMzMuNzE1MzIsMzQuNzg2MjIgLTY3LjkzMjc1LDY5LjI0Nzc2IC0xMDIuNjQ3MzUsMTAzLjM4NDYyIC00LjExMzMxLDcuMjc2MzEgLTQuNTIzOSwxNC42NjA5MiAtMS4yMzY3MSwyMi4xNTM4NSAtMTguMTM3NjYsLTE3LjIzMDc3IC0zNi4yNzc4LC0zNC40NjE1NCAtNTQuNDE1NDYsLTUxLjY5MjMxIC0yMC42MTEwOSwtMjEuMzMzNDIgLTQxLjIyNDY2LC00Mi42NjY1OSAtNjEuODM1NzUsLTY0IDM4Ljc1MTIzLC0zNy43NDM1MSA3Ny40OTk5OCwtNzUuNDg3MjY0IDExNi4yNTEyMSwtMTEzLjIzMDc3MiB6IiBvcGFjaXR5PSIwLjQiLz4KICA8cGF0aCBkPSJtIDMxOC41NzI0NywyMTMuNjUzODUgYyAxOC4xMzc2NiwxNy4yMzA3NyAzNi4yNzc4LDM0LjQ2MTU0IDU0LjQxNTQ2LDUxLjY5MjMxIDQxLjA2ODgzLDQyLjEwNDYxIDgyLjcwNjU1LDgzLjk1MDc3IDEyNC45MDgyMSwxMjUuNTM4NDYgNS43NTMyLDguNjU3MjMgMTAuMjg5NDcsMTcuNjgxMjMgMTMuNjAzODcsMjcuMDc2OTIgMCwxMS40ODgwMSAwLDIyLjk3MzU0IDAsMzQuNDYxNTQgLTIyLjUxNTYzLDU0LjY1MzU0IC02MS4yNjQzOSw2OS44MzM4NSAtMTE2LjI1MTIxLDQ1LjUzODQ3IC00Ny40MjMwNywtNDUuMTQ0NjIgLTk0LjQxODI0LC05MC42ODMwOCAtMTQwLjk4NTUxLC0xMzYuNjE1MzkgMTkuNjM0MDksLTE4LjMwNjQ2IDM5LjAxMDk0LC0zNy4xNzkwOCA1OC4xMjU2LC01Ni42MTUzOSAyMS45NjQwNiwtMjkuMTQ3MDcgMjQuMDI2OSwtNTkuNTA1OTcgNi4xODM1OCwtOTEuMDc2OTIgeiIgb3BhY2l0eT0iMC42Ii8+Cjwvc3ZnPgo='; diff --git a/packages/chains/src/constants/index.ts b/packages/chains/src/constants/index.ts index 7761c4d..9ea3526 100644 --- a/packages/chains/src/constants/index.ts +++ b/packages/chains/src/constants/index.ts @@ -1,3 +1,4 @@ export * from './AlgorandURIs'; export * from './EthereumURIs'; +export * from './GnosisURIs'; export * from './VoiURIs';