diff --git a/modules/bitgo/test/v2/unit/keychains.ts b/modules/bitgo/test/v2/unit/keychains.ts index 88512fc82b..0be3fc1ed4 100644 --- a/modules/bitgo/test/v2/unit/keychains.ts +++ b/modules/bitgo/test/v2/unit/keychains.ts @@ -75,6 +75,7 @@ describe('V2 Keychains', function () { n.asset !== UnderlyingAsset.ARBETH && // TODO(WIN-692): remove this once coin-specific module for arbeth is added n.asset !== UnderlyingAsset.OPETH && // TODO(WIN-692): remove this once coin-specific module for opeth is added n.asset !== UnderlyingAsset.ZKETH && // TODO(WIN-1427): remove this once coin-specific module for zketh is added + n.asset !== UnderlyingAsset.OAS && // TODO(WIN-3696): remove this once coin-specific module for oas is added n.asset !== UnderlyingAsset.RUNE && coinFamilyValues.includes(n.name) ); diff --git a/modules/statics/src/base.ts b/modules/statics/src/base.ts index 1e9c3107d7..8a1fa9fc36 100644 --- a/modules/statics/src/base.ts +++ b/modules/statics/src/base.ts @@ -56,6 +56,7 @@ export enum CoinFamily { LTC = 'ltc', POLYGON = 'polygon', NEAR = 'near', + OAS = 'oas', OFC = 'ofc', OPETH = 'opeth', OSMO = 'osmo', @@ -352,6 +353,7 @@ export enum UnderlyingAsset { LNBTC = 'lnbtc', LTC = 'ltc', NEAR = 'near', + OAS = 'oas', OPETH = 'opeth', OSMO = 'osmo', POLYGON = 'polygon', diff --git a/modules/statics/src/coins.ts b/modules/statics/src/coins.ts index ce71e2f652..a1dc5cb3e4 100644 --- a/modules/statics/src/coins.ts +++ b/modules/statics/src/coins.ts @@ -344,6 +344,13 @@ const BERA_FEATURES = [ CoinFeature.USES_NON_PACKED_ENCODING_FOR_TXDATA, CoinFeature.BULK_TRANSACTION, ]; +const OAS_FEATURES = [ + ...ETH_FEATURES, + CoinFeature.MULTISIG_COLD, + CoinFeature.EVM_WALLET, + CoinFeature.USES_NON_PACKED_ENCODING_FOR_TXDATA, + CoinFeature.BULK_TRANSACTION, +]; const ETH_FEATURES_WITH_FRANKFURT = [...ETH_FEATURES, CoinFeature.CUSTODY_BITGO_FRANKFURT]; const ZETA_FEATURES = [...COSMOS_SIDECHAIN_FEATURES, CoinFeature.CUSTODY_BITGO_SINGAPORE]; const ZETA_EVM_FEATURES = [...AccountCoin.DEFAULT_FEATURES, CoinFeature.CUSTODY_BITGO_SINGAPORE]; @@ -1226,6 +1233,26 @@ export const coins = CoinMap.fromCoins([ BaseUnit.ETH, BERA_FEATURES ), + account( + '7482e3f1-5bf8-45a6-9d98-69e0506602d2', + 'oas', + 'oaschain', + Networks.main.oas, + 18, + UnderlyingAsset.OAS, + BaseUnit.ETH, + OAS_FEATURES + ), + account( + 'b5316b57-8aa3-4f0b-9736-96b7838dbde8', + 'toas', + 'Testnet oaschain', + Networks.test.oas, + 18, + UnderlyingAsset.OAS, + BaseUnit.ETH, + OAS_FEATURES + ), erc20CompatibleAccountCoin( 'bfae821b-cf3a-4190-b1a8-a54af51d730e', 'celo', diff --git a/modules/statics/src/networks.ts b/modules/statics/src/networks.ts index bcadb4b64d..a3a3758fe5 100644 --- a/modules/statics/src/networks.ts +++ b/modules/statics/src/networks.ts @@ -1056,6 +1056,24 @@ class BerachainTestnet extends Testnet implements EthereumNetwork { batcherContractAddress = '0xf499549720116c3dEA867D4fC279C43aCA172712'; } +class Oas extends Mainnet implements EthereumNetwork { + name = 'Oaschain'; + family = CoinFamily.OAS; + explorerUrl = 'https://explorer.oasys.games/tx/'; + accountExplorerUrl = 'https://explorer.oasys.games/address/'; + chainId = 248; + nativeCoinOperationHashPrefix = '248'; +} + +class OasTestnet extends Testnet implements EthereumNetwork { + name = 'OaschainTestnet'; + family = CoinFamily.OAS; + explorerUrl = 'https://scan.sandverse.oasys.games/tx/'; + accountExplorerUrl = 'https://scan.sandverse.oasys.games/address/'; + chainId = 20197; + nativeCoinOperationHashPrefix = '20197'; +} + class BaseChainTestnet extends Testnet implements EthereumNetwork { name = 'BaseChainTestnet'; family = CoinFamily.BASEETH; @@ -1121,6 +1139,7 @@ export const Networks = { lnbtc: Object.freeze(new LightningBitcoin()), litecoin: Object.freeze(new Litecoin()), polygon: Object.freeze(new Polygon()), + oas: Object.freeze(new Oas()), ofc: Object.freeze(new Ofc()), optimism: Object.freeze(new Optimism()), osmo: Object.freeze(new Osmo()), @@ -1181,6 +1200,7 @@ export const Networks = { lnbtc: Object.freeze(new LightningBitcoinTestnet()), litecoin: Object.freeze(new LitecoinTestnet()), polygon: Object.freeze(new PolygonTestnet()), + oas: Object.freeze(new OasTestnet()), ofc: Object.freeze(new OfcTestnet()), optimism: Object.freeze(new OptimismTestnet()), osmo: Object.freeze(new OsmoTestnet()), diff --git a/modules/statics/test/unit/fixtures/expectedColdFeatures.ts b/modules/statics/test/unit/fixtures/expectedColdFeatures.ts index 07bf6ca117..373cd96749 100644 --- a/modules/statics/test/unit/fixtures/expectedColdFeatures.ts +++ b/modules/statics/test/unit/fixtures/expectedColdFeatures.ts @@ -19,6 +19,7 @@ export const expectedColdFeatures = { 'etc', 'hbar', 'ltc', + 'oas', 'opeth', 'rbtc', 'stx', @@ -42,6 +43,7 @@ export const expectedColdFeatures = { 'tetc', 'thbar', 'tltc', + 'toas', 'topeth', 'trbtc', 'trx',