Skip to content

Commit

Permalink
feat: support testnet 4, closes LEA-1406
Browse files Browse the repository at this point in the history
  • Loading branch information
kyranjamie committed Oct 17, 2024
1 parent 1df5138 commit eb135a1
Show file tree
Hide file tree
Showing 8 changed files with 1,236 additions and 1,265 deletions.
18 changes: 9 additions & 9 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -141,15 +141,15 @@
"@coinbase/cbpay-js": "2.1.0",
"@fungible-systems/zone-file": "2.0.0",
"@hirosystems/token-metadata-api-client": "1.2.0",
"@leather.io/bitcoin": "0.13.2",
"@leather.io/constants": "0.12.1",
"@leather.io/crypto": "1.6.2",
"@leather.io/models": "0.17.0",
"@leather.io/query": "2.14.1",
"@leather.io/stacks": "1.1.5",
"@leather.io/bitcoin": "0.14.0",
"@leather.io/constants": "0.12.3",
"@leather.io/crypto": "1.6.4",
"@leather.io/models": "0.18.0",
"@leather.io/query": "2.15.0",
"@leather.io/stacks": "1.2.1",
"@leather.io/tokens": "0.9.0",
"@leather.io/ui": "1.27.1",
"@leather.io/utils": "0.15.0",
"@leather.io/ui": "1.29.0",
"@leather.io/utils": "0.16.4",
"@ledgerhq/hw-transport-webusb": "6.27.19",
"@noble/hashes": "1.5.0",
"@noble/secp256k1": "2.1.0",
Expand Down Expand Up @@ -263,7 +263,7 @@
"@leather.io/eslint-config": "0.7.0",
"@leather.io/panda-preset": "0.4.0",
"@leather.io/prettier-config": "0.6.0",
"@leather.io/rpc": "2.1.10",
"@leather.io/rpc": "2.1.11",
"@ls-lint/ls-lint": "2.2.3",
"@mdx-js/loader": "3.0.0",
"@pandacss/dev": "0.46.1",
Expand Down
2,438 changes: 1,199 additions & 1,239 deletions pnpm-lock.yaml

Large diffs are not rendered by default.

25 changes: 18 additions & 7 deletions src/app/features/add-network/network-form-fields.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ import { HStack, styled } from 'leather-styles/jsx';

import {
BITCOIN_API_BASE_URL_MAINNET,
BITCOIN_API_BASE_URL_TESTNET,
BITCOIN_API_BASE_URL_TESTNET3,
BITCOIN_API_BASE_URL_TESTNET4,
type BitcoinNetwork,
type BitcoinNetworkModes,
} from '@leather.io/models';
import {
Expand All @@ -24,15 +26,19 @@ import { type AddNetworkFormValues } from './use-add-network';

const networks: {
label: string;
value: BitcoinNetworkModes;
value: BitcoinNetwork;
}[] = [
{
label: 'Mainnet',
value: 'mainnet',
},
{
label: 'Testnet',
value: 'testnet',
label: 'Testnet3',
value: 'testnet3',
},
{
label: 'Testnet4',
value: 'testnet4',
},
{
label: 'Signet',
Expand Down Expand Up @@ -66,15 +72,20 @@ export function NetworkFormFields({ isEditNetworkMode }: NetworkFormFieldsProps)
[setFieldValue]
);

function setNetworkUrls(value: BitcoinNetworkModes) {
function setNetworkUrls(value: BitcoinNetwork | BitcoinNetworkModes) {
switch (value) {
case 'mainnet':
setStacksUrl('https://api.hiro.so');
setBitcoinUrl(BITCOIN_API_BASE_URL_MAINNET);
break;
case 'testnet':
case 'testnet3':
setStacksUrl('https://api.testnet.hiro.so');
setBitcoinUrl(BITCOIN_API_BASE_URL_TESTNET3);
break;
case 'testnet4':
setStacksUrl('https://api.testnet.hiro.so');
setBitcoinUrl(BITCOIN_API_BASE_URL_TESTNET);
setBitcoinUrl(BITCOIN_API_BASE_URL_TESTNET4);
break;
case 'signet':
setStacksUrl('https://api.testnet.hiro.so');
Expand Down Expand Up @@ -112,7 +123,7 @@ export function NetworkFormFields({ isEditNetworkMode }: NetworkFormFieldsProps)

<Select.Root
defaultValue={initialValues.bitcoinNetwork || networks[0].value}
onValueChange={(value: BitcoinNetworkModes) => {
onValueChange={(value: BitcoinNetwork) => {
setNetworkUrls(value);
void setFieldValue('bitcoinNetwork', value);
}}
Expand Down
6 changes: 3 additions & 3 deletions src/app/store/networks/networks.utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { ChainID } from '@stacks/transactions';

import {
BITCOIN_API_BASE_URL_MAINNET,
BITCOIN_API_BASE_URL_TESTNET,
BITCOIN_API_BASE_URL_TESTNET3,
type NetworkConfiguration,
} from '@leather.io/models';

Expand Down Expand Up @@ -54,7 +54,7 @@ function checkBitcoinNetworkProperties(
bitcoinUrl:
network.chainId === ChainID.Mainnet
? BITCOIN_API_BASE_URL_MAINNET
: BITCOIN_API_BASE_URL_TESTNET,
: BITCOIN_API_BASE_URL_TESTNET3,
};
} else {
return network;
Expand Down Expand Up @@ -86,7 +86,7 @@ export function transformNetworkStateToMultichainStucture(
bitcoin: {
blockchain: 'bitcoin',
bitcoinNetwork: bitcoinNetwork ? bitcoinNetwork : 'testnet',
bitcoinUrl: bitcoinUrl ? bitcoinUrl : BITCOIN_API_BASE_URL_TESTNET,
bitcoinUrl: bitcoinUrl ? bitcoinUrl : BITCOIN_API_BASE_URL_TESTNET3,
},
},
},
Expand Down
4 changes: 2 additions & 2 deletions tests/mocks/mock-utxos.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { Page } from '@playwright/test';

import { BITCOIN_API_BASE_URL_TESTNET } from '@leather.io/models';
import { BITCOIN_API_BASE_URL_TESTNET3 } from '@leather.io/models';

import { TEST_ACCOUNT_1_NATIVE_SEGWIT_ADDRESS } from './constants';

Expand Down Expand Up @@ -133,7 +133,7 @@ export async function mockMainnetTestAccountBitcoinRequests(page: Page) {
}

export async function mockTestnetTestAccountEmptyUtxosRequests(page: Page) {
await page.route(`${BITCOIN_API_BASE_URL_TESTNET}/address/**/utxo`, route =>
await page.route(`${BITCOIN_API_BASE_URL_TESTNET3}/address/**/utxo`, route =>
route.fulfill({
json: [],
})
Expand Down
2 changes: 1 addition & 1 deletion tests/selectors/network.selectors.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export enum NetworkSelectors {
// add network form
AddNetworkBtn = 'add-network-btn',
AddNetworkBitcoinAPISelector = 'add-network-bitcoin-api-selector',
BitcoinAPIOptionTestnet = 'bitcoin-api-option-testnet',
BitcoinApiOptionTestnet = 'bitcoin-api-option-testnet3',

NetworkMenuBtn = 'network-menu-btn',
EditNetworkMenuBtn = 'edit-network-menu-btn',
Expand Down
6 changes: 3 additions & 3 deletions tests/specs/network/add-network.spec.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { NetworkSelectors } from '@tests/selectors/network.selectors';
import { SettingsSelectors } from '@tests/selectors/settings.selectors';

import { BITCOIN_API_BASE_URL_TESTNET } from '@leather.io/models';
import { BITCOIN_API_BASE_URL_TESTNET3 } from '@leather.io/models';

import { test } from '../../fixtures/fixtures';

Expand All @@ -19,11 +19,11 @@ test.describe('Networks tests', () => {

test('that bitcoin api url changes on selecting different network', async ({ page }) => {
await page.getByTestId(NetworkSelectors.AddNetworkBitcoinAPISelector).click();
await page.getByTestId(NetworkSelectors.BitcoinAPIOptionTestnet).click();
await page.getByTestId(NetworkSelectors.BitcoinApiOptionTestnet).click();

const bitcoinUrl = page.getByTestId(NetworkSelectors.NetworkBitcoinAddress);

test.expect(await bitcoinUrl.inputValue()).toEqual(BITCOIN_API_BASE_URL_TESTNET);
test.expect(await bitcoinUrl.inputValue()).toEqual(BITCOIN_API_BASE_URL_TESTNET3);
});

test('validation error when stacks api url is empty', async ({ networkPage }) => {
Expand Down
2 changes: 1 addition & 1 deletion tests/specs/settings/settings.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ test.describe('Settings menu', () => {
await page.getByTestId(SettingsSelectors.ChangeNetworkAction).click();
await page.waitForTimeout(1000);
const networkListItems = await page.getByTestId(SettingsSelectors.NetworkListItem).all();
test.expect(networkListItems).toHaveLength(5);
test.expect(networkListItems).toHaveLength(6);
});

test('that menu item can toggle privacy', async ({ page, homePage }) => {
Expand Down

0 comments on commit eb135a1

Please sign in to comment.