diff --git a/packages/blockchain-link/src/ui/config.ts b/packages/blockchain-link/src/ui/config.ts index e3da4ce5483..a1a2daa4a20 100644 --- a/packages/blockchain-link/src/ui/config.ts +++ b/packages/blockchain-link/src/ui/config.ts @@ -300,6 +300,29 @@ export default [ subscribe: '', }, }, + { + blockchain: { + name: 'Fujicoin', + worker: 'js/blockbook-worker.js', + server: [ + 'https://explorer.fujicoin.org', + ], + debug: true, + }, + data: { + address: '', + accountInfoOptions: { + page: 0, + pageSize: 25, + }, + estimateFeeOptions: { + blocks: [1, 2, 10], + }, + txid: '', + tx: '', + subscribe: '', + }, + }, { blockchain: { name: 'Litecoin', diff --git a/packages/blockchain-link/src/workers/electrum/client/electrum.ts b/packages/blockchain-link/src/workers/electrum/client/electrum.ts index 4fbd3d50a5d..91d40145726 100644 --- a/packages/blockchain-link/src/workers/electrum/client/electrum.ts +++ b/packages/blockchain-link/src/workers/electrum/client/electrum.ts @@ -17,6 +17,8 @@ type ElectrumClientOptions = JsonRpcClientOptions & { const selectNetwork = (shortcut?: string) => { switch (shortcut) { + case 'FJC': + return networks.fujicoin; case 'REGTEST': return networks.regtest; case 'TEST': diff --git a/packages/components/src/components/assets/CoinLogo/coins.ts b/packages/components/src/components/assets/CoinLogo/coins.ts index 5d149412032..078f0de8847 100644 --- a/packages/components/src/components/assets/CoinLogo/coins.ts +++ b/packages/components/src/components/assets/CoinLogo/coins.ts @@ -13,6 +13,7 @@ export const COINS = { eos: require('../../../images/coins/eos.svg'), etc: require('../../../images/coins/etc.svg'), eth: require('../../../images/coins/eth.svg'), + fjc: require('../../../images/coins/fjc.svg'), ltc: require('../../../images/coins/ltc.svg'), nmc: require('../../../images/coins/nmc.svg'), tada: require('../../../images/coins/tada.svg'), diff --git a/packages/components/src/images/coins/fjc.svg b/packages/components/src/images/coins/fjc.svg new file mode 100644 index 00000000000..cd1caea1c06 --- /dev/null +++ b/packages/components/src/images/coins/fjc.svg @@ -0,0 +1 @@ +newlogo-50x50 \ No newline at end of file diff --git a/packages/connect-common/files/coins.json b/packages/connect-common/files/coins.json index d9873a1f04a..cbfe268335f 100644 --- a/packages/connect-common/files/coins.json +++ b/packages/connect-common/files/coins.json @@ -1077,7 +1077,10 @@ "bech32_prefix": "fc", "blockchain_link": { "type": "blockbook", - "url": ["https://explorer.fujicoin.org"] + "url": [ + "https://explorer.fujicoin.org", + "https://explorer2.fujicoin.org" + ] }, "blocktime_seconds": 60, "cashaddr_prefix": null, diff --git a/packages/suite-data/files/images/png/homescreens/t2/fjc.png b/packages/suite-data/files/images/png/homescreens/t2/fjc.png new file mode 100644 index 00000000000..3fffc7eecf5 Binary files /dev/null and b/packages/suite-data/files/images/png/homescreens/t2/fjc.png differ diff --git a/packages/suite-desktop-core/src/modules/auto-updater.ts b/packages/suite-desktop-core/src/modules/auto-updater.ts index 8f034b9fe44..81d404a17b7 100644 --- a/packages/suite-desktop-core/src/modules/auto-updater.ts +++ b/packages/suite-desktop-core/src/modules/auto-updater.ts @@ -31,6 +31,8 @@ const updaterURL = app.commandLine.getSwitchValue('updater-url'); export const SERVICE_NAME = 'auto-updater'; export const init: Module = ({ mainWindow, store }) => { + return; + const { logger } = global; if (!isFeatureFlagEnabled('DESKTOP_AUTO_UPDATER') && !enableUpdater) { logger.info(SERVICE_NAME, 'Disabled via feature flag'); diff --git a/packages/suite-desktop/electron-builder-config.js b/packages/suite-desktop/electron-builder-config.js index 7186252c0c1..ccace621ccf 100644 --- a/packages/suite-desktop/electron-builder-config.js +++ b/packages/suite-desktop/electron-builder-config.js @@ -6,13 +6,13 @@ const isCodesignBuild = process.env.IS_CODESIGN_BUILD === 'true'; // to be able to use patterns like ${author} and ${arch} module.exports = { // distingush between dev and prod builds - appId: `io.trezor.TrezorSuite${isCodesignBuild ? '' : '.dev'}`, + appId: `fujicoin.org.TrezorSuite${isCodesignBuild ? '' : '.dev'}`, extraMetadata: { version: suiteVersion, // distingush between dev and prod builds so different userDataDir is used name: `@trezor/suite-desktop${isCodesignBuild ? '' : '-dev'}`, }, - productName: 'Trezor Suite', + productName: 'Fujicoin Trezor Suite', copyright: 'Copyright © ${author}', asar: true, asarUnpack: ['**/*.node'], @@ -92,7 +92,7 @@ module.exports = { }, ], icon: 'build/static/images/desktop/512x512.icns', - artifactName: 'Trezor-Suite-${version}-mac-${arch}.${ext}', + artifactName: 'Fujicoin-Trezor-Suite-${version}-mac-${arch}.${ext}', hardenedRuntime: true, gatekeeperAssess: false, darkModeSupport: true, @@ -126,7 +126,7 @@ module.exports = { }, ], icon: 'build/static/images/desktop/512x512.png', - artifactName: 'Trezor-Suite-${version}-win-${arch}.${ext}', + artifactName: 'Fujicoin-Trezor-Suite-${version}-win-${arch}.${ext}', target: ['nsis'], signDlls: true, }, @@ -150,8 +150,8 @@ module.exports = { }, ], icon: 'build/static/images/desktop/512x512.png', - artifactName: 'Trezor-Suite-${version}-linux-${arch}.${ext}', - executableName: 'trezor-suite', + artifactName: 'Fujicoin-Trezor-Suite-${version}-linux-${arch}.${ext}', + executableName: 'fujicoin-trezor-suite', category: 'Utility', target: ['AppImage'], }, diff --git a/packages/suite-desktop/package.json b/packages/suite-desktop/package.json index db39479fba6..c7865a956ef 100644 --- a/packages/suite-desktop/package.json +++ b/packages/suite-desktop/package.json @@ -36,3 +36,4 @@ "glob": "^10.3.10" } } + diff --git a/packages/suite/src/constants/suite/protocol.ts b/packages/suite/src/constants/suite/protocol.ts index 8732391cf2a..f3d46eac0b4 100644 --- a/packages/suite/src/constants/suite/protocol.ts +++ b/packages/suite/src/constants/suite/protocol.ts @@ -3,6 +3,7 @@ import type { Network } from 'src/types/wallet'; export enum PROTOCOL_SCHEME { BITCOIN = 'bitcoin', LITECOIN = 'litecoin', + FUJICOIN = 'fujicoin', BITCOIN_CASH = 'bitcoincash', BITCOIN_GOLD = 'bitcoingold', DASH = 'dash', @@ -21,6 +22,7 @@ export enum PROTOCOL_SCHEME { export const PROTOCOL_TO_NETWORK: Partial<{ [key in PROTOCOL_SCHEME]: Network['symbol'] }> = { [PROTOCOL_SCHEME.BITCOIN]: 'btc', [PROTOCOL_SCHEME.LITECOIN]: 'ltc', + [PROTOCOL_SCHEME.FUJICOIN]: 'fjc', [PROTOCOL_SCHEME.BITCOIN_CASH]: 'bch', [PROTOCOL_SCHEME.BITCOIN_GOLD]: 'btg', [PROTOCOL_SCHEME.DASH]: 'dash', diff --git a/packages/suite/src/support/messages.ts b/packages/suite/src/support/messages.ts index 37de31b94ef..92e5f3745a7 100644 --- a/packages/suite/src/support/messages.ts +++ b/packages/suite/src/support/messages.ts @@ -2977,6 +2977,10 @@ export default defineMessages({ defaultMessage: 'Ethereum Holesky', id: 'TR_NETWORK_ETHEREUM_HOLESKY', }, + TR_NETWORK_FUJICOIN: { + defaultMessage: 'Fujicoin', + id: 'TR_NETWORK_FUJICOIN', + }, TR_NETWORK_LITECOIN: { defaultMessage: 'Litecoin', id: 'TR_NETWORK_LITECOIN', diff --git a/packages/utxo-lib/src/networks.ts b/packages/utxo-lib/src/networks.ts index 91a1d6394f2..fd3177f7eb0 100644 --- a/packages/utxo-lib/src/networks.ts +++ b/packages/utxo-lib/src/networks.ts @@ -96,6 +96,18 @@ export const bitcoingold: Network = { forkId: 0x4f /* 79 */, }; +export const fujicoin: Network = { + messagePrefix: '\x19FujiCoin Signed Message:\n', + bech32: 'fc', + bip32: { + public: 0x0488b21e, + private: 0x0488ade4, + }, + pubKeyHash: 0x24, + scriptHash: 0x10, + wif: 0xa4, +}; + export const litecoin: Network = { messagePrefix: '\x19Litecoin Signed Message:\n', bech32: 'ltc', diff --git a/suite-common/suite-constants/src/protocol.ts b/suite-common/suite-constants/src/protocol.ts index 7311f9fce48..45eef22f6bc 100644 --- a/suite-common/suite-constants/src/protocol.ts +++ b/suite-common/suite-constants/src/protocol.ts @@ -3,6 +3,7 @@ import { NetworkSymbol } from '@suite-common/wallet-config'; export enum PROTOCOL_SCHEME { BITCOIN = 'bitcoin', LITECOIN = 'litecoin', + FUJICOIN = 'fujicoin', BITCOIN_CASH = 'bitcoincash', BITCOIN_GOLD = 'bitcoingold', DASH = 'dash', diff --git a/suite-common/wallet-config/src/networksConfig.ts b/suite-common/wallet-config/src/networksConfig.ts index 7c0a2b7fae7..3f04711b5f6 100644 --- a/suite-common/wallet-config/src/networksConfig.ts +++ b/suite-common/wallet-config/src/networksConfig.ts @@ -35,6 +35,35 @@ export const networks = { }, coingeckoId: 'bitcoin', }, + fjc: { + name: 'Fujicoin', + networkType: 'bitcoin', + bip43Path: "m/84'/75'/i'", + decimals: 8, + testnet: false, + explorer: { + tx: 'https://explorer.fujicoin.org/tx/', + account: 'https://explorer.fujicoin.org/xpub/', + address: 'https://explorer.fujicoin.org/address/', + }, + features: ['rbf', 'sign-verify'], + customBackends: ['blockbook', 'electrum'], + accountTypes: { + taproot: { + name: 'Fujicoin (Taproot)', + bip43Path: "m/86'/75'/i'", + features: ['rbf'], + }, + segwit: { + name: 'Fujicoin (Legacy Segwit)', + bip43Path: "m/49'/75'/i'", + }, + legacy: { + name: 'Fujicoin (Legacy)', + bip43Path: "m/44'/75'/i'", + }, + }, + }, ltc: { name: 'Litecoin', networkType: 'bitcoin', diff --git a/suite-common/wallet-utils/src/__fixtures__/accountUtils.ts b/suite-common/wallet-utils/src/__fixtures__/accountUtils.ts index 3a4ed848e81..743bf931d22 100644 --- a/suite-common/wallet-utils/src/__fixtures__/accountUtils.ts +++ b/suite-common/wallet-utils/src/__fixtures__/accountUtils.ts @@ -63,6 +63,7 @@ export const accountTitleFixture = [ { symbol: 'zec', title: 'TR_NETWORK_ZCASH' }, { symbol: 'eth', title: 'TR_NETWORK_ETHEREUM' }, { symbol: 'etc', title: 'TR_NETWORK_ETHEREUM_CLASSIC' }, + { symbol: 'fjc', title: 'TR_NETWORK_FUJICOIN' }, { symbol: 'xem', title: 'TR_NETWORK_NEM' }, { symbol: 'xlm', title: 'TR_NETWORK_STELLAR' }, { symbol: 'ada', title: 'TR_NETWORK_CARDANO' }, diff --git a/suite-common/wallet-utils/src/accountUtils.ts b/suite-common/wallet-utils/src/accountUtils.ts index 31997ad79a1..7d27b663b1d 100644 --- a/suite-common/wallet-utils/src/accountUtils.ts +++ b/suite-common/wallet-utils/src/accountUtils.ts @@ -149,6 +149,8 @@ export const getTitleForNetwork = (symbol: NetworkSymbol) => { return 'TR_NETWORK_ZCASH'; case 'eth': return 'TR_NETWORK_ETHEREUM'; + case 'fjc': + return 'TR_NETWORK_FUJICOIN'; case 'tsep': return 'TR_NETWORK_ETHEREUM_SEPOLIA'; case 'thol':