diff --git a/electron/main/index.ts b/electron/main/index.ts
index a3d22464..16dc48fd 100644
--- a/electron/main/index.ts
+++ b/electron/main/index.ts
@@ -63,6 +63,7 @@ import { Algo, Talgo } from '@bitgo/sdk-coin-algo';
import { EthLikeCoin, TethLikeCoin } from '@bitgo/sdk-coin-ethlike';
import { Sui, Tsui } from '@bitgo/sdk-coin-sui';
import { loadWebAssembly } from '@bitgo/sdk-opensslbytes';
+import { Bera, Tbera } from '@bitgo/sdk-coin-bera';
const bip32 = BIP32Factory(ecc);
@@ -156,6 +157,8 @@ sdk.register('sui', Sui.createInstance);
sdk.register('tsui', Tsui.createInstance);
sdk.register('thorchain:rune', Rune.createInstance);
sdk.register('tthorchain:rune', Trune.createInstance);
+sdk.register('bera', Bera.createInstance);
+sdk.register('tbera', Tbera.createInstance);
Erc20Token.createTokenConstructors().forEach(({ name, coinConstructor }) => {
sdk.register(name, coinConstructor);
@@ -304,6 +307,11 @@ async function createWindow() {
case 'bsc':
case 'tbsc':
sdk = new BitGoAPI({ env: environment, bscscanApiToken: apiKey });
+ break;
+ case 'bera':
+ case 'tbera':
+ sdk = new BitGoAPI({ env: environment });
+ break;
default:
sdk = new BitGoAPI({ env: environment });
}
diff --git a/package-lock.json b/package-lock.json
index 6c93aa37..c55e06c4 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -19,6 +19,7 @@
"@bitgo/sdk-coin-avaxc": "5.2.8",
"@bitgo/sdk-coin-bch": "2.1.8",
"@bitgo/sdk-coin-bcha": "2.2.8",
+ "@bitgo/sdk-coin-bera": "^2.3.4",
"@bitgo/sdk-coin-bld": "3.0.27",
"@bitgo/sdk-coin-bsc": "22.2.11",
"@bitgo/sdk-coin-bsv": "2.1.8",
@@ -133,35 +134,6 @@
"node": ">=6.0.0"
}
},
- "node_modules/@api-ts/io-ts-http": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@api-ts/io-ts-http/-/io-ts-http-1.0.0.tgz",
- "integrity": "sha512-eP3pyoR9r7y7YCkJY5avi7NMKBWFGTs4CB1RE053yXcEDgVcq+X8Oxsq4Jaq+g6IPkhGGueCo7APefRiHjTxMw==",
- "dependencies": {
- "@api-ts/response": "1.0.0",
- "fp-ts": "2.12.3",
- "io-ts": "2.1.3",
- "io-ts-types": "0.5.16"
- }
- },
- "node_modules/@api-ts/io-ts-http/node_modules/fp-ts": {
- "version": "2.12.3",
- "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-2.12.3.tgz",
- "integrity": "sha512-8m0XvW8kZbfnJOA4NvSVXu95mLbPf4LQGwQyqVukIYS4KzSNJiyKSmuZUmbVHteUi6MGkAJGPb0goPZqI+Tsqg=="
- },
- "node_modules/@api-ts/io-ts-http/node_modules/io-ts": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-2.1.3.tgz",
- "integrity": "sha512-QFMR2QEBSP6w1TPmkpfca6xkzBbXO+K7ubdbV26GlCGI7CP9LV59bfty422JYtWgbBITuL/zBb1+mziv9f5Wfg==",
- "peerDependencies": {
- "fp-ts": "^2.0.0"
- }
- },
- "node_modules/@api-ts/response": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@api-ts/response/-/response-1.0.0.tgz",
- "integrity": "sha512-OTrMH5yyxNzzkC3fZPcz7KFN2j8A9ZD8YhwiYxy8zGKkE5aOJ4wWQO+q44H5mQLi3txD8AlvwQfkbpo3KyCmGw=="
- },
"node_modules/@babel/code-frame": {
"version": "7.25.7",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz",
@@ -2371,12 +2343,12 @@
}
},
"node_modules/@bitgo/abstract-eth": {
- "version": "22.4.8",
- "resolved": "https://registry.npmjs.org/@bitgo/abstract-eth/-/abstract-eth-22.4.8.tgz",
- "integrity": "sha512-DgSut6gyJ23FX/RueLgXSLTfCp5AtsqhuC1WxpJgqwcA27AypKyTF4KvR1WEHvIC9VEIeJ7RO4zwnWuBE/tR6A==",
+ "version": "22.4.10",
+ "resolved": "https://registry.npmjs.org/@bitgo/abstract-eth/-/abstract-eth-22.4.10.tgz",
+ "integrity": "sha512-phcnbNIqrPbFm9/dThkXrNczTqZ/BaUsstMS9w6mJX96lidpi9wYn0tGB21rZhNXnieqUIMaRF7Ifo5sYhHPdg==",
"dependencies": {
- "@bitgo/sdk-core": "^28.19.0",
- "@bitgo/statics": "^50.18.0",
+ "@bitgo/sdk-core": "^28.20.0",
+ "@bitgo/statics": "^50.20.0",
"@bitgo/utxo-lib": "^11.2.1",
"@ethereumjs/common": "^2.6.5",
"@ethereumjs/tx": "^3.3.0",
@@ -2513,23 +2485,17 @@
}
},
"node_modules/@bitgo/public-types": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/@bitgo/public-types/-/public-types-3.6.0.tgz",
- "integrity": "sha512-dvv5WOHFi1E9WnHMkLrPP8FtsVZ+956Gf8VsdFIS6EiVJMiuWVYtN4gaGN+OxqJ0ZZRUDELwkCmNn31LBlpNpw==",
+ "version": "4.9.2",
+ "resolved": "https://registry.npmjs.org/@bitgo/public-types/-/public-types-4.9.2.tgz",
+ "integrity": "sha512-yVP/duh0ION0pfSVMJt24qCQ66Vxjlg7eP9iewlaDpod1q1aGX4m0sP9GNcAWSVBHo1S0+r9YgWZIdcB/DHxTg==",
"dependencies": {
- "@api-ts/io-ts-http": "1.0.0",
- "fp-ts": "2.16.2",
+ "fp-ts": "^2.0.0",
"io-ts": "npm:@bitgo-forks/io-ts@2.1.4",
- "io-ts-types": "0.5.16",
- "monocle-ts": "2.3.13",
- "newtype-ts": "0.3.5"
+ "io-ts-types": "^0.5.16",
+ "monocle-ts": "^2.3.13",
+ "newtype-ts": "^0.3.5"
}
},
- "node_modules/@bitgo/public-types/node_modules/fp-ts": {
- "version": "2.16.2",
- "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-2.16.2.tgz",
- "integrity": "sha512-CkqAjnIKFqvo3sCyoBTqgJvF+bHrSik584S9nhTjtBESLx26cbtVMR/T9a6ApChOcSDAaM3JydDmWDUn4EEXng=="
- },
"node_modules/@bitgo/sdk-api": {
"version": "1.58.0",
"resolved": "https://registry.npmjs.org/@bitgo/sdk-api/-/sdk-api-1.58.0.tgz",
@@ -2753,6 +2719,21 @@
"node": ">=18 <21"
}
},
+ "node_modules/@bitgo/sdk-coin-bera": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/@bitgo/sdk-coin-bera/-/sdk-coin-bera-2.3.4.tgz",
+ "integrity": "sha512-mBsyYT1YAWhyD2zYAF/Ta+xgmecanx6GLx/OT14W4V0uZOmtxQMtc4kh3qFi7ZpxMu+A7zsBJe7V/rnI0OWgEw==",
+ "dependencies": {
+ "@bitgo/abstract-eth": "^22.4.10",
+ "@bitgo/sdk-core": "^28.20.0",
+ "@bitgo/statics": "^50.20.0",
+ "@bitgo/utxo-lib": "^11.2.1",
+ "@ethereumjs/common": "^2.6.5"
+ },
+ "engines": {
+ "node": ">=18 <21"
+ }
+ },
"node_modules/@bitgo/sdk-coin-bld": {
"version": "3.0.27",
"resolved": "https://registry.npmjs.org/@bitgo/sdk-coin-bld/-/sdk-coin-bld-3.0.27.tgz",
@@ -4688,15 +4669,15 @@
}
},
"node_modules/@bitgo/sdk-core": {
- "version": "28.19.0",
- "resolved": "https://registry.npmjs.org/@bitgo/sdk-core/-/sdk-core-28.19.0.tgz",
- "integrity": "sha512-u3eCuu7z71vF8RAl50LEPFRsox1FtoAobxO5o4pSsZkOYHjFTgjvUQqCIQ2Tf57GYDYXLJVqBhJg55B4BmyeWQ==",
+ "version": "28.20.0",
+ "resolved": "https://registry.npmjs.org/@bitgo/sdk-core/-/sdk-core-28.20.0.tgz",
+ "integrity": "sha512-ieOAVMR1aOpYcpuG3sM4NBuFUeTMMO2TIKdbGQ1BHS4A3mgl+youFytYbbMRJsHE4NDyzyKD2+G+q2e4aWBJ0w==",
"dependencies": {
"@bitgo/bls-dkg": "^1.3.1",
- "@bitgo/public-types": "3.6.0",
+ "@bitgo/public-types": "4.9.2",
"@bitgo/sdk-lib-mpc": "^10.1.0",
"@bitgo/sjcl": "^1.0.1",
- "@bitgo/statics": "^50.18.0",
+ "@bitgo/statics": "^50.20.0",
"@bitgo/utxo-lib": "^11.2.1",
"@noble/secp256k1": "1.6.3",
"@stablelib/hex": "^1.0.0",
@@ -4716,7 +4697,7 @@
"ethereumjs-util": "7.1.5",
"fp-ts": "^2.12.2",
"io-ts": "npm:@bitgo-forks/io-ts@2.1.4",
- "io-ts-types": "0.5.16",
+ "io-ts-types": "^0.5.16",
"keccak": "3.0.3",
"libsodium-wrappers-sumo": "^0.7.9",
"lodash": "^4.17.15",
@@ -4897,9 +4878,9 @@
"license": "(BSD-2-Clause OR GPL-2.0-only)"
},
"node_modules/@bitgo/statics": {
- "version": "50.18.0",
- "resolved": "https://registry.npmjs.org/@bitgo/statics/-/statics-50.18.0.tgz",
- "integrity": "sha512-aFlJmOvj3ha3xMAjVqrThEoUJEourOEeKmSov+Pc34CK/hI6K8rmIrKf9yNHC7NnZkV09p1mcYPulm5xZ5tO1w=="
+ "version": "50.20.0",
+ "resolved": "https://registry.npmjs.org/@bitgo/statics/-/statics-50.20.0.tgz",
+ "integrity": "sha512-smbJsJ7fFDMY2qdqikjKuMsuIKbUqRzlh04lIyMQFBs4KvQK/PpDzHnJqVdiTobvbjEf12aW8NgAO/FbP3ai/w=="
},
"node_modules/@bitgo/unspents": {
"version": "0.47.17",
@@ -32686,9 +32667,9 @@
}
},
"node_modules/io-ts-types": {
- "version": "0.5.16",
- "resolved": "https://registry.npmjs.org/io-ts-types/-/io-ts-types-0.5.16.tgz",
- "integrity": "sha512-h9noYVfY9rlbmKI902SJdnV/06jgiT2chxG6lYDxaYNp88HscPi+SBCtmcU+m0E7WT5QSwt7sIMj93+qu0FEwQ==",
+ "version": "0.5.19",
+ "resolved": "https://registry.npmjs.org/io-ts-types/-/io-ts-types-0.5.19.tgz",
+ "integrity": "sha512-kQOYYDZG5vKre+INIDZbLeDJe+oM+4zLpUkjXyTMyUfoCpjJNyi29ZLkuEAwcPufaYo3yu/BsemZtbdD+NtRfQ==",
"peerDependencies": {
"fp-ts": "^2.0.0",
"io-ts": "^2.0.0",
diff --git a/package.json b/package.json
index 4832a61a..94fedab2 100644
--- a/package.json
+++ b/package.json
@@ -19,6 +19,7 @@
"@bitgo/sdk-coin-avaxc": "5.2.8",
"@bitgo/sdk-coin-bch": "2.1.8",
"@bitgo/sdk-coin-bcha": "2.2.8",
+ "@bitgo/sdk-coin-bera": "^2.3.4",
"@bitgo/sdk-coin-bld": "3.0.27",
"@bitgo/sdk-coin-bsc": "22.2.11",
"@bitgo/sdk-coin-bsv": "2.1.8",
diff --git a/scripts/build-icons.js b/scripts/build-icons.js
index 2a367564..ee1fb7e7 100644
--- a/scripts/build-icons.js
+++ b/scripts/build-icons.js
@@ -40,7 +40,8 @@ const coins = [
'algo',
'bsc',
'sui',
- 'thorchain:rune'
+ 'thorchain:rune',
+ 'bera'
];
const paths = fs
diff --git a/src/components/CryptocurrencyIcon/CryptocurrencyIcon.tsx b/src/components/CryptocurrencyIcon/CryptocurrencyIcon.tsx
index bf8c0568..65810b32 100644
--- a/src/components/CryptocurrencyIcon/CryptocurrencyIcon.tsx
+++ b/src/components/CryptocurrencyIcon/CryptocurrencyIcon.tsx
@@ -38,14 +38,15 @@ export interface CryptocurrencyIconProps {
| 'algo'
| 'etc'
| 'sui'
- | 'thorchain:rune';
+ | 'thorchain:rune'
+ | 'bera';
Size: 'small' | 'medium' | 'large';
}
export function CryptocurrencyIcon({
- Name,
- Size,
- ...hostProps
+ Name,
+ Size,
+ ...hostProps
}: CryptocurrencyIconProps & JSX.IntrinsicElements['svg']) {
switch (Name) {
case 'ada':
@@ -1824,7 +1825,33 @@ export function CryptocurrencyIcon({
- )
+ );
+ case 'bera':
+ return (
+
+ );
default:
return null;
}
diff --git a/src/containers/BuildUnsignedSweepCoin/BuildUnsignedSweepCoin.tsx b/src/containers/BuildUnsignedSweepCoin/BuildUnsignedSweepCoin.tsx
index 8574ecd5..d7284d3c 100644
--- a/src/containers/BuildUnsignedSweepCoin/BuildUnsignedSweepCoin.tsx
+++ b/src/containers/BuildUnsignedSweepCoin/BuildUnsignedSweepCoin.tsx
@@ -122,6 +122,8 @@ function Form() {
case 'tarbeth':
case 'opeth':
case 'topeth':
+ case 'bera':
+ case 'tbera':
return (
= {
Icon: 'thorchain:rune',
value: 'thorchain:rune'
},
+ bera: {
+ Title: 'BERA',
+ Description: 'Bera',
+ Icon: 'bera',
+ value: 'bera',
+ ApiKeyProvider: 'bartio.beratrail.io'
+ },
suiToken: {
Title: 'SUI Token',
Description: 'Sui Token',
@@ -622,6 +629,13 @@ export const allCoinMetas: Record = {
Icon: 'baseeth',
value: 'tbaseeth',
},
+ tbera: {
+ Title: 'TBERA',
+ Description: 'Bera Testnet',
+ Icon: 'bera',
+ value: 'tbera',
+ ApiKeyProvider: 'bartio.beratrail.io'
+ }
} as const;
export const buildUnsignedConsolidationCoins: Record<
@@ -689,6 +703,7 @@ export const buildUnsignedSweepCoins: Record<
allCoinMetas.algo,
allCoinMetas.sui,
allCoinMetas.suiToken,
+ allCoinMetas.bera
] as const,
test: [
allCoinMetas.tbtc,
@@ -719,6 +734,7 @@ export const buildUnsignedSweepCoins: Record<
allCoinMetas.tbsc,
allCoinMetas.tsui,
allCoinMetas.tsuiToken,
+ allCoinMetas.tbera
] as const,
};
@@ -770,6 +786,7 @@ export const nonBitgoRecoveryCoins: Record =
allCoinMetas.sui,
allCoinMetas.suiToken,
allCoinMetas['thorchain:rune'],
+ allCoinMetas.bera,
] as const,
test: [
allCoinMetas.tbtc,
@@ -811,6 +828,7 @@ export const nonBitgoRecoveryCoins: Record =
allCoinMetas.tsui,
allCoinMetas.tsuiToken,
allCoinMetas['tthorchain:rune'],
+ allCoinMetas.tbera
] as const,
};