diff --git a/modules/sdk-core/src/bitgo/environments.ts b/modules/sdk-core/src/bitgo/environments.ts index 4054ca010f..f09e49fa40 100644 --- a/modules/sdk-core/src/bitgo/environments.ts +++ b/modules/sdk-core/src/bitgo/environments.ts @@ -313,6 +313,9 @@ const mainnetBase: EnvironmentTemplate = { hemieth: { baseUrl: 'https://explorer.hemi.xyz/api', }, + midlbtc: { + baseUrl: 'https://blockscout.mainnet.midl.xyz/api', + }, katanaeth: { baseUrl: 'https://katanascan.com/api', }, @@ -546,6 +549,9 @@ const testnetBase: EnvironmentTemplate = { hemieth: { baseUrl: 'https://testnet.explorer.hemi.xyz/api', }, + midlbtc: { + baseUrl: 'https://blockscout.staging.midl.xyz/api', + }, tkatanaeth: { baseUrl: 'https://explorer-bokuto.katanarpc.com/api', }, diff --git a/modules/statics/src/allCoinsAndTokens.ts b/modules/statics/src/allCoinsAndTokens.ts index 6debeb5ab1..a8fb02778d 100644 --- a/modules/statics/src/allCoinsAndTokens.ts +++ b/modules/statics/src/allCoinsAndTokens.ts @@ -2664,6 +2664,46 @@ export const allCoinsAndTokens = [ UnderlyingAsset['hemieth:hemibtc'], Networks.main.hemieth ), + account( + '1d547ad4-3165-4a51-922a-b29f8a427f88', + 'midlbtc', + 'MIDL Bitcoin', + Networks.main.midlbtc, + 18, + UnderlyingAsset.MIDLBTC, + BaseUnit.MIDLBTC, + [ + ...EVM_NON_EIP1559_FEATURES, + CoinFeature.SHARED_EVM_SIGNING, + CoinFeature.SHARED_EVM_SDK, + CoinFeature.EVM_COMPATIBLE_IMS, + CoinFeature.EVM_COMPATIBLE_UI, + CoinFeature.EVM_COMPATIBLE_WP, + ], + KeyCurve.Secp256k1, + '', + 'midlBTC' + ), + account( + '1b2bdc62-c990-4194-b05e-fb4d840abc1d', + 'tmidlbtc', + 'Testnet MIDL Bitcoin', + Networks.test.midlbtc, + 18, + UnderlyingAsset.MIDLBTC, + BaseUnit.MIDLBTC, + [ + ...EVM_NON_EIP1559_FEATURES, + CoinFeature.SHARED_EVM_SIGNING, + CoinFeature.SHARED_EVM_SDK, + CoinFeature.EVM_COMPATIBLE_IMS, + CoinFeature.EVM_COMPATIBLE_UI, + CoinFeature.EVM_COMPATIBLE_WP, + ], + KeyCurve.Secp256k1, + '', + 'midlBTC' + ), account( 'd055d442-03f1-4d24-b61c-5312e480e378', 'bobaeth', diff --git a/modules/statics/src/base.ts b/modules/statics/src/base.ts index 86cc9ebfb8..2ed449964b 100644 --- a/modules/statics/src/base.ts +++ b/modules/statics/src/base.ts @@ -90,6 +90,7 @@ export enum CoinFamily { MANTLE = 'mantle', MANTRA = 'mantra', MEGAETH = 'megaeth', + MIDLBTC = 'midlbtc', // MIDL Bitcoin EVM L2 MON = 'mon', XPL = 'xpl', // Plasma Network POLYGON = 'polygon', @@ -673,6 +674,7 @@ export enum UnderlyingAsset { MANTLE = 'mantle', MANTRA = 'mantra', MEGAETH = 'megaeth', + MIDLBTC = 'midlbtc', MON = 'mon', MORPH = 'morph', MORPHETH = 'morpheth', @@ -4047,6 +4049,7 @@ export enum BaseUnit { INITIA = 'uinit', ASI = 'afet', VET = 'wei', + MIDLBTC = 'wei', TCRONOS = 'basetcro', TASI = 'atestfet', CANTON = 'canton', diff --git a/modules/statics/src/coins/ofcCoins.ts b/modules/statics/src/coins/ofcCoins.ts index 0d784af793..a78d860afb 100644 --- a/modules/statics/src/coins/ofcCoins.ts +++ b/modules/statics/src/coins/ofcCoins.ts @@ -425,6 +425,22 @@ export const ofcCoins = [ UnderlyingAsset.HEMIETH, CoinKind.CRYPTO ), + ofc( + 'c2698de6-27a0-41fc-96fc-8a2bf2777359', + 'ofcmidlbtc', + 'MIDL Bitcoin', + 18, + UnderlyingAsset.MIDLBTC, + CoinKind.CRYPTO + ), + tofc( + 'f67dee61-409b-40e2-a7b0-bda680d889eb', + 'ofctmidlbtc', + 'MIDL Bitcoin Testnet', + 18, + UnderlyingAsset.MIDLBTC, + CoinKind.CRYPTO + ), tofc( '7d18cdc5-a7da-4c76-8ce0-f80c391f80b3', 'ofctprividiumeth', diff --git a/modules/statics/src/networks.ts b/modules/statics/src/networks.ts index f0c0832196..9270f13291 100644 --- a/modules/statics/src/networks.ts +++ b/modules/statics/src/networks.ts @@ -2580,6 +2580,24 @@ class HemiEthTestnet extends Testnet implements EthereumNetwork { chainId = 743111; nativeCoinOperationHashPrefix = '743111'; } +class MidlBtc extends Mainnet implements EthereumNetwork { + name = 'MIDL Bitcoin'; + family = CoinFamily.MIDLBTC; + explorerUrl = 'https://blockscout.mainnet.midl.xyz/tx/'; + accountExplorerUrl = 'https://blockscout.mainnet.midl.xyz/address/'; + chainId = 1500; + nativeCoinOperationHashPrefix = '1500'; +} + +class MidlBtcTestnet extends Testnet implements EthereumNetwork { + name = 'Testnet MIDL Bitcoin'; + family = CoinFamily.MIDLBTC; + explorerUrl = 'https://blockscout.staging.midl.xyz/tx/'; + accountExplorerUrl = 'https://blockscout.staging.midl.xyz/address/'; + chainId = 15001; + nativeCoinOperationHashPrefix = '15001'; +} + class KatanaEth extends Mainnet implements EthereumNetwork { name = 'Katana'; family = CoinFamily.KATANAETH; @@ -2892,6 +2910,7 @@ export const Networks = { lnbtc: Object.freeze(new LightningBitcoin()), litecoin: Object.freeze(new Litecoin()), megaeth: Object.freeze(new MegaETH()), + midlbtc: Object.freeze(new MidlBtc()), mon: Object.freeze(new Monad()), mantle: Object.freeze(new Mantle()), mantra: Object.freeze(new Mantra()), @@ -3008,6 +3027,7 @@ export const Networks = { hederaEVM: Object.freeze(new HederaEVMTestnet()), hemieth: Object.freeze(new HemiEthTestnet()), inketh: Object.freeze(new InkEthTestnet()), + midlbtc: Object.freeze(new MidlBtcTestnet()), icp: Object.freeze(new IcpTestnet()), ip: Object.freeze(new IPTestnet()), initia: Object.freeze(new InitiaTestnet()), diff --git a/modules/statics/test/unit/fixtures/expectedColdFeatures.ts b/modules/statics/test/unit/fixtures/expectedColdFeatures.ts index c4b6b9d763..bd76bdcf8d 100644 --- a/modules/statics/test/unit/fixtures/expectedColdFeatures.ts +++ b/modules/statics/test/unit/fixtures/expectedColdFeatures.ts @@ -120,6 +120,7 @@ export const expectedColdFeatures = { 'megaeth', 'mantle', 'mantra', + 'midlbtc', 'mon', 'morph', 'morpheth', @@ -193,6 +194,7 @@ export const expectedColdFeatures = { 'tmorph', 'tmorpheth', 'tmegaeth', + 'tmidlbtc', 'tmon', 'tworld', 'tphrs',