diff --git a/modules/bitgo/test/browser/browser.spec.ts b/modules/bitgo/test/browser/browser.spec.ts index 13d9d12175..a74539120e 100644 --- a/modules/bitgo/test/browser/browser.spec.ts +++ b/modules/bitgo/test/browser/browser.spec.ts @@ -33,8 +33,6 @@ describe('Coins', () => { XrpToken: 1, Rune: 1, Trune: 1, - Apt: 1, - Tapt: 1, }; Object.keys(BitGoJS.Coin) .filter((coinName) => !excludedKeys[coinName]) diff --git a/modules/statics/src/base.ts b/modules/statics/src/base.ts index 891cc490e6..ec8057ad9d 100644 --- a/modules/statics/src/base.ts +++ b/modules/statics/src/base.ts @@ -22,6 +22,7 @@ export enum CoinKind { export enum CoinFamily { ADA = 'ada', ALGO = 'algo', + APT = 'apt', ARBETH = 'arbeth', ATOM = 'atom', AVAXC = 'avaxc', @@ -2350,6 +2351,7 @@ export enum KeyCurve { */ export enum BaseUnit { ATOM = 'uatom', + APT = 'octa', ETH = 'wei', BTC = 'satoshi', BSC = 'jager', diff --git a/modules/statics/src/coins.ts b/modules/statics/src/coins.ts index 11e90d65d0..55d5d60aac 100644 --- a/modules/statics/src/coins.ts +++ b/modules/statics/src/coins.ts @@ -364,6 +364,15 @@ const COREDAO_FEATURES = [ CoinFeature.USES_NON_PACKED_ENCODING_FOR_TXDATA, CoinFeature.BULK_TRANSACTION, ]; +const APT_FEATURES = [ + ...AccountCoin.DEFAULT_FEATURES, + CoinFeature.TSS, + CoinFeature.TSS_COLD, + CoinFeature.STAKING, + CoinFeature.BULK_TRANSACTION, + CoinFeature.BULK_STAKING_TRANSACTION, + CoinFeature.SUPPORTS_TOKENS, +]; const ETH_FEATURES_WITH_FRANKFURT = [...ETH_FEATURES, CoinFeature.CUSTODY_BITGO_FRANKFURT]; const SOL_TOKEN_FEATURES_WITH_FRANKFURT = [...SOL_TOKEN_FEATURES, CoinFeature.CUSTODY_BITGO_FRANKFURT]; const XLM_TOKEN_FEATURES_WITH_FRANKFURT = [...AccountCoin.DEFAULT_FEATURES, CoinFeature.CUSTODY_BITGO_FRANKFURT]; @@ -1289,6 +1298,28 @@ export const coins = CoinMap.fromCoins([ BaseUnit.ETH, COREDAO_FEATURES ), + account( + '75a71e9c-e3a0-4852-8e4b-9613ffed2a4c', + 'apt', + 'Aptos', + Networks.main.apt, + 8, + UnderlyingAsset.APT, + BaseUnit.APT, + APT_FEATURES, + KeyCurve.Ed25519 + ), + account( + '7aca10bf-79dd-428b-aeb6-54f03f9aec0f', + 'tapt', + 'Testnet Apt', + Networks.test.apt, + 8, + UnderlyingAsset.APT, + BaseUnit.APT, + APT_FEATURES, + KeyCurve.Ed25519 + ), erc20CompatibleAccountCoin( 'bfae821b-cf3a-4190-b1a8-a54af51d730e', 'celo', diff --git a/modules/statics/src/networks.ts b/modules/statics/src/networks.ts index e35cfa674a..5df807f7d5 100644 --- a/modules/statics/src/networks.ts +++ b/modules/statics/src/networks.ts @@ -151,6 +151,18 @@ class AdaTestnet extends Testnet implements AdaNetwork { stakeKeyDeposit = 2000000; } +class Apt extends Mainnet implements AccountNetwork { + name = 'Apt'; + family = CoinFamily.APT; + explorerUrl = 'https://explorer.aptoslabs.com/?network=mainnet'; +} + +class AptTestnet extends Testnet implements AccountNetwork { + name = 'Testnet Apt'; + family = CoinFamily.APT; + explorerUrl = 'https://explorer.aptoslabs.com/?network=testnet'; +} + class Arbitrum extends Mainnet implements EthereumNetwork { name = 'Arbitrum'; family = CoinFamily.ARBETH; @@ -1124,6 +1136,7 @@ export const Networks = { main: { ada: Object.freeze(new Ada()), algorand: Object.freeze(new Algorand()), + apt: Object.freeze(new Apt()), arbitrum: Object.freeze(new Arbitrum()), atom: Object.freeze(new Atom()), avalancheC: Object.freeze(new AvalancheC()), @@ -1183,6 +1196,7 @@ export const Networks = { test: { ada: Object.freeze(new AdaTestnet()), algorand: Object.freeze(new AlgorandTestnet()), + apt: Object.freeze(new AptTestnet()), arbitrum: Object.freeze(new ArbitrumTestnet()), atom: Object.freeze(new AtomTestnet()), avalancheC: Object.freeze(new AvalancheCTestnet()), diff --git a/modules/statics/test/unit/fixtures/expectedColdFeatures.ts b/modules/statics/test/unit/fixtures/expectedColdFeatures.ts index 78ea1d3b05..34bbbeef03 100644 --- a/modules/statics/test/unit/fixtures/expectedColdFeatures.ts +++ b/modules/statics/test/unit/fixtures/expectedColdFeatures.ts @@ -64,6 +64,7 @@ export const expectedColdFeatures = { ], justTSS: [ 'ada', + 'apt', 'atom', 'bld', 'bsc', @@ -82,6 +83,7 @@ export const expectedColdFeatures = { 'zeta', 'tada', 'tatom', + 'tapt', 'tbld', 'tbsc', 'tcoreum',