diff --git a/.changeset/tall-knives-end.md b/.changeset/tall-knives-end.md new file mode 100644 index 000000000000..0dbae57f6a32 --- /dev/null +++ b/.changeset/tall-knives-end.md @@ -0,0 +1,15 @@ +--- +"@ledgerhq/types-cryptoassets": minor +"@ledgerhq/hw-app-exchange": minor +"@ledgerhq/cryptoassets": minor +"@ledgerhq/types-live": minor +"@ledgerhq/crypto-icons-ui": minor +"@ledgerhq/coin-evm": minor +"ledger-live-desktop": minor +"live-mobile": minor +"@ledgerhq/live-common": minor +"@ledgerhq/coin-framework": minor +"@ledgerhq/live-cli": minor +--- + +Add PulseChain evm network diff --git a/apps/cli/src/live-common-setup-base.ts b/apps/cli/src/live-common-setup-base.ts index b143093b8cbc..2892a6600f81 100644 --- a/apps/cli/src/live-common-setup-base.ts +++ b/apps/cli/src/live-common-setup-base.ts @@ -81,6 +81,8 @@ setSupportedCurrencies([ "klaytn", "polygon_zk_evm", "polygon_zk_evm_testnet", + "pulsechain", + "pulsechain_testnet", "base", "base_sepolia", "stacks", diff --git a/apps/ledger-live-desktop/src/live-common-set-supported-currencies.ts b/apps/ledger-live-desktop/src/live-common-set-supported-currencies.ts index 39a0d9048e20..07077dd8a83b 100644 --- a/apps/ledger-live-desktop/src/live-common-set-supported-currencies.ts +++ b/apps/ledger-live-desktop/src/live-common-set-supported-currencies.ts @@ -76,6 +76,8 @@ setSupportedCurrencies([ "klaytn", "polygon_zk_evm", "polygon_zk_evm_testnet", + "pulsechain", + "pulsechain_testnet", "base", "base_sepolia", "stacks", diff --git a/apps/ledger-live-mobile/src/live-common-setup.ts b/apps/ledger-live-mobile/src/live-common-setup.ts index fce1cf7b77ca..b58b2f9b1687 100644 --- a/apps/ledger-live-mobile/src/live-common-setup.ts +++ b/apps/ledger-live-mobile/src/live-common-setup.ts @@ -109,6 +109,8 @@ setSupportedCurrencies([ "klaytn", "polygon_zk_evm", "polygon_zk_evm_testnet", + "pulsechain", + "pulsechain_testnet", "base", "base_sepolia", "stacks", diff --git a/apps/ledger-live-mobile/src/newArch/features/Web3Hub/utils/api/mocks/manifests.ts b/apps/ledger-live-mobile/src/newArch/features/Web3Hub/utils/api/mocks/manifests.ts index a3eb87cf2554..4d86b1067fb6 100644 --- a/apps/ledger-live-mobile/src/newArch/features/Web3Hub/utils/api/mocks/manifests.ts +++ b/apps/ledger-live-mobile/src/newArch/features/Web3Hub/utils/api/mocks/manifests.ts @@ -128,6 +128,8 @@ export const mocks: AppManifest[] = [ "klaytn", "polygon_zk_evm", "polygon_zk_evm_testnet", + "pulsechain", + "pulsechain_testnet", "base", "base_goerli", "base_sepolia", diff --git a/apps/ledger-live-mobile/src/screens/AddAccounts/01-SelectCrypto.tsx b/apps/ledger-live-mobile/src/screens/AddAccounts/01-SelectCrypto.tsx index a3806464fd17..d4e2060fe363 100644 --- a/apps/ledger-live-mobile/src/screens/AddAccounts/01-SelectCrypto.tsx +++ b/apps/ledger-live-mobile/src/screens/AddAccounts/01-SelectCrypto.tsx @@ -87,6 +87,8 @@ export default function AddAccountsSelectCrypto({ navigation, route }: Props) { const coreum = useFeature("currencyCoreum"); const polygonZkEvm = useFeature("currencyPolygonZkEvm"); const polygonZkEvmTestnet = useFeature("currencyPolygonZkEvmTestnet"); + const pulseChain = useFeature("currencyPulseChain"); + const pulseChainTestnet = useFeature("currencyPulseChainTestnet"); const base = useFeature("currencyBase"); const baseSepolia = useFeature("currencyBaseSepolia"); const klaytn = useFeature("currencyKlaytn"); @@ -136,6 +138,8 @@ export default function AddAccountsSelectCrypto({ navigation, route }: Props) { coreum, polygon_zk_evm: polygonZkEvm, polygon_zk_evm_testnet: polygonZkEvmTestnet, + pulsechain: pulseChain, + pulsechain_testnet: pulseChainTestnet, base, base_sepolia: baseSepolia, klaytn, @@ -184,6 +188,8 @@ export default function AddAccountsSelectCrypto({ navigation, route }: Props) { coreum, polygonZkEvm, polygonZkEvmTestnet, + pulseChain, + pulseChainTestnet, base, baseSepolia, klaytn, diff --git a/libs/coin-framework/src/currencies/__snapshots__/formatCurrencyUnit.test.ts.snap b/libs/coin-framework/src/currencies/__snapshots__/formatCurrencyUnit.test.ts.snap index f243f9932eca..b74c1d9c8bc7 100644 --- a/libs/coin-framework/src/currencies/__snapshots__/formatCurrencyUnit.test.ts.snap +++ b/libs/coin-framework/src/currencies/__snapshots__/formatCurrencyUnit.test.ts.snap @@ -236,6 +236,10 @@ exports[`formatCurrencyUnit with custom options with locale de-DE should correct exports[`formatCurrencyUnit with custom options with locale de-DE should correctly format PosW unit (posw) 1`] = `"123.456.789,00000000- -POSW"`; +exports[`formatCurrencyUnit with custom options with locale de-DE should correctly format PulseChain Testnet unit (Test Pulse) 1`] = `"0,012345678900000000- -tPLS"`; + +exports[`formatCurrencyUnit with custom options with locale de-DE should correctly format PulseChain unit (Pulse) 1`] = `"0,012345678900000000- -PLS"`; + exports[`formatCurrencyUnit with custom options with locale de-DE should correctly format QRL unit (QRL) 1`] = `"123.456.789,00000000- -QRL"`; exports[`formatCurrencyUnit with custom options with locale de-DE should correctly format Qtum unit (qtum) 1`] = `"123.456.789,00000000- -QTUM"`; @@ -560,6 +564,10 @@ exports[`formatCurrencyUnit with custom options with locale en-US should correct exports[`formatCurrencyUnit with custom options with locale en-US should correctly format PosW unit (posw) 1`] = `"123,456,789.00000000- -POSW"`; +exports[`formatCurrencyUnit with custom options with locale en-US should correctly format PulseChain Testnet unit (Test Pulse) 1`] = `"0.012345678900000000- -tPLS"`; + +exports[`formatCurrencyUnit with custom options with locale en-US should correctly format PulseChain unit (Pulse) 1`] = `"0.012345678900000000- -PLS"`; + exports[`formatCurrencyUnit with custom options with locale en-US should correctly format QRL unit (QRL) 1`] = `"123,456,789.00000000- -QRL"`; exports[`formatCurrencyUnit with custom options with locale en-US should correctly format Qtum unit (qtum) 1`] = `"123,456,789.00000000- -QTUM"`; @@ -884,6 +892,10 @@ exports[`formatCurrencyUnit with custom options with locale es-ES should correct exports[`formatCurrencyUnit with custom options with locale es-ES should correctly format PosW unit (posw) 1`] = `"123.456.789,00000000- -POSW"`; +exports[`formatCurrencyUnit with custom options with locale es-ES should correctly format PulseChain Testnet unit (Test Pulse) 1`] = `"0,012345678900000000- -tPLS"`; + +exports[`formatCurrencyUnit with custom options with locale es-ES should correctly format PulseChain unit (Pulse) 1`] = `"0,012345678900000000- -PLS"`; + exports[`formatCurrencyUnit with custom options with locale es-ES should correctly format QRL unit (QRL) 1`] = `"123.456.789,00000000- -QRL"`; exports[`formatCurrencyUnit with custom options with locale es-ES should correctly format Qtum unit (qtum) 1`] = `"123.456.789,00000000- -QTUM"`; @@ -1208,6 +1220,10 @@ exports[`formatCurrencyUnit with custom options with locale fr-FR should correct exports[`formatCurrencyUnit with custom options with locale fr-FR should correctly format PosW unit (posw) 1`] = `"123 456 789,00000000- -POSW"`; +exports[`formatCurrencyUnit with custom options with locale fr-FR should correctly format PulseChain Testnet unit (Test Pulse) 1`] = `"0,012345678900000000- -tPLS"`; + +exports[`formatCurrencyUnit with custom options with locale fr-FR should correctly format PulseChain unit (Pulse) 1`] = `"0,012345678900000000- -PLS"`; + exports[`formatCurrencyUnit with custom options with locale fr-FR should correctly format QRL unit (QRL) 1`] = `"123 456 789,00000000- -QRL"`; exports[`formatCurrencyUnit with custom options with locale fr-FR should correctly format Qtum unit (qtum) 1`] = `"123 456 789,00000000- -QTUM"`; @@ -1532,6 +1548,10 @@ exports[`formatCurrencyUnit with custom options with locale ja-JP should correct exports[`formatCurrencyUnit with custom options with locale ja-JP should correctly format PosW unit (posw) 1`] = `"123,456,789.00000000- -POSW"`; +exports[`formatCurrencyUnit with custom options with locale ja-JP should correctly format PulseChain Testnet unit (Test Pulse) 1`] = `"0.012345678900000000- -tPLS"`; + +exports[`formatCurrencyUnit with custom options with locale ja-JP should correctly format PulseChain unit (Pulse) 1`] = `"0.012345678900000000- -PLS"`; + exports[`formatCurrencyUnit with custom options with locale ja-JP should correctly format QRL unit (QRL) 1`] = `"123,456,789.00000000- -QRL"`; exports[`formatCurrencyUnit with custom options with locale ja-JP should correctly format Qtum unit (qtum) 1`] = `"123,456,789.00000000- -QTUM"`; @@ -1856,6 +1876,10 @@ exports[`formatCurrencyUnit with custom options with locale ko-KR should correct exports[`formatCurrencyUnit with custom options with locale ko-KR should correctly format PosW unit (posw) 1`] = `"123,456,789.00000000- -POSW"`; +exports[`formatCurrencyUnit with custom options with locale ko-KR should correctly format PulseChain Testnet unit (Test Pulse) 1`] = `"0.012345678900000000- -tPLS"`; + +exports[`formatCurrencyUnit with custom options with locale ko-KR should correctly format PulseChain unit (Pulse) 1`] = `"0.012345678900000000- -PLS"`; + exports[`formatCurrencyUnit with custom options with locale ko-KR should correctly format QRL unit (QRL) 1`] = `"123,456,789.00000000- -QRL"`; exports[`formatCurrencyUnit with custom options with locale ko-KR should correctly format Qtum unit (qtum) 1`] = `"123,456,789.00000000- -QTUM"`; @@ -2180,6 +2204,10 @@ exports[`formatCurrencyUnit with custom options with locale pt-BR should correct exports[`formatCurrencyUnit with custom options with locale pt-BR should correctly format PosW unit (posw) 1`] = `"123.456.789,00000000- -POSW"`; +exports[`formatCurrencyUnit with custom options with locale pt-BR should correctly format PulseChain Testnet unit (Test Pulse) 1`] = `"0,012345678900000000- -tPLS"`; + +exports[`formatCurrencyUnit with custom options with locale pt-BR should correctly format PulseChain unit (Pulse) 1`] = `"0,012345678900000000- -PLS"`; + exports[`formatCurrencyUnit with custom options with locale pt-BR should correctly format QRL unit (QRL) 1`] = `"123.456.789,00000000- -QRL"`; exports[`formatCurrencyUnit with custom options with locale pt-BR should correctly format Qtum unit (qtum) 1`] = `"123.456.789,00000000- -QTUM"`; @@ -2504,6 +2532,10 @@ exports[`formatCurrencyUnit with custom options with locale ru-RU should correct exports[`formatCurrencyUnit with custom options with locale ru-RU should correctly format PosW unit (posw) 1`] = `"123 456 789,00000000- -POSW"`; +exports[`formatCurrencyUnit with custom options with locale ru-RU should correctly format PulseChain Testnet unit (Test Pulse) 1`] = `"0,012345678900000000- -tPLS"`; + +exports[`formatCurrencyUnit with custom options with locale ru-RU should correctly format PulseChain unit (Pulse) 1`] = `"0,012345678900000000- -PLS"`; + exports[`formatCurrencyUnit with custom options with locale ru-RU should correctly format QRL unit (QRL) 1`] = `"123 456 789,00000000- -QRL"`; exports[`formatCurrencyUnit with custom options with locale ru-RU should correctly format Qtum unit (qtum) 1`] = `"123 456 789,00000000- -QTUM"`; @@ -2828,6 +2860,10 @@ exports[`formatCurrencyUnit with custom options with locale tr-TR should correct exports[`formatCurrencyUnit with custom options with locale tr-TR should correctly format PosW unit (posw) 1`] = `"123.456.789,00000000- -POSW"`; +exports[`formatCurrencyUnit with custom options with locale tr-TR should correctly format PulseChain Testnet unit (Test Pulse) 1`] = `"0,012345678900000000- -tPLS"`; + +exports[`formatCurrencyUnit with custom options with locale tr-TR should correctly format PulseChain unit (Pulse) 1`] = `"0,012345678900000000- -PLS"`; + exports[`formatCurrencyUnit with custom options with locale tr-TR should correctly format QRL unit (QRL) 1`] = `"123.456.789,00000000- -QRL"`; exports[`formatCurrencyUnit with custom options with locale tr-TR should correctly format Qtum unit (qtum) 1`] = `"123.456.789,00000000- -QTUM"`; @@ -3152,6 +3188,10 @@ exports[`formatCurrencyUnit with custom options with locale zh-CN should correct exports[`formatCurrencyUnit with custom options with locale zh-CN should correctly format PosW unit (posw) 1`] = `"123,456,789.00000000- -POSW"`; +exports[`formatCurrencyUnit with custom options with locale zh-CN should correctly format PulseChain Testnet unit (Test Pulse) 1`] = `"0.012345678900000000- -tPLS"`; + +exports[`formatCurrencyUnit with custom options with locale zh-CN should correctly format PulseChain unit (Pulse) 1`] = `"0.012345678900000000- -PLS"`; + exports[`formatCurrencyUnit with custom options with locale zh-CN should correctly format QRL unit (QRL) 1`] = `"123,456,789.00000000- -QRL"`; exports[`formatCurrencyUnit with custom options with locale zh-CN should correctly format Qtum unit (qtum) 1`] = `"123,456,789.00000000- -QTUM"`; @@ -3476,6 +3516,10 @@ exports[`formatCurrencyUnit with default options should correctly format Polygon exports[`formatCurrencyUnit with default options should correctly format PosW unit (posw) 1`] = `"123,456,789"`; +exports[`formatCurrencyUnit with default options should correctly format PulseChain Testnet unit (Test Pulse) 1`] = `"0.0123456"`; + +exports[`formatCurrencyUnit with default options should correctly format PulseChain unit (Pulse) 1`] = `"0.0123456"`; + exports[`formatCurrencyUnit with default options should correctly format QRL unit (QRL) 1`] = `"123,456,789"`; exports[`formatCurrencyUnit with default options should correctly format Qtum unit (qtum) 1`] = `"123,456,789"`; diff --git a/libs/coin-modules/coin-evm/src/__tests__/unit/editTransaction/__snapshots__/getFormattedFeeFields.test.ts.snap b/libs/coin-modules/coin-evm/src/__tests__/unit/editTransaction/__snapshots__/getFormattedFeeFields.test.ts.snap index e55fd7135dca..064051f3f415 100644 --- a/libs/coin-modules/coin-evm/src/__tests__/unit/editTransaction/__snapshots__/getFormattedFeeFields.test.ts.snap +++ b/libs/coin-modules/coin-evm/src/__tests__/unit/editTransaction/__snapshots__/getFormattedFeeFields.test.ts.snap @@ -423,6 +423,24 @@ exports[`getFormattedFeeFields with tx type 0 with locale de-DE should correctly } `; +exports[`getFormattedFeeFields with tx type 0 with locale de-DE should correctly format fee fields for PulseChain Testnet unit 1`] = ` +{ + "formattedFeeValue": "0,000105 tPLS", + "formattedGasPrice": "5 beat", + "formattedMaxFeePerGas": "0 beat", + "formattedMaxPriorityFeePerGas": "0 beat", +} +`; + +exports[`getFormattedFeeFields with tx type 0 with locale de-DE should correctly format fee fields for PulseChain unit 1`] = ` +{ + "formattedFeeValue": "0,000105 PLS", + "formattedGasPrice": "5 beat", + "formattedMaxFeePerGas": "0 beat", + "formattedMaxPriorityFeePerGas": "0 beat", +} +`; + exports[`getFormattedFeeFields with tx type 0 with locale de-DE should correctly format fee fields for REOSC unit 1`] = ` { "formattedFeeValue": "0,0105 REOSC", @@ -954,6 +972,24 @@ exports[`getFormattedFeeFields with tx type 0 with locale en-US should correctly } `; +exports[`getFormattedFeeFields with tx type 0 with locale en-US should correctly format fee fields for PulseChain Testnet unit 1`] = ` +{ + "formattedFeeValue": "0.000105 tPLS", + "formattedGasPrice": "5 beat", + "formattedMaxFeePerGas": "0 beat", + "formattedMaxPriorityFeePerGas": "0 beat", +} +`; + +exports[`getFormattedFeeFields with tx type 0 with locale en-US should correctly format fee fields for PulseChain unit 1`] = ` +{ + "formattedFeeValue": "0.000105 PLS", + "formattedGasPrice": "5 beat", + "formattedMaxFeePerGas": "0 beat", + "formattedMaxPriorityFeePerGas": "0 beat", +} +`; + exports[`getFormattedFeeFields with tx type 0 with locale en-US should correctly format fee fields for REOSC unit 1`] = ` { "formattedFeeValue": "0.0105 REOSC", @@ -1485,6 +1521,24 @@ exports[`getFormattedFeeFields with tx type 0 with locale es-ES should correctly } `; +exports[`getFormattedFeeFields with tx type 0 with locale es-ES should correctly format fee fields for PulseChain Testnet unit 1`] = ` +{ + "formattedFeeValue": "0,000105 tPLS", + "formattedGasPrice": "5 beat", + "formattedMaxFeePerGas": "0 beat", + "formattedMaxPriorityFeePerGas": "0 beat", +} +`; + +exports[`getFormattedFeeFields with tx type 0 with locale es-ES should correctly format fee fields for PulseChain unit 1`] = ` +{ + "formattedFeeValue": "0,000105 PLS", + "formattedGasPrice": "5 beat", + "formattedMaxFeePerGas": "0 beat", + "formattedMaxPriorityFeePerGas": "0 beat", +} +`; + exports[`getFormattedFeeFields with tx type 0 with locale es-ES should correctly format fee fields for REOSC unit 1`] = ` { "formattedFeeValue": "0,0105 REOSC", @@ -2016,6 +2070,24 @@ exports[`getFormattedFeeFields with tx type 0 with locale fr-FR should correctly } `; +exports[`getFormattedFeeFields with tx type 0 with locale fr-FR should correctly format fee fields for PulseChain Testnet unit 1`] = ` +{ + "formattedFeeValue": "0,000105 tPLS", + "formattedGasPrice": "5 beat", + "formattedMaxFeePerGas": "0 beat", + "formattedMaxPriorityFeePerGas": "0 beat", +} +`; + +exports[`getFormattedFeeFields with tx type 0 with locale fr-FR should correctly format fee fields for PulseChain unit 1`] = ` +{ + "formattedFeeValue": "0,000105 PLS", + "formattedGasPrice": "5 beat", + "formattedMaxFeePerGas": "0 beat", + "formattedMaxPriorityFeePerGas": "0 beat", +} +`; + exports[`getFormattedFeeFields with tx type 0 with locale fr-FR should correctly format fee fields for REOSC unit 1`] = ` { "formattedFeeValue": "0,0105 REOSC", @@ -2547,6 +2619,24 @@ exports[`getFormattedFeeFields with tx type 0 with locale ja-JP should correctly } `; +exports[`getFormattedFeeFields with tx type 0 with locale ja-JP should correctly format fee fields for PulseChain Testnet unit 1`] = ` +{ + "formattedFeeValue": "0.000105 tPLS", + "formattedGasPrice": "5 beat", + "formattedMaxFeePerGas": "0 beat", + "formattedMaxPriorityFeePerGas": "0 beat", +} +`; + +exports[`getFormattedFeeFields with tx type 0 with locale ja-JP should correctly format fee fields for PulseChain unit 1`] = ` +{ + "formattedFeeValue": "0.000105 PLS", + "formattedGasPrice": "5 beat", + "formattedMaxFeePerGas": "0 beat", + "formattedMaxPriorityFeePerGas": "0 beat", +} +`; + exports[`getFormattedFeeFields with tx type 0 with locale ja-JP should correctly format fee fields for REOSC unit 1`] = ` { "formattedFeeValue": "0.0105 REOSC", @@ -3078,6 +3168,24 @@ exports[`getFormattedFeeFields with tx type 0 with locale ko-KR should correctly } `; +exports[`getFormattedFeeFields with tx type 0 with locale ko-KR should correctly format fee fields for PulseChain Testnet unit 1`] = ` +{ + "formattedFeeValue": "0.000105 tPLS", + "formattedGasPrice": "5 beat", + "formattedMaxFeePerGas": "0 beat", + "formattedMaxPriorityFeePerGas": "0 beat", +} +`; + +exports[`getFormattedFeeFields with tx type 0 with locale ko-KR should correctly format fee fields for PulseChain unit 1`] = ` +{ + "formattedFeeValue": "0.000105 PLS", + "formattedGasPrice": "5 beat", + "formattedMaxFeePerGas": "0 beat", + "formattedMaxPriorityFeePerGas": "0 beat", +} +`; + exports[`getFormattedFeeFields with tx type 0 with locale ko-KR should correctly format fee fields for REOSC unit 1`] = ` { "formattedFeeValue": "0.0105 REOSC", @@ -3609,6 +3717,24 @@ exports[`getFormattedFeeFields with tx type 0 with locale pt-BR should correctly } `; +exports[`getFormattedFeeFields with tx type 0 with locale pt-BR should correctly format fee fields for PulseChain Testnet unit 1`] = ` +{ + "formattedFeeValue": "0,000105 tPLS", + "formattedGasPrice": "5 beat", + "formattedMaxFeePerGas": "0 beat", + "formattedMaxPriorityFeePerGas": "0 beat", +} +`; + +exports[`getFormattedFeeFields with tx type 0 with locale pt-BR should correctly format fee fields for PulseChain unit 1`] = ` +{ + "formattedFeeValue": "0,000105 PLS", + "formattedGasPrice": "5 beat", + "formattedMaxFeePerGas": "0 beat", + "formattedMaxPriorityFeePerGas": "0 beat", +} +`; + exports[`getFormattedFeeFields with tx type 0 with locale pt-BR should correctly format fee fields for REOSC unit 1`] = ` { "formattedFeeValue": "0,0105 REOSC", @@ -4140,6 +4266,24 @@ exports[`getFormattedFeeFields with tx type 0 with locale ru-RU should correctly } `; +exports[`getFormattedFeeFields with tx type 0 with locale ru-RU should correctly format fee fields for PulseChain Testnet unit 1`] = ` +{ + "formattedFeeValue": "0,000105 tPLS", + "formattedGasPrice": "5 beat", + "formattedMaxFeePerGas": "0 beat", + "formattedMaxPriorityFeePerGas": "0 beat", +} +`; + +exports[`getFormattedFeeFields with tx type 0 with locale ru-RU should correctly format fee fields for PulseChain unit 1`] = ` +{ + "formattedFeeValue": "0,000105 PLS", + "formattedGasPrice": "5 beat", + "formattedMaxFeePerGas": "0 beat", + "formattedMaxPriorityFeePerGas": "0 beat", +} +`; + exports[`getFormattedFeeFields with tx type 0 with locale ru-RU should correctly format fee fields for REOSC unit 1`] = ` { "formattedFeeValue": "0,0105 REOSC", @@ -4671,6 +4815,24 @@ exports[`getFormattedFeeFields with tx type 0 with locale tr-TR should correctly } `; +exports[`getFormattedFeeFields with tx type 0 with locale tr-TR should correctly format fee fields for PulseChain Testnet unit 1`] = ` +{ + "formattedFeeValue": "0,000105 tPLS", + "formattedGasPrice": "5 beat", + "formattedMaxFeePerGas": "0 beat", + "formattedMaxPriorityFeePerGas": "0 beat", +} +`; + +exports[`getFormattedFeeFields with tx type 0 with locale tr-TR should correctly format fee fields for PulseChain unit 1`] = ` +{ + "formattedFeeValue": "0,000105 PLS", + "formattedGasPrice": "5 beat", + "formattedMaxFeePerGas": "0 beat", + "formattedMaxPriorityFeePerGas": "0 beat", +} +`; + exports[`getFormattedFeeFields with tx type 0 with locale tr-TR should correctly format fee fields for REOSC unit 1`] = ` { "formattedFeeValue": "0,0105 REOSC", @@ -5202,6 +5364,24 @@ exports[`getFormattedFeeFields with tx type 0 with locale zh-CN should correctly } `; +exports[`getFormattedFeeFields with tx type 0 with locale zh-CN should correctly format fee fields for PulseChain Testnet unit 1`] = ` +{ + "formattedFeeValue": "0.000105 tPLS", + "formattedGasPrice": "5 beat", + "formattedMaxFeePerGas": "0 beat", + "formattedMaxPriorityFeePerGas": "0 beat", +} +`; + +exports[`getFormattedFeeFields with tx type 0 with locale zh-CN should correctly format fee fields for PulseChain unit 1`] = ` +{ + "formattedFeeValue": "0.000105 PLS", + "formattedGasPrice": "5 beat", + "formattedMaxFeePerGas": "0 beat", + "formattedMaxPriorityFeePerGas": "0 beat", +} +`; + exports[`getFormattedFeeFields with tx type 0 with locale zh-CN should correctly format fee fields for REOSC unit 1`] = ` { "formattedFeeValue": "0.0105 REOSC", @@ -5733,6 +5913,24 @@ exports[`getFormattedFeeFields with tx type 2 with locale de-DE should correctly } `; +exports[`getFormattedFeeFields with tx type 2 with locale de-DE should correctly format fee fields for PulseChain Testnet unit 1`] = ` +{ + "formattedFeeValue": "0,000042 tPLS", + "formattedGasPrice": "0 beat", + "formattedMaxFeePerGas": "2 beat", + "formattedMaxPriorityFeePerGas": "1 beat", +} +`; + +exports[`getFormattedFeeFields with tx type 2 with locale de-DE should correctly format fee fields for PulseChain unit 1`] = ` +{ + "formattedFeeValue": "0,000042 PLS", + "formattedGasPrice": "0 beat", + "formattedMaxFeePerGas": "2 beat", + "formattedMaxPriorityFeePerGas": "1 beat", +} +`; + exports[`getFormattedFeeFields with tx type 2 with locale de-DE should correctly format fee fields for REOSC unit 1`] = ` { "formattedFeeValue": "0,0042 REOSC", @@ -6264,6 +6462,24 @@ exports[`getFormattedFeeFields with tx type 2 with locale en-US should correctly } `; +exports[`getFormattedFeeFields with tx type 2 with locale en-US should correctly format fee fields for PulseChain Testnet unit 1`] = ` +{ + "formattedFeeValue": "0.000042 tPLS", + "formattedGasPrice": "0 beat", + "formattedMaxFeePerGas": "2 beat", + "formattedMaxPriorityFeePerGas": "1 beat", +} +`; + +exports[`getFormattedFeeFields with tx type 2 with locale en-US should correctly format fee fields for PulseChain unit 1`] = ` +{ + "formattedFeeValue": "0.000042 PLS", + "formattedGasPrice": "0 beat", + "formattedMaxFeePerGas": "2 beat", + "formattedMaxPriorityFeePerGas": "1 beat", +} +`; + exports[`getFormattedFeeFields with tx type 2 with locale en-US should correctly format fee fields for REOSC unit 1`] = ` { "formattedFeeValue": "0.0042 REOSC", @@ -6795,6 +7011,24 @@ exports[`getFormattedFeeFields with tx type 2 with locale es-ES should correctly } `; +exports[`getFormattedFeeFields with tx type 2 with locale es-ES should correctly format fee fields for PulseChain Testnet unit 1`] = ` +{ + "formattedFeeValue": "0,000042 tPLS", + "formattedGasPrice": "0 beat", + "formattedMaxFeePerGas": "2 beat", + "formattedMaxPriorityFeePerGas": "1 beat", +} +`; + +exports[`getFormattedFeeFields with tx type 2 with locale es-ES should correctly format fee fields for PulseChain unit 1`] = ` +{ + "formattedFeeValue": "0,000042 PLS", + "formattedGasPrice": "0 beat", + "formattedMaxFeePerGas": "2 beat", + "formattedMaxPriorityFeePerGas": "1 beat", +} +`; + exports[`getFormattedFeeFields with tx type 2 with locale es-ES should correctly format fee fields for REOSC unit 1`] = ` { "formattedFeeValue": "0,0042 REOSC", @@ -7326,6 +7560,24 @@ exports[`getFormattedFeeFields with tx type 2 with locale fr-FR should correctly } `; +exports[`getFormattedFeeFields with tx type 2 with locale fr-FR should correctly format fee fields for PulseChain Testnet unit 1`] = ` +{ + "formattedFeeValue": "0,000042 tPLS", + "formattedGasPrice": "0 beat", + "formattedMaxFeePerGas": "2 beat", + "formattedMaxPriorityFeePerGas": "1 beat", +} +`; + +exports[`getFormattedFeeFields with tx type 2 with locale fr-FR should correctly format fee fields for PulseChain unit 1`] = ` +{ + "formattedFeeValue": "0,000042 PLS", + "formattedGasPrice": "0 beat", + "formattedMaxFeePerGas": "2 beat", + "formattedMaxPriorityFeePerGas": "1 beat", +} +`; + exports[`getFormattedFeeFields with tx type 2 with locale fr-FR should correctly format fee fields for REOSC unit 1`] = ` { "formattedFeeValue": "0,0042 REOSC", @@ -7857,6 +8109,24 @@ exports[`getFormattedFeeFields with tx type 2 with locale ja-JP should correctly } `; +exports[`getFormattedFeeFields with tx type 2 with locale ja-JP should correctly format fee fields for PulseChain Testnet unit 1`] = ` +{ + "formattedFeeValue": "0.000042 tPLS", + "formattedGasPrice": "0 beat", + "formattedMaxFeePerGas": "2 beat", + "formattedMaxPriorityFeePerGas": "1 beat", +} +`; + +exports[`getFormattedFeeFields with tx type 2 with locale ja-JP should correctly format fee fields for PulseChain unit 1`] = ` +{ + "formattedFeeValue": "0.000042 PLS", + "formattedGasPrice": "0 beat", + "formattedMaxFeePerGas": "2 beat", + "formattedMaxPriorityFeePerGas": "1 beat", +} +`; + exports[`getFormattedFeeFields with tx type 2 with locale ja-JP should correctly format fee fields for REOSC unit 1`] = ` { "formattedFeeValue": "0.0042 REOSC", @@ -8388,6 +8658,24 @@ exports[`getFormattedFeeFields with tx type 2 with locale ko-KR should correctly } `; +exports[`getFormattedFeeFields with tx type 2 with locale ko-KR should correctly format fee fields for PulseChain Testnet unit 1`] = ` +{ + "formattedFeeValue": "0.000042 tPLS", + "formattedGasPrice": "0 beat", + "formattedMaxFeePerGas": "2 beat", + "formattedMaxPriorityFeePerGas": "1 beat", +} +`; + +exports[`getFormattedFeeFields with tx type 2 with locale ko-KR should correctly format fee fields for PulseChain unit 1`] = ` +{ + "formattedFeeValue": "0.000042 PLS", + "formattedGasPrice": "0 beat", + "formattedMaxFeePerGas": "2 beat", + "formattedMaxPriorityFeePerGas": "1 beat", +} +`; + exports[`getFormattedFeeFields with tx type 2 with locale ko-KR should correctly format fee fields for REOSC unit 1`] = ` { "formattedFeeValue": "0.0042 REOSC", @@ -8919,6 +9207,24 @@ exports[`getFormattedFeeFields with tx type 2 with locale pt-BR should correctly } `; +exports[`getFormattedFeeFields with tx type 2 with locale pt-BR should correctly format fee fields for PulseChain Testnet unit 1`] = ` +{ + "formattedFeeValue": "0,000042 tPLS", + "formattedGasPrice": "0 beat", + "formattedMaxFeePerGas": "2 beat", + "formattedMaxPriorityFeePerGas": "1 beat", +} +`; + +exports[`getFormattedFeeFields with tx type 2 with locale pt-BR should correctly format fee fields for PulseChain unit 1`] = ` +{ + "formattedFeeValue": "0,000042 PLS", + "formattedGasPrice": "0 beat", + "formattedMaxFeePerGas": "2 beat", + "formattedMaxPriorityFeePerGas": "1 beat", +} +`; + exports[`getFormattedFeeFields with tx type 2 with locale pt-BR should correctly format fee fields for REOSC unit 1`] = ` { "formattedFeeValue": "0,0042 REOSC", @@ -9450,6 +9756,24 @@ exports[`getFormattedFeeFields with tx type 2 with locale ru-RU should correctly } `; +exports[`getFormattedFeeFields with tx type 2 with locale ru-RU should correctly format fee fields for PulseChain Testnet unit 1`] = ` +{ + "formattedFeeValue": "0,000042 tPLS", + "formattedGasPrice": "0 beat", + "formattedMaxFeePerGas": "2 beat", + "formattedMaxPriorityFeePerGas": "1 beat", +} +`; + +exports[`getFormattedFeeFields with tx type 2 with locale ru-RU should correctly format fee fields for PulseChain unit 1`] = ` +{ + "formattedFeeValue": "0,000042 PLS", + "formattedGasPrice": "0 beat", + "formattedMaxFeePerGas": "2 beat", + "formattedMaxPriorityFeePerGas": "1 beat", +} +`; + exports[`getFormattedFeeFields with tx type 2 with locale ru-RU should correctly format fee fields for REOSC unit 1`] = ` { "formattedFeeValue": "0,0042 REOSC", @@ -9981,6 +10305,24 @@ exports[`getFormattedFeeFields with tx type 2 with locale tr-TR should correctly } `; +exports[`getFormattedFeeFields with tx type 2 with locale tr-TR should correctly format fee fields for PulseChain Testnet unit 1`] = ` +{ + "formattedFeeValue": "0,000042 tPLS", + "formattedGasPrice": "0 beat", + "formattedMaxFeePerGas": "2 beat", + "formattedMaxPriorityFeePerGas": "1 beat", +} +`; + +exports[`getFormattedFeeFields with tx type 2 with locale tr-TR should correctly format fee fields for PulseChain unit 1`] = ` +{ + "formattedFeeValue": "0,000042 PLS", + "formattedGasPrice": "0 beat", + "formattedMaxFeePerGas": "2 beat", + "formattedMaxPriorityFeePerGas": "1 beat", +} +`; + exports[`getFormattedFeeFields with tx type 2 with locale tr-TR should correctly format fee fields for REOSC unit 1`] = ` { "formattedFeeValue": "0,0042 REOSC", @@ -10512,6 +10854,24 @@ exports[`getFormattedFeeFields with tx type 2 with locale zh-CN should correctly } `; +exports[`getFormattedFeeFields with tx type 2 with locale zh-CN should correctly format fee fields for PulseChain Testnet unit 1`] = ` +{ + "formattedFeeValue": "0.000042 tPLS", + "formattedGasPrice": "0 beat", + "formattedMaxFeePerGas": "2 beat", + "formattedMaxPriorityFeePerGas": "1 beat", +} +`; + +exports[`getFormattedFeeFields with tx type 2 with locale zh-CN should correctly format fee fields for PulseChain unit 1`] = ` +{ + "formattedFeeValue": "0.000042 PLS", + "formattedGasPrice": "0 beat", + "formattedMaxFeePerGas": "2 beat", + "formattedMaxPriorityFeePerGas": "1 beat", +} +`; + exports[`getFormattedFeeFields with tx type 2 with locale zh-CN should correctly format fee fields for REOSC unit 1`] = ` { "formattedFeeValue": "0.0042 REOSC", diff --git a/libs/ledger-live-common/src/apps/polyfill.ts b/libs/ledger-live-common/src/apps/polyfill.ts index f509c82ed908..7446b14e2571 100644 --- a/libs/ledger-live-common/src/apps/polyfill.ts +++ b/libs/ledger-live-common/src/apps/polyfill.ts @@ -62,6 +62,7 @@ function declareDep(name: string, dep: string): void { ["Paraswap", "Ethereum"], ["POAP", "Ethereum"], ["Polygon", "Ethereum"], + ["PulseChain", "Ethereum"], ["Rarible", "Ethereum"], ["Ricochet", "Ethereum"], ["RocketPool", "Ethereum"], diff --git a/libs/ledger-live-common/src/apps/react.test.ts b/libs/ledger-live-common/src/apps/react.test.ts index 485c66484ea3..cfea2befdce9 100644 --- a/libs/ledger-live-common/src/apps/react.test.ts +++ b/libs/ledger-live-common/src/apps/react.test.ts @@ -19,8 +19,8 @@ calculateDependencies(); const mockedState = initState( mockListAppsResult( - "Bitcoin, Bitcoin Legacy, Ethereum, Litecoin, Dogecoin, Ethereum Classic, XRP, Bitcoin Cash, Decred, Aave, Polygon, Binance Smart Chain", - "Litecoin (outdated), Ethereum, Ethereum Classic, Aave, Polygon, Binance Smart Chain", + "Bitcoin, Bitcoin Legacy, Ethereum, Litecoin, Dogecoin, Ethereum Classic, XRP, Bitcoin Cash, Decred, Aave, Polygon, Binance Smart Chain, PulseChain", + "Litecoin (outdated), Ethereum, Ethereum Classic, Aave, Polygon, Binance Smart Chain, PulseChain", deviceInfo155, ), ); @@ -57,6 +57,7 @@ test("Apps hooks - useAppUninstallNeedsDeps - Expect dep apps", () => { "Aave", "Polygon", "Binance Smart Chain", + "PulseChain", ]); }); test("Apps hooks - useAppUninstallNeedsDeps - Expect no dep apps", () => { @@ -139,7 +140,7 @@ test("Apps hooks - useAppsSections - Correct number of installed apps", () => { }, }), ); - expect(result.current.device.length).toBe(6); + expect(result.current.device.length).toBe(7); }); test("Apps hooks - useAppsSections - Correct number of catalog apps", () => { const { result } = renderHook(() => @@ -152,7 +153,7 @@ test("Apps hooks - useAppsSections - Correct number of catalog apps", () => { }, }), ); - expect(result.current.catalog.length).toBe(12); + expect(result.current.catalog.length).toBe(13); }); test("Apps hooks - useAppsSections - Correct number of catalog apps with query", () => { const { result } = renderHook(() => @@ -184,8 +185,8 @@ test("Apps hooks - useAppsSections - Correct number of installed apps with query const mockedStateWithInstallQueue = { ...initState( mockListAppsResult( - "Bitcoin, Bitcoin Legacy, Ethereum, Litecoin, Dogecoin, Ethereum Classic, XRP, Bitcoin Cash, Decred, Aave, Polygon, Binance Smart Chain", - "Litecoin (outdated), Ethereum, Ethereum Classic, Aave, Polygon, Binance Smart Chain", + "Bitcoin, Bitcoin Legacy, Ethereum, Litecoin, Dogecoin, Ethereum Classic, XRP, Bitcoin Cash, Decred, Aave, Polygon, Binance Smart Chain, PulseChain", + "Litecoin (outdated), Ethereum, Ethereum Classic, Aave, Polygon, Binance Smart Chain, PulseChain", deviceInfo155, ), ), @@ -214,6 +215,7 @@ test('Apps hooks - useAppsSections - Sort "device" category apps with installing "Aave", "Polygon", "Binance Smart Chain", + "PulseChain", ]); expect(installQueueResult.current.device.map(elt => elt.name)).toMatchObject([ // Apps being installed @@ -226,5 +228,6 @@ test('Apps hooks - useAppsSections - Sort "device" category apps with installing "Aave", "Polygon", "Binance Smart Chain", + "PulseChain", ]); }); diff --git a/libs/ledger-live-common/src/currencies/__snapshots__/sortByMarketcap.test.ts.snap b/libs/ledger-live-common/src/currencies/__snapshots__/sortByMarketcap.test.ts.snap index e56a590a1f45..6b015009c1ec 100644 --- a/libs/ledger-live-common/src/currencies/__snapshots__/sortByMarketcap.test.ts.snap +++ b/libs/ledger-live-common/src/currencies/__snapshots__/sortByMarketcap.test.ts.snap @@ -1590,6 +1590,7 @@ exports[`sortCurrenciesByIds snapshot 1`] = ` "boba", "moonriver", "polygon_zk_evm", + "pulsechain", "base", "neon_evm", "lukso", diff --git a/libs/ledger-live-common/src/families/evm/config.ts b/libs/ledger-live-common/src/families/evm/config.ts index 25e97982bfbc..6453f90ebe22 100644 --- a/libs/ledger-live-common/src/families/evm/config.ts +++ b/libs/ledger-live-common/src/families/evm/config.ts @@ -555,6 +555,22 @@ const evmConfig: CurrencyLiveConfigDefinition = { }, }, }, + config_currency_pulsechain: { + type: "object", + default: { + status: { + type: "active", + }, + node: { + type: "external", + uri: "https://rpc.pulsechain.com", + }, + explorer: { + type: "blockscout", + uri: "https://api.scan.pulsechain.com/api", + }, + }, + }, config_currency_base: { type: "object", default: { @@ -669,6 +685,22 @@ const evmConfig: CurrencyLiveConfigDefinition = { explorer: { type: "etherscan", uri: "https://api-testnet-zkevm.polygonscan.com/api" }, }, }, + config_currency_pulsechain_testnet: { + type: "object", + default: { + status: { + type: "active", + }, + node: { + type: "external", + uri: "https://rpc.v4.testnet.pulsechain.com", + }, + explorer: { + type: "blockscout", + uri: "https://api.scan.v4.testnet.pulsechain.com/api", + }, + }, + }, config_currency_base_sepolia: { type: "object", default: { diff --git a/libs/ledger-live-common/src/featureFlags/defaultFeatures.ts b/libs/ledger-live-common/src/featureFlags/defaultFeatures.ts index b5542ad71e25..223810a67ed2 100644 --- a/libs/ledger-live-common/src/featureFlags/defaultFeatures.ts +++ b/libs/ledger-live-common/src/featureFlags/defaultFeatures.ts @@ -58,6 +58,8 @@ export const CURRENCY_DEFAULT_FEATURES = { currencyPersistence: DEFAULT_FEATURE, currencyPolygonZkEvm: DEFAULT_FEATURE, currencyPolygonZkEvmTestnet: DEFAULT_FEATURE, + currencyPulseChain: DEFAULT_FEATURE, + currencyPulseChainTestnet: DEFAULT_FEATURE, currencyQuicksilver: DEFAULT_FEATURE, currencyRsk: DEFAULT_FEATURE, currencySecretNetwork: DEFAULT_FEATURE, diff --git a/libs/ledgerjs/packages/cryptoassets/src/abandonseed.ts b/libs/ledgerjs/packages/cryptoassets/src/abandonseed.ts index 409d6b02f870..7bbc2990c26f 100644 --- a/libs/ledgerjs/packages/cryptoassets/src/abandonseed.ts +++ b/libs/ledgerjs/packages/cryptoassets/src/abandonseed.ts @@ -85,6 +85,8 @@ const abandonSeedAddresses: Partial> = { klaytn: EVM_DEAD_ADDRESS, polygon_zk_evm: EVM_DEAD_ADDRESS, polygon_zk_evm_testnet: EVM_DEAD_ADDRESS, + pulsechain: EVM_DEAD_ADDRESS, + pulsechain_testnet: EVM_DEAD_ADDRESS, base: EVM_DEAD_ADDRESS, base_sepolia: EVM_DEAD_ADDRESS, stacks: "SP3KS7VMY2ZNE6SB88PHR4SKRK2EEPHS8N8MCCBR9", diff --git a/libs/ledgerjs/packages/cryptoassets/src/currencies.test.ts b/libs/ledgerjs/packages/cryptoassets/src/currencies.test.ts index 508af68c9b39..93dc9dfff3e5 100644 --- a/libs/ledgerjs/packages/cryptoassets/src/currencies.test.ts +++ b/libs/ledgerjs/packages/cryptoassets/src/currencies.test.ts @@ -63,7 +63,18 @@ currencies.forEach(c => { c.keywords?.forEach(k => { test(`should find ${c.name} with keyword ${k}`, () => { - expect(findCryptoCurrencyByKeyword(k)).toEqual(c); + const result = findCryptoCurrencyByKeyword(k); + // Check if the result matches the current currency or its mainnet/testnet counterpart + if (result === c) { + expect(result).toEqual(c); + } else if (c.isTestnetFor && result?.id === c.isTestnetFor) { + expect(result.id).toEqual(c.isTestnetFor); + } else if (result?.isTestnetFor === c.id) { + expect(result.isTestnetFor).toEqual(c.id); + } else { + // If none of the above conditions are met, the test should fail + expect(result).toEqual(c); + } }); }); }); diff --git a/libs/ledgerjs/packages/cryptoassets/src/currencies.ts b/libs/ledgerjs/packages/cryptoassets/src/currencies.ts index f7fae81239e5..321b8846e1b0 100644 --- a/libs/ledgerjs/packages/cryptoassets/src/currencies.ts +++ b/libs/ledgerjs/packages/cryptoassets/src/currencies.ts @@ -3967,6 +3967,89 @@ export const cryptocurrenciesById: Record = { }, ], }, + pulsechain: { + type: "CryptoCurrency", + id: "pulsechain", + coinType: CoinType.ETH, + name: "PulseChain", + managerAppName: "Ethereum", + ticker: "PLS", + scheme: "pulsechain", + color: "#a928ff", + family: "evm", + blockAvgTime: 10, + ethereumLikeInfo: { + chainId: 369, + }, + units: [ + { + name: "Pulse", + code: "PLS", + magnitude: 18, + }, + { + name: "beat", + code: "beat", + magnitude: 9, + }, + { + name: "impulse", + code: "impulse", + magnitude: 0, + }, + ], + explorerViews: [ + { + tx: "https://scan.pulsechain.com/tx/$hash", + address: "https://scan.pulsechain.com/address/$address", + token: "https://scan.pulsechain.com/token/$contractAddress", + }, + ], + keywords: ["pulse", "pls", "pulsechain", "pulse chain"], + explorerId: "pls", + }, + pulsechain_testnet: { + type: "CryptoCurrency", + id: "pulsechain_testnet", + coinType: CoinType.ETH, + name: "PulseChain Testnet", + managerAppName: "Ethereum", + ticker: "tPLS", + scheme: "pulsechain_testnet", + color: "#2894ff", + family: "evm", + blockAvgTime: 10, + isTestnetFor: "pulsechain", + ethereumLikeInfo: { + chainId: 943, + }, + units: [ + { + name: "Test Pulse", + code: "tPLS", + magnitude: 18, + }, + { + name: "beat", + code: "beat", + magnitude: 9, + }, + { + name: "impulse", + code: "impulse", + magnitude: 0, + }, + ], + explorerViews: [ + { + tx: "https://scan.v4.testnet.pulsechain.com/#/tx/$hash", + address: "https://scan.v4.testnet.pulsechain.com/#/address/$address", + token: "https://scan.v4.testnet.pulsechain.com/#/token/$contractAddress", + }, + ], + keywords: ["pulse", "pls", "pulsechain", "pulse chain", "tpls", "test pulse"], + explorerId: "pls", + }, base: { type: "CryptoCurrency", id: "base", diff --git a/libs/ledgerjs/packages/cryptoassets/src/data/evm/369/erc20-hash.json b/libs/ledgerjs/packages/cryptoassets/src/data/evm/369/erc20-hash.json new file mode 100644 index 000000000000..3cc762b5501e --- /dev/null +++ b/libs/ledgerjs/packages/cryptoassets/src/data/evm/369/erc20-hash.json @@ -0,0 +1 @@ +"" \ No newline at end of file diff --git a/libs/ledgerjs/packages/cryptoassets/src/data/evm/369/erc20-signatures-hash.json b/libs/ledgerjs/packages/cryptoassets/src/data/evm/369/erc20-signatures-hash.json new file mode 100644 index 000000000000..3cc762b5501e --- /dev/null +++ b/libs/ledgerjs/packages/cryptoassets/src/data/evm/369/erc20-signatures-hash.json @@ -0,0 +1 @@ +"" \ No newline at end of file diff --git a/libs/ledgerjs/packages/cryptoassets/src/data/evm/369/erc20-signatures.json b/libs/ledgerjs/packages/cryptoassets/src/data/evm/369/erc20-signatures.json new file mode 100644 index 000000000000..3cc762b5501e --- /dev/null +++ b/libs/ledgerjs/packages/cryptoassets/src/data/evm/369/erc20-signatures.json @@ -0,0 +1 @@ +"" \ No newline at end of file diff --git a/libs/ledgerjs/packages/cryptoassets/src/data/evm/369/erc20.json b/libs/ledgerjs/packages/cryptoassets/src/data/evm/369/erc20.json new file mode 100644 index 000000000000..0637a088a01e --- /dev/null +++ b/libs/ledgerjs/packages/cryptoassets/src/data/evm/369/erc20.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/libs/ledgerjs/packages/cryptoassets/src/data/evm/369/index.ts b/libs/ledgerjs/packages/cryptoassets/src/data/evm/369/index.ts new file mode 100644 index 000000000000..9e2e69e7a7a7 --- /dev/null +++ b/libs/ledgerjs/packages/cryptoassets/src/data/evm/369/index.ts @@ -0,0 +1,4 @@ +export { default as tokens } from "./erc20.json"; +export { default as signatures } from "./erc20-signatures.json"; +export { default as hash } from "./erc20-hash.json"; +export { default as signaturesHash } from "./erc20-signatures-hash.json"; diff --git a/libs/ledgerjs/packages/types-cryptoassets/src/index.ts b/libs/ledgerjs/packages/types-cryptoassets/src/index.ts index ccff03081a2e..ba1f3970cfc7 100644 --- a/libs/ledgerjs/packages/types-cryptoassets/src/index.ts +++ b/libs/ledgerjs/packages/types-cryptoassets/src/index.ts @@ -85,6 +85,8 @@ export type CryptoCurrencyId = | "polkadot" | "polygon" | "poswallet" + | "pulsechain" + | "pulsechain_testnet" | "qrl" | "qtum" | "quicksilver" @@ -178,6 +180,7 @@ export type LedgerExplorerId = | "kmd" | "ltc" | "posw" + | "pls" | "qtum" | "strat" | "zec" diff --git a/libs/ledgerjs/packages/types-live/src/feature.ts b/libs/ledgerjs/packages/types-live/src/feature.ts index 467097adba3f..d10c86d877e9 100644 --- a/libs/ledgerjs/packages/types-live/src/feature.ts +++ b/libs/ledgerjs/packages/types-live/src/feature.ts @@ -105,6 +105,8 @@ export type CurrencyFeatures = { currencyCoreum: DefaultFeature; currencyPolygonZkEvm: DefaultFeature; currencyPolygonZkEvmTestnet: DefaultFeature; + currencyPulseChain: DefaultFeature; + currencyPulseChainTestnet: DefaultFeature; currencyBase: DefaultFeature; currencyBaseSepolia: DefaultFeature; currencyKlaytn: DefaultFeature; diff --git a/libs/ui/packages/crypto-icons/src/svg/PLS.svg b/libs/ui/packages/crypto-icons/src/svg/PLS.svg new file mode 100644 index 000000000000..f02bff417f4b --- /dev/null +++ b/libs/ui/packages/crypto-icons/src/svg/PLS.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/libs/ui/packages/crypto-icons/src/svg/TPLS.svg b/libs/ui/packages/crypto-icons/src/svg/TPLS.svg new file mode 100644 index 000000000000..f02bff417f4b --- /dev/null +++ b/libs/ui/packages/crypto-icons/src/svg/TPLS.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + +